Implementation of a Programming Language
This code has been written for a course on code reading and compiler extension.
This is the code of a compiler (and an interpreter) for a simple programming language (with first-class local functions, exceptions, classes). This compiler is studied in a course that trains students to read code and extend it. The main features of that system are:
- the input syntax is XML (checked by a RelaxNG grammar)
- the processed language is somewhat similar to Javascript
- the interpreter and compiler are written in Java
- the compiler produces C code.
This course draws on a course that presented compilation via a series of languages where features were incrementally added. The '9' in 'ilp9' stands for the ultimate version of that series of systems.
A lot of resources come with this course:
- The code of the compiler is available from GitHub.
- A wiki holding some information such as how to install ilp9, which rare concepts of C and Java are used in ilp9, how to contribute to ilp9
- GitHub also contains some assignments also called nano-projects
- A companion site with slides, forum, and some videos