<story><title>Simple steps to implementing a programming language</title><url>http://kjetilvalle.com/posts/implement-a-programming-language.html</url></story><parent_chain></parent_chain><comment><author>Udo</author><text>Inventing your own programming language is something I can highly recommend. If you&amp;#x27;ve never done it before it will dramatically broaden your programming horizon. It&amp;#x27;s a journey.&lt;p&gt;About a year ago I decided to make a language mainly because I wanted to experiment with some programming paradigms. I had made little domain-specific &amp;quot;languages&amp;quot; many times before, but this was going to be different.&lt;p&gt;I&amp;#x27;d suggest that you try to figure out most things on your own, however. It&amp;#x27;s way more rewarding to think about the problems you&amp;#x27;re trying to solve, go ahead and implement them. That way you&amp;#x27;re also forced to have eye-opening meta thoughts about programming in general. Only after you&amp;#x27;ve gained some appreciation for the issues involved, look them up and see how other people solved them. This worked very well for me.&lt;p&gt;Lisps and Schemes are certainly easier to implement than most syntaxes, but consider doing something else so you can get a better understanding of the complexities of parsing a non-Lisp.&lt;p&gt;In my case, I did my prototype in Java, that&amp;#x27;s the lexer, parser, runtime and standard library. While I wouldn&amp;#x27;t necessarily want to do it that way again, it was a great learning experience and I was pleased with the result.&lt;p&gt;About two months ago I decided to give it another try, but this time in C, using the Lua codebase. So far this has been a very good choice for a second stab at the idea. And I was pleased that I could recognize a lot of the patterns in the Lua codebase where I had implemented equivalent parts in my earlier project. If I hadn&amp;#x27;t taken the hard route back then, I probably would have a harder time now.</text></comment>
<story><title>Simple steps to implementing a programming language</title><url>http://kjetilvalle.com/posts/implement-a-programming-language.html</url></story><parent_chain></parent_chain><comment><author>throwaway13qf85</author><text>Nice work. There&amp;#x27;s a similar article which uses Haskell as the base language instead of Python, which is also worth reading (this is actually how I learned both Haskell and Scheme..!)&lt;p&gt;&lt;a href=&quot;https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikibooks.org&amp;#x2F;wiki&amp;#x2F;Write_Yourself_a_Scheme_in_48_...&lt;/a&gt;</text></comment>