Related articles |
---|
Gardens Point Modula-2 for the CLR j.gough@qut.edu.au (John Gough) (2004-02-26) |
From: | John Gough <j.gough@qut.edu.au> |
Newsgroups: | comp.compilers |
Date: | 26 Feb 2004 01:07:42 -0500 |
Organization: | Compilers Central |
Keywords: | modula |
Posted-Date: | 26 Feb 2004 01:07:41 EST |
The .NET CLR provides two overlapping but different instruction
sets. The verifiable set for memory safe languages such as C# and
Component Pascal, and the unverifiable set for dealing with ordinary
unsafe languages such as ANSI C and Modula-2.
As an exercise in unverified code generation I have written a CLR
backend for my venerable Gardens Point Modula compiler. This is the
first new target for gpm since about 1994, but the project was
assisted by the very large regression test suite that captures every
bug reported since 1986.
GPM/CLR is available as an open source distribution under a
"FreeBSD-like" licence, from
www.citi.qut.edu.au/research/plas/projects/gardens_point_modula.jsp It
implements the whole of Modula-2 except for coroutines. There are two
Installshield based distributions. One is for the v1.1 "Everett"
distribution and an experimental one for the "PDC Whidbey Alpha". It
does also run on v1.0, if you must. The compiler has not yet been
tried out on Rotor (or Mono), and has endian, alignment and word-size
dependencies. The package contains about 3Mb of historical gpm doco
which you may ignore, but you do need the Release Notes, since the
compiling/linking strategy is different from the historical gpm.
I will be updating my "Compiling for the .NET Common Language Runtime"
Prentice-Hall 2002, to incorporate the insights from this interesting
exercise.
John
Return to the
comp.compilers page.
Search the
comp.compilers archives again.