Monday, March 24, 2008 3:48 PM
by
RickM
IS - The Meta-Meta Language-Language (and parametric compiler)
Ian Piumarta and some very smart folks over at the Viewpoints Research Institute have been working on a meta programming language named IS which is specifically designed for implementing other languages. The project actually has several names (IS, idst, cola, jolt, &c), as far as I can tell the current development version is called cola.
The key idea behind IS is that each layer of compilation is represented as pipeline of meta-extensible transformations:

These transformations even extend to the binary generation stage. This allows for direct binary output to any number of different architectures.
Because of this, many languages can be represented in shockingly few lines of code. Javascript is about 170 Lines. Prolog weighs in at an astounding 90 lines.
Impressive as that is, the real goal here isen't to reinvent all of the wheels. Instead the researchers wish to be able to be able to easily construct new languages and play with new concepts. IS will allow anyone to build a new language with a modicum of effort and in so doing make computer language research much easier.
You can check out a paper on IS and it's related projects here.