R6RS ratified
What’s the best way to learn a language (not master it, but get its basic concepts down)? If it’s a computer language, I’d argue that the best way would be to write an interpreter for it (or a compiler, but the added complexity of converting to machine code is overkill). Too bad we can’t do the same with a natural language… imagine if you took a Spanish 101 course and the end of term project was to write a natural language ‘interpreter’ for Spanish, to convert Spanish to another language, say English. That would be awesomely amusing.
So, with R6RS having been ratified recently, I’ve decided to add to my list of projects the task of coding up an interpreter for Scheme. I read through the Tiny Scheme code once, and was impressed by the apparent simplicity of the interpreter, and this was in C, so I’m sure throwing one together in a higher level language should be as painless as coding an interpreter can be. Just for the hell of it, I’m gonna give it a shot in both PHP and Javascript– partly to refamiliarize myself with the languages, and in the latter case for the novelty of using Scheme for browser scripting. (Although I recall having seen a Javascript Scheme implementation once, I’ve never used it).
September 23rd, 2007 at 8:07 am
Through experience in learning 3 natural languages (English/French/Spanish), plus roughly a dozen computer languages, it seems one of the best ways to learn these is simply to use them. Note that I’m not saying writing an interpreter is not a good way, since doing so forces one to learn the language at a different level.