Gardens Point Modula-2 for the CLR

John Gough <j.gough@qut.edu.au>
26 Feb 2004 01:07:42 -0500

          From comp.compilers

Related articles
Gardens Point Modula-2 for the CLR j.gough@qut.edu.au (John Gough) (2004-02-26)
| List of all articles for this month |

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


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.