[Mono-list] Novel Proposal for Mono Compiler Implementations

Rhys Weatherley rweather@zip.com.au
Wed, 11 Jul 2001 11:39:05 +1000


Bob Salita wrote:

> The Solution [....]

Essentially, you want to create an UNCOL (Universal Compiler-
Oriented Language).  UNCOL's have been the holy grail of compiler
research since the 1950's.  They always flounder because at some
point you have to introduce language-specific or emitter-specific
behaviour to make the system work.

Speaking from my own experience writing IL and JVM backend's
for Portable.NET's C# compiler, it really isn't all that easy.  The
front-end has to pick a representation for the program's type
system so that it has somewhere to put the information in the
parse tree.

But since IL and JVM differ in how they handle types in the
engine, you have a problem: which type system do you use?
IL's?  JVM's?  Something else?  I eventually just said "to hell
with it", and used the IL representation as-is with a
converter for JVM.

The point is that you have to make implementation choices
very early in the process, but those choices destroy the UNCOL
and all of its benefits immediately.

Cheers,

Rhys.

Portable.NET: http://www.southern-storm.com.au/portable_net.html