The motivation for this repo is the systematic study of compilers and language development by working on the exercises of the book Essentials of Programming Languages written by Daniel P. Friedman and Mitchell Wand.
I wanted to stop treating compilers as a black box and so I worked on this book for a couple of months (the fact that it was required by my University also helped).
Each branch implements a language that may or may not build on top of a previously presented language.
The evolution is basically:
- LET
- PROC
- LETREC
- EXPLICIT-REFS
- IMPLICIT-REFS
- MUTABLE-PAIRS
- CONTINUATION-PASSING