7 ms·
Writing an interpreter (or compiler) greatly enhances one's programming skills.
by flavio81 9y ago
Writing an interpreter (or compiler) greatly enhances one's programming skills.
- rjsw 9y agoWhy not work on improving an existing one ?
- phoe-krk 9y agoIn order to learn and build up a base of skills.
- chriswarbo 9y agoWhile we're at it, why don't we replace high school math tests with one question: "Solve the Riemann hypothesis". We can replace the physics curriculum with "Unify quantum mechanics with general relativity", and throw out computing courses in favour of "Prove whether or not P = NP". It's important to re-do things which others have already worked out, in order to reach a greater understanding :)
- rjsw 9y agoWhatever. I learned how to implement Lisp by reading the source code for multiple compilers. Started with Franz Lisp, then KCL and CMUCL. I don't feel that a toy interpreter is going to teach the same things.
- ozzmotik 9y agoeveryone learns in different ways, don't be too attached to your own perspective. we all interpret the world through different lenses and need to learn through the expressions of different methodologies. some people benefit heavily by implementing something themselves and not just reading through something someone else wrote. some people feed off of that practical and robust experience of implementation in order to get a proper context for how things actually work established in their head. concrete examples are more helpful than you might think to people who aren't as capable of abstract thought and logical analysis of something from its constituent parts
- rjsw 9y agoMaybe part of my reaction to this is a wish to avoid reinforcing the "Lisp is an interpreted language" meme.
- flavio81 9y agoYour approach is 100% valid, but it can't hurt to start making a really small lisp. Of course the implementation strategies of a "MAL" lisp and a Real Lisp are entirely different.
- munificent 9y agoOther people have different preferred learning styles. A toy language won't teach the exact same things, but it covers a lot of the same topics.
- metaobject 9y agoPerhaps you could write up the process you followed, in the form of blog post or something, so that you can pass on the knowledge. I, for one, would love a guided tour through those implementations to see which parts are worth studying to understand how an established Lisp is built.
- omginternets 9y agoI don't have the time to learn it that way. It's this or never doing it at all.