Hacker News new | ask | show | jobs
by throwaway13qf85 4422 days ago
Nice work. There'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..!)

https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_...

2 comments

There is also SICP Chapter 4: Metalinguistic Abstraction. More precisely, 4.1 The Metacircular Evaluator [0]. Chapter 5 is about compiling to a toy register machine, as well.

I'm a big fan of the approach taking in Programming Languages: Application and Interpretation (PLAI). The Brown course from 2012 has video lectures available [2]. This one uses what is very close to Racket as the implementation language. It's typed, and called plai-typed.

The course these days uses the later chapters of Programming and Programming Languages (PAPL). This uses a new language, Pyret [3]. It's a bit more clear, due to the implementation language and source language having obviously different syntax, compared to plai-typed vs. the s-expression based language implemented.

[0] https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-26.htm...

[1] http://cs.brown.edu/courses/cs173/2012/book/

[2] http://cs.brown.edu/courses/cs173/2012/Videos/

[3] http://www.pyret.org/

Nice! I've actually just started learning me some Haskell (for great good). Will definitely have a look at that wikibook.