Marc showed us how to write a simple Scheme to C compiler, in Scheme. In only 90 minutes! And although not supporting the whole Scheme standard, the compiler supports fully optimized proper tail calls, continuations, and (of course) full closures. The compiler is implemented using two important compilation techniques for functional languages: closure conversion and CPS-conversion.
In this workshop we will present and develop a native-code compiler for the core of Scheme using source-to-source transformations that is suitable for use as the basis for a course in compiler design.
Shriram Krishnamurthi's book on Programming Languages
A page about the design and development of programming languages
Looking for operator or function names? Well have a look at the following and remember using existing one may ease the transition :)
You know one language and want to find the corresponding operator or function in another language
Want to know the various ways people invented for commenting/assigning/...?
This is the home page of the project to translate into English the Ruby
Hacking Guide. The RHG is a book
that explains how the ruby interpreter (the official
C implementation of the Ruby language) works internally.
SISC is an extensible Java based interpreter of the algorithmic
language Scheme. SISC uses modern interpretation techniques, and
handily outperforms all existing JVM interpreters (often by more than
an order of magnitude).
In addition, SISC is a complete implementation of the language. The
entire R5RS Scheme standard is supported, no
exceptions. This includes
a full number tower including complex number support, arbitrary
precision integers and floating point numbers, as well as hygienic R5RS
macros, proper tail recursion, and first-class continuations (not just
the escaping continuations as in many limited Scheme systems). SISC
also attempts to implement the standard as correctly as possible,
while still providing exceptional performance.
A simple scheme interpreter implemented in Python
Korean Document introducing Lex & Yacc