This is an attempt to write a Scheme interpreter in C#. I have always been fascinated by interpreters and compilers and always wanted to write one to understand better what's going on under the hood. Some well-known hackers argue that in order to become a better programmer one should write a compiler - Joe Armstrong, Steve Yegge.
Why Scheme? There are several reasons:
- while working my way through Chapter 3 Structure and Interpretation of Computer Programs (SICP) I stumbled upon a high-level descriptions on how Scheme programs are interpreted. It seemed simple and straightforward enough so I took that as a starting point.
- I have read somewhere that Peter Norvig wrote a Scheme interpreter in Java in 24 hours, of which 6 hours he spent studying Java. My numbers may be a bit off, but again it made it seemed less daunting than I initially thought. Little did I know what was I getting into...
To test the interpreter I have used the code samples and problems from SICP and the solutions to the problems available online. Currently the interpreter should be able to run all the code in Chapter 1 of SICP. I'm working my way through Chapter 2 at the moment.