Log in

No account? Create an account
Programming Quote - Rat Ramblings — LiveJournal [entries|archive|friends|userinfo]

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Programming Quote [Dec. 8th, 2004|05:13 pm]
[Current Mood |geekygeeky]

Today's quote for programmatic meditation:

"Metalinguistic abstraction -- establishing new languages -- [...] is particularly important to computer programming, because in programming not only can we formulate new languages but we can also implement these languages by constructing evaluators. An evaluator (or interpreter) for a programming language is a procedure that, when applied to an expression of the language, performs the actions required to evaluate that expression.

The evaluator, which determines the meaning of expressions in a programming language, is just another program. To appreciate this point is to change our images of ourselves as programmers. We come to see ourselves as designers of languages, rather than only users of languages designed by others."

-- Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman [aka the wizard book]

[User Picture]From: vakkotaur
2004-12-09 01:36 am (UTC)

Chuck Moore, who came up with Forth, said that the proper way to solve a problem was not to write the solution directly in Forth. Instead, he said to use Forth to build the language in which solving the problem is easy, and then write the solution in that.

(Reply) (Thread)
[User Picture]From: foxcoon
2004-12-18 11:09 am (UTC)
I've noticed the same thing, that much of the design of a software system is spent inventing the framework which will be used to track and solve the problem.

In functional programming, it amounts to designing and implementing the various subroutines that will accomplish the tasks and subtasks, and then the main loop becomes simply stringing these elements together, like a sort of language. Functions become new language words used within the program.

In object-oriented programming, it amounts to designing objects which model the way the data will be used, and then stringing those together in a similar method to the use of words within a language.

So, um. Yeah!
(Reply) (Thread)