/ilp9

Implementation of a programming language (Code for a Course on Code Reading and Compiler Extension)

Primary LanguageJavaGNU General Public License v2.0GPL-2.0

ilp9

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.

Resources

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