jfitoussi / ilp9

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

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

License:GNU General Public License v2.0


Languages

Language:Java 89.5%Language:C 9.1%Language:Shell 0.9%Language:Makefile 0.6%