If you want to learn languages, implementing a lisp interpreter is a great exercise, and lots of fun too. Every time I come across a new language I want to give a try, creating a lisp interpreter is one of the first things I do.<p>If you're curious but want a more language-agnostic guide, mal (Make a lisp) is a language+project that has a guide you can follow along with basically any language, and if you get stuck, you can look at already implemented versions in practically any language: <a href="https://github.com/kanaka/mal">https://github.com/kanaka/mal</a><p>Personal favorite implementations of mal: nasm (assembly) (<a href="https://github.com/kanaka/mal/tree/master/impls/nasm">https://github.com/kanaka/mal/tree/master/impls/nasm</a>) and wasm (<a href="https://github.com/kanaka/mal/tree/master/impls/wasm">https://github.com/kanaka/mal/tree/master/impls/wasm</a>)<p>mal has also been discussed many times on HN (which is probably how I came across it the first time too) for close to a decade by now: <a href="https://hn.algolia.com/?query=kanaka%2Fmal" rel="nofollow">https://hn.algolia.com/?query=kanaka%2Fmal</a>
I worked through this years ago and was rather disappointed, I felt the hand holding/explanations were not well balanced; it walks you through everything like you have no programming experience but explains things like you do have programming experience. The exercises were ok but not great. It left me with far more questions than answers and only slightly better at C than I was before.<p>But I am a hack in everyway, so it could just be me.
I like the humour "Mike Tyson • Your typical Lisp user" :-) <a href="https://buildyourownlisp.com/chapter1_introduction#who_this_is_for" rel="nofollow">https://buildyourownlisp.com/chapter1_introduction#who_this_...</a>
I followed the exercises in this book coming up on a decade ago. It was I valuable to my growth as a developer. The author, OrangeDuck, has many worthwhile projects. If you are learning C, it's worth checking out their Cello project.
Recent repeat, but I think I used the template that made the website in 1995. Still amusing.<p><a href="https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=buildyourownlisp&sort=byDate&type=story" rel="nofollow">https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...</a>
When I was an undergrad, having newly read SICP, I start to write my own lisp in.... drumroll... matlab!!! I actually made quite a bit of progress before giving up.<p>Ah, to be young again!