Recommended Links

Compilers and Translators

ADW Modula-2, successor of Stony Brook Modula-2, is available as freeware (released by ADW Software). This is the only compiler available for free implementing the ISO standards for object oriented Modula-2 and generic extensions of Modula-2. The help files are impressive. A debugger is part of the package as are some other very useful utilities. Other details from the download page: ADW Modula-2 is for Windows only and allows development of both 32- and 64-bits programs.Excelsior offers their great XDS Modula-2 and Oberon-2 compiler (Freeware since 2005). The package includes a Windows-IDE, a powerful set of libraries and a standalone debugger. Since the end of 2011 a beta package is available (version number 2.6) bundling the compiler with the powerful Modula-2 to C translator and the Topspeed compatibility pack.Gardens Point Modula-2: A compiler developed at Queensland University of Technology. Description from homepage: "GPM/CLR is an implementation of the historical Gardens-Point Modula-2 compiler for the .NET runtime. It provides an example of how a non-typesafe, unmanaged data compiler may be implemented on the CLR." There were versions for different platforms (also a version for DOS) available which have now disappeared.M2M-PC System - v1.35 for MS-DOS, the system is an "M-code interpreter for the IBM-PC running DOS 2.0 developed by the Modula Research Institute allowing the Lilith Modula-2 compiler and its output to be executed on the IBM-PC." Compiler sources and documentation is also available. This is one of the first Modula-2 compilers which was quite popular in the eighties. Again from the page at CFB Software: "The system was originally designed to run on a system with two floppy disk drives but we have successfully run it under cmd.exe on a Windows XP system."FST (via FTP): Fitted Software Modula-2. last and now free version of the FST-compiler (4.0). a good and compact programming-environment (like Turbo Pascal 3.0) for dos. the compiler isn't ISO-standard. Alternatively you can download the compiler from this page (local):FST 4.0 Modula-2 compiler with Mide3de2 v1.1: I created a windows-installer bundling these two freeware-products. The file is about 1.5MB and offers HTML documentation, a simple example on how to use Borlands Turbo Debugger with FST and an uninstall-option. The compiler doesn't work on newer Windows systems (especially 64bit) except you use a program like DOSBox which is a x86 emulator including a DOS. If you are interested in the history of the FST-compiler, you may want to download version 1.0 from Vector Board.Mide3de2 1.1: A Windows-IDE for FST which works great but some users have reported problems with newer versions of Windows. A well done (but sadly no longer developed) attempt to keep FST alive. It's a pity sources have never become available.Strannik is a compiler supporting three programming languages: Modula-2(Oberon-2), C(C++), Pascal. The compiler is coming with an integrated development environment. You can create .exe and .dll-files for Win32 (Windows9x, WindowsNT, Windows2000, WindowsXP). The Modula-2 syntax is somehow strange (not case-sensitive), as are the other implemented languages. But the concept of Strannik is very interesting. The generated executables are really small while they are real windows applications. Also note that it is (was?) possible to write applications for MenuetOS.
Do not forget that GNU Modula-2 can be built using the Cygwin system available for Windows systems.

GNU Modula-2 - there is a lot of information available from the homepage. The compiler is still under development but all the features of Modula-2 are implemented which make this one the most promising and usable one (coming with lots of libraries), especially as you get great support using the compilers mailing list. Binary packages for Debian systems are available. These can easily be converted to other package formats for other distributions. Also available are versions targeting other platforms (e.g. ARM).M2F Modula-2 is the predecessor of GNU Modula-2 written by Gaius Mulley. Fetch the latest version (5.0) which is not mentioned on the website from floppsie.comp.glam.ac.uk. The readme contains the following important information: "m2f is a pim2 Modula-2 compiler. It is now superceeded by gm2 which produces better code, has many many bug fixes and supports different dialects of Modula-2 (including pim2) and also has better libraries. However m2f can produce x86_16 code (tiny model) which gm2 cannot thus the motivation to create this package. m2f will also produce x86_32 bit code as well, although 32 bit users are urged to use gm2 instead."Linux Version of XDS-Modula-2/Oberon-2. Description from homepage: "Native XDS-x86 for Linux is an optimizng Modula-2 and Oberon-2 compiler with extensive library set and system API definitions." A great compiler-system which is easy to use for mixed language programming. Interacts very well with the GNU utilities and your favorite editor.Umberto Salsi wrote and published a Modula-2 compiler. The system builds on Linux systems. Here is a short description from the homepage: "Basically, M2 is a cross compiler from the M2 language to C. Array and dynamic structures are allocated automatically and deallocated when no more needed. The run-time checking prevent array index overflow and null-pointer dereferencing, so improving the robustness of the program. All the programmer must take care of is the algorithm, all the rest is in charge of the language." License: "The M2 language and the M2 developing system are released under a BSD-style license (see the file LICENSE for details). The M2 compiler generates C source compilable with the gcc compiler, released under the GNU GPL license. Some of the C libraries used by gcc are part of the GNU operating system and are released under the GNU GPL license."MOCKA: MOdula Compiler KArlsruhe is the Modula-2 system developed by the GMD research laboratory Karlsruhe in Germany. The compiler is no longer available from GMD that's why the first link points to a recently (2017) made available package. A nice version (slightly modified) is provided here. And you can find the original Mocka compiler as well as a Debian package and a version producing very small executables in the download area of the Mocka and Modula-2 mailinglist. You'll have to sign in there to get access to the files. Here are some older archives of the Mocka compiler.Ulm's Modula-2 System: Modula-2 compiler for SPARCv8 / Solaris 2.x or MC68020 / SunOS 4.1.x under GPL. "Ulm's Modula-2 System is a software development environment for Modula-2 which runs on several UNIX systems. The system consists of (1) a compiler which is derived from the 4-pass Lilith Modula-2 compiler of the ETH Zürich and conforms to [PIM3], (2) a library which interfaces UNIX system-calls and provides system-independent abstractions for input and output processing and ASCII-terminal based windowing systems, (3) a set of tools for generating and updating makefiles, debugging, and profiling, (4) and documentation in the form of manual pages and this document."
An archive containing Gardens Point Modula-2 for Linux is available from Archive.org.Metrowerks Modula-2 [FTP]: I found this package on Ulm's server. Seems to be a compiler for SunOS. Someone wrote this at groups.google.com: "I have a Sparcstation 1 (...), SunOS 4.1.3, gcc Metrowerks Modula-2 (...)".DEC Modula-2 [FTP]: A Modula-2 compiler for VAX BSD + ULTRIX and for MIPS/ULTRIX is available with sources. Some more information is available. In comp.lang.modula2 this one was often discussed under the name 'Mike Powell's Modula-2 compiler'.ACK Modula-2 is part of the Amsterdam Compiler Kit which is (according to the homepage) "a cross-platform compiler and toolchain suite that is small, portable, extremely fast, and extremely flexible. It targets a number of low-end machines including the Z80, 8086 and 80386, but there are many other code generators available. It supports several languages, including ANSI C, Pascal and Modula-2, and contains integrated runtime libraries including a libc. The ACK runs on Unix systems; most development happens on Linux". Originally the whole kit was written by Andrew Tanenbaum and Ceriel Jacobs. You can get more information by reading the online manpage and the About the ACK page. UPDATE: I installed Bochs and a Diskimage from Bochs download page to find out some details. The image available at the time of writing (08/10/04) includes the Modula-2 Compiler which seems to work as expected. It's a PIM3 Compiler.Sources of a Modula-2 compiler written in C++ by Ben Wann. I have not tried to compile this one, it seems to be a college project.Open Source Modula-2 compiler for IRIX: Still an early fragment (version 0.0.2), but maybe interesting for people who want to build their own compiler. By Mark Ballew and Jason Baurick. The link points to SourceForge.

MacMETH Modula-2 for Macintosh: A short description taken from the MacMETH/RAMSES homepage at ETH Zurich (Terrestrial Systems Ecology Group) where the compiler is used and maintained: "MacMETH is a Modula-2 programing environment for Macintosh computers (Wirth et al. 1992). It consists of a compiler, dynamic linking-loader, linker, symbolic debugger, and editor. It is very fast and efficient.
The entire development environment used to fit on a single small floppy disk (800 KB), which it still would, would you be using floppies. These days the programmer can still enjoy this efficiency during development. Thanks to the small size of the compiler and the dynamic linking-loader, which normally omits any linking at all, edit, compile, execute cycles are extremely fast. Nevertheless, static linking is optionally available and double clickable applications can be statically linked any time.
Thanks to this linking-loader, it is also possible to launch the symbolic debugger anytime. The execution of the program can be resumed afterwards. Besides, the language system is so efficient, it could still be enjoyed on old floppy disk based Macintosh computers. On current hard disk based systems this means it is blazingly fast. In the spirit of Niklaus Wirth, this software is not among those that "become faster slower, than computers become faster!." You may also be interested in RAMSES, which is described in the Libraries/Sources section.MacLogimo [FTP]: A Modula-2 Compiler for the Mac. Chris Burrows sent me some more information on this package taken from the user guide of the compiler: "A long time ago at the Institut für Informatik, ETH Zürich, Leo Geissmann wrote a multi-pass Modula-2 compiler for the PDP 11 and Hermann Seiler later wrote a 68000 code generator. In the Spring of 1985, ETH Zürich released a Modula-2 system in the public domain. It included a compiler, a linker, library modules, and a loader. It was the first native code Modula-2 compiler for the Macintosh. This implementation was a combination and translation of the compilers written by Geissmann and Seiler. Soon after the public domain release, MacLogimo appeared. It was written by Peter Fink and Franz Kroenseder at ETH. It included a rather complete Macintosh Toolbox library for its time. In 1986, Tim Myers (while working for Dr. Robert Burton at Signetics) bootstrapped MacLogimo to work on the Macintosh Plus and named it MacLogimo Plus. Dr. Burton graciously allowed MacLogimo Plus to be released into the public domain." You can also find some information about the compiler searching the archives of Google Groups.
There is a FTP-Server hosted by the Technical University of Berlin where you can download some compilers mentioned here.
Also have a look at p1 Modula-2. This is one of the last commercial Modula-2 compilers developed by Albert Wiedemann. It is a fully ISO compliant (ISO 10514-1,2,3) compiler coming with a huge set of libraries and support by its author. Also have a look at the list of commerial compilers.

Tom Breeden published an "interim" Modula-2 compiler called Aglet Modula-2 for pre-releases of AmigaOS 4 (PPC). The announcement was published in comp.lang.modula2. There is a homepage where you can download the compiler and get more information on it.M2Amiga: Open Source Modula-2 compiler for the Commodore Amiga. Sources, binaries and docs are available. The compiler is distributed under an open source license. The link above points to a site preserved at archive.org as the original site is offline.Benchmark Modula-2, a compiler developed by Leon Frenkel, is available including the manual. The downloadable ISO image contains the compiler, editor, source level debugger and demos. Find some more information here.
Tools, compilers and a lot of other packages related to Modula-2 and the Amiga are available from Aminet (Cyclone Modula-2, a fast single-pass compiler called Turbo Modula-2 [not the Borland compiler available for CP/M systems!], a Modula-2 to Pascal translator, a pre-release version of the single pass Modula-2 compiler originally developed for MacIntosh at ETHZ and much more). If the links do not work search the net for mirrors of Aminet.

Megamax Modula-2 for the Atari: This one is freeware now and comes with complete sources and documentation (including sources of the compiler). It should run on all Atari Computers and compatibles and on emulators such as MagicMac (Macintosh) and MagiCPC (PC-compatibles).
ANA Modula-2 is available as a part of AtariSDK (1997) which is available from Archive.org. This is an ISO image. "Collection of shareware and freeware software development tools for the Atari ST/TT/Falcon. Released in 1997, this CD contains the complete Gnu C++, Sozobon C and a free Modula-2 compiler." Actually the disc contains more than one M2-compiler and quite a lot of powerful libraries.ANA Modula-2 is also available from the given link: look for directories called ANA_M2_x where x is the number of the discs. There are zipped versions of these directories available in the directory tree of the given server.
A Modula-2 compiler for the Atari derived from the ETH compiler is available here. This one was developed at the university of Munich and is in the public domain (search for "Diskette AM 036").
There is a FTP-Server hosted by the Technical University of Berlin where you can download some compilers mentioned here.
People who do not own an Atari ST computer can still try and work with Modula-2 compilers back from the 80ies. You'll have to fetch a disk image which is usable with an Atari ST emulator. I tried the image with the emulators Steem and Hatari. You will also need a TOS image which is also available from the net. It's a bit tricky to use the whole system but it works.

Most of the translators will compile without having to apply big changes on most UNIX/LINUX/BSD-like platforms. This allows to use Modula-2 on nearly every C-platform (like Linux, QNX, Solaris).XDS-C is Freeware as is XDS-x86. A professional and mature translator. From their homepage: "Its output is ANSI C, K&R C, or C++ source code, which is subject to further compilation by a third party C/C++ compiler. This technique allows you to cross program in Modula-2/Oberon-2 for virtually any target environment."p2c: Pascal to C translator by Dave Gillespie, wich is also able to process Modula-2 sources. The M2F and the GNU-Modula-2 compiler use this as a starting point. Note: The program is available in the FreeBSD ports-collection. An archive of version 1.19 for NeXT machines is available.Sinuhe's Modula-2 (M2) compiler and translator to C is a fork of m2c-0.6, a program originally written by Vladimir Mkarov. Mr. D. E. Evans, who has kindly decided to keep this program alive summarizes: "Bug fixes have been made to the standard library, the code base has been cleaned up for c99 builds, architecture support has been improved and simplified, and an improved coroutine module has replaced the previous." m2c is free software covered by GNU General Public License Version 2. A ready to install RPM package is available from the homepage. The original docs inform about the platforms this package was originally tested on: Vax/Ultrix, i386/Linux, Sparc/SunOS4.1 and Alpha/OSF3.x; The translator supports PIM4 and PIM3 Modula-2.m2sharp is a Modula-2 to C# Translator and Compiler. A short description from the readme: "M2Sharp is a multi-dialect Modula-2 to C# translator and via-C# compiler. It supports the dialects described in the 3rd and 4th editions of Niklaus Wirth's book "Programming in Modula-2" (PIM) published by Springer Verlag, and an extended mode with select features from the revised language by B.Kowarsch and R.Sutcliffe "Modula-2 Revision 2010" (M2R10). In translator mode, M2Sharp translates Modula-2 source to C# source files. In compiler mode, M2Sharp compiles Modula-2 source via C# source files to object code or executables using the host system's C# compiler. PIM dialects are supported to allow compilation of program examples from Modula-2 literature which is largely based on PIM. Extended mode is supported to facilitate bootstrapping of a full implementation of M2R10 targeting the CLR."C2 - a Modula-2 to C++ translator was written in 2000/2001 by Dr. Milos Radovanovic. Description by the author: "What it does is take a single Modula-2 source program, check its lexis and syntax, and output a (hopefully) correct C++ program. It is probably not something every Modula-2 programmer ever dreamed about, but more a collection of ideas I had and my determination to get them to compile right."Mtc translator: Modula2 to C translator by Josef Grosch and Matthias Martin. The description says it produces readable (!) code. Mtc implements the language Modula-2 as defined in N. Wirth's report (3rd edition) with a few minor restrictions and most language extensions implemented by MOCKA, the Modula-2 Compiler Karlsruhe. It produces K&R (not ANSI) C code with a few very common extensions like passing structures as value parameters. Mtc is intended as a tool for translating finished programs from Modula-2 to C and not as a tool for program development. Therefore, the translator does not check the semantic correctness of the Modula-2 programs. Mtc is also available here.Modula-2 to Free Pascal translator written by Jean-Pierre Dezaire. The package is hosted at Modula2.org. It contains binaries for OS2/EComStation and Windows platforms as well as example sources. The author points out that the program is not mature but usable. Eventually the translator will be able to translate ISO-Modula-2 programs in the future.
An example of a simple, but usable, Modula-2 to Pascal converter for use with the Modula-2 version of Coco/R is available.
m2tom3: when moving on to using Modula-3 you may find this program useful. It's a Modula-2 to Modula-3 translator. I remember an article in comp.lang.modula2 saying the produced translations are really readable and usable. As the sources are under GPL I offer the package from the download area of this site now as the various download links keep changing or disappearing.
It is also possible to translate Modula-2 to Ada95 (Thanks to Craig Carey for link + description). "Modula can be ported to Ada 95 by using Pascal as an intermediate language, and using the NewP2Ada program" which is available from the projects pages at http://p2ada.sourceforge.net/. You'll also need mod2pas.zip.

If you want to get a feeling for CP/M and the available compilers just try YAZE-AG - Yet Another Z80 Emulator by Andreas Gerlich (V 2.20.1). The emulator uses the free CP/M 3.1 replacement ZPM3N10 of Simeon Cran. I downloaded the Windows-binaries and found a nice environment, great documentation and a preinstalled disc M:\ which contains Turbo Modula-2! The compiler works out of the box. I really missed the good old Turbo Pascal 3 feeling... Some more example programs are available.

Three compilers for CP/M are available (as far as I know). I tested theses programs with emulators as I don't have access to a CP/M machine:

Turbo Modula-2 works (for example) with a CP/M emulator called 22nice (download). Extract both archives (compiler, emulator) to one directory, and follow the instructions from the 22nice documentation.
Meanwhile I found a better CP/M emulator called MyZ80 by Simeon Cran. This one is also Shareware, but in my opinion it's easier to work with. The Shareware Version is not limited. FTL-Modula-2 works with it - it did not with 22nice.

The third compiler is Peter Hochstrassers CP/M Z80 Modula-2 compiler, which is distributed as Freeware (Thanks to Hal Bower). Thanks to a kind visitor for telling me about this one. You may download a set of discs from the link above including an impressive set of manuals.

IPD Modula-2* Programming Environment: "Modula-2* is an extension of Modula-2 for highly parallel, portable programs. IPD Modula-2* is provided freely for research, educational and classroom use." Target platforms: MasPar MP-1 and KSR, and several sequential platforms (i386, Linux, MIPS, Sun3, Sun4). The projects homepage disappeared. Archive.org saved the package after it disappeared on Tucows.Modula-P. Description from the compilers homepage: "Modula-P is a structured programming language for asynchronous parallel programming (MIMD systems), developed by Thomas Bräunl in 1986. The language is based on sequential Modula-2, but extended by machine-independent parallel constructs. Modula-P allows explicit declaration and starting of processes. The language includes the classical synchronization concepts of semaphores, monitors with conditions, and remote procedure calls."
Platforms: "The sequential version runs on almost all Unix systems: Sun SPARCstation, DECstation, HP 9000, IBM RS6000. There are parallel versions for Workstations clusters, Sequent Symmetry, and Intel Paragon".Modula/R is Modula-2 with relational database constructs added. The extension was developed by the LIDAS Group (J. Koch, M. Mall, P. Putfarken, M. Reimer, J.W. Schmidt, C.A. Zehnder) and published as "Modula/R Report", ETH Zurich, Sep 1983.Cluster is a programming language closely related to Modula-2. It was developed for Amiga computers and was used for programming the EGS graphics card/system (?). There are some differences and additions to Modula-2 similar to those introduced by Oberon, Modula-3 and Ada. I am linking to a page in German language here as I do not know an English introduction. Anyone?Parallaxis-III: "A structured programming language for data-parallel programming (SIMD systems), developed by Thomas Bräunl in 1989. The language is based on sequential Modula-2, but extended by machine-independent parallel constructs."Umbriel is a language designed by Pat Terry. Description from homepage: "Umbriel can best be described as a subset of Modula-2, with some other simplifications designed to minimize the enigmas that Modula-2 seems to create for beginners in areas like I/O and type compatibility."
[DOWNLOAD-LINK BROKEN?] A kind visitor of this page pointed me to YAFL which is another language similar to Modula-2. It is a high-level object-oriented language. YAFL supports inheritance and parameterized classes. It also includes a full-featured garbage collector. and is a strict language which includes an assertion mechanism.Component Pascal: "Component Pascal is a general-purpose language in the tradition of Pascal, Modula-2 and Oberon. Its most important features are block structure, modularity, separate compilation, static typing with strong type checking (also across module boundaries), type extension with methods, dynamic loading of modules, and garbage collection."Zonnon "is a general purpose programming language in the Pascal, Modula-2 and Oberon family. Its conceptual model is based on objects, definitions, implementations and modules. Its computing model is concurrent, based on active objects which interact via syntax controlled dialogs. The language is being developed at ETH Zürich Institute for Computer Systems by Prof. Jürg Gutknecht. Zonnon introduces the concept of 'active objects' which are used to represent real world concurrent objects within computer programs." (Description from Wikipedia) A very interesting project bringing some of the strengths of Modula-2 back to the Oberon-style languages.Oberon/Oberon-2: Description from Oberon Language Report: "Oberon is a general-purpose programming language that evolved from Modula-2. Its principal new feature is the concept of type extension. It permits the construction of new data types on the basis of existing ones and provides relations between them.". Oberon is not only a language but also an Operating System. This is real fun (and much more)!Modula-3: "Designed in the late 1980s at Digital Equipment Corporation and Olivetti, Modula-3 corrects many of the deficiencies of Pascal and Modula-2 for practical software engineering. In particular, Modula-3 keeps the simplicity of type safety of the earlier languages, while providing new facilities for exception handling, concurrency, object-oriented programming, and automatic garbage collection. Modula-3 is both a practical implementation language for large software projects and an excellent teaching language." Free compilers are available for a variety of platforms. The link provided points to Wikipedia where you can find links to the main implementations of Modula-3.
There also is a Modula-2 to Modula-3 converter which may be helpful in migrating your sources. Have a look in the translators-section of this page.Ada95 isn't a real member of the Modula-2 family, but it's a language that's easy to change to having learned Modula-2. Very powerful. I like it. This is a link to Ada Information Clearinghouse. Every basic information about Ada can be found there, including information about free compilers. You may also want to have a look at adapower.com. A good site offering tutorials, links and lots of Ada-related resources.Ada versus Modula-3: Kenneth Almquist has written a quite detailed comparison of these two languages. Maybe the document is not only interesting but can also help with your decision.CHILL: "CHILL (CCITT High Level Language) is a general procedural programming language which is mainly used in the field of telecommunications. As a general programming language it is by no means limited to this field." Someone said the language is similar to Modula-2 - I'm not so sure... GNU Chill exists.eDiv language: Description from homepage: "eDiv is a DIV language multiplatform compiler. This language combines ideas of C and MODULA-2 to create a potent and efficient language with a simple syntax." The homepage of the project is in spanish, so the link provided here redirects you to the Sourceforge-page.FreePascal: "Free Pascal (aka FPK Pascal) is a 32 bit pascal compiler. It is available for different processors (Intel 80386 and compatibles and Motorola 680x0) and operating systems (Linux, FreeBSD, DOS, Win32, OS/2, BeOS, SunOS (Solaris), QNX and Classic Amiga). The language syntax is semantically compatible with TP 7.0 as well as most versions of Delphi (classes, rtti, exceptions, ansistrings). Furthermore Free Pascal supports function overloading, operator overloading and other such features."Delphi: Borland's Object Pascal, now sold and marketed by Embarcadero. You may download a Personal Edition for free. Great development environment (RAD). Some dated versions of Turbo Pascal (1.0-5.5) for DOS are available from other sites.

Stony Brook Modula-2 is no longer available. The link provided here redirects you to the Stony Brook Modula-2 archive and support pages at modula2.org. ADW Modula-2, successor of Stony Brook Modula-2, is available as freeware now. The original Stony Brook compiler was available for a lot more platforms:

32-bit Windows

32-bit Linux on IA-32 processors

32-bit Solaris/SunOS on SPARC processors

32-bit DOS extended, Royalty free, with virtual memory support

16-bit Windows

16-bit DOS

A version of Modula-2 called Modula-2+ (Modula-2 plus exceptions and threads developed by P. Rovner et al of DEC SRC, Palo Alto CA in 1984), seems to have disappeared. The language is described in SRC Report 3 "On Extending Modula-2 For Building Large, Integrated Systems" and is a close predecessor of Modula-3. Modula-2+ was used to program "Topaz", which is an experimental distributed computing environment programmed in Modula-2+ which supports garbage collection. The manual of Topaz is still available online as it is part of SRC Research Report 21, Evolving the UNIX System Interface to Support Multithreaded Programs (by Paul R. McJones and Garret F. Swart).

A team led by Prof. Peter Rechenberg developed a Modula-2 compiler for Intel 8080 (7-pass!) and later on another compiler for IBM/370 in the early 80s in Linz in Austria.

M2SDS was an interesting system developed by Interface Technologies. As mentioned in comp.lang.modula-2 "in it's time it was way advanced: IDE, syntax-directed editing, incremental compiler, built in make, built in debugger, automatic overlays, etc." I heard it was available for different operating systems. Some more information is available (also here, page 7).

According to the Modula-2 FAQ, General Motors used to have an own Modula-2 compiler. For a long time I did not find any information related to the system until I learned from someones resume that the compiler was called Modula GM (sometimes just M-GM). The controllers for General Motors cars were mostly programmed in Modula-GM which is a variant of Modula-2. From one site: "A typical 32-bit integrated vehicle controller may control the engine, the transmission, the ABS system, the Heating/AC system, as well as the associated integrated diagnostics and onboard communications systems." And from another: "M-GM is the language used by GM/Delco/Delphi to program the engine/transmission controllers in millions of cars and trucks per year beginning in the mid 90's."

There are some posts in the comp.lang.modula2 archive talking about CDC Pascal/Modula-2. The compiler(s) was/were written in the Seventies and the Modula-2 version/frontend/whatever is not mentioned often. There's more information available in Pascal-newsgroups.

Tayloris Software AG offered Taylor Modula-2 which offered some object oriented concepts. I only found a short description of the compiler in German and some old posts in the archives of comp.lang.modula2 (example).

Oregon Software Inc. used to offer Modula-2 compilers. From a post in comp.lang.modula2: "Oregon Software, Inc. provides C++, Pascal-2, and Modula-2 compilers for 680x0 machines which include Sun-3, Motorola, HP 9000/300, and 386 under SCO Xenix and Unix.

Introl Corporation (sometimes offline?) offered a Modula-2 compiler for 6809. From a posting in comp.lang.modula2: "A small realtime kernel is included in Modula-2 source. The real time kernel is prioritised, preemptive, support process synch primitives. There is also a source level debugger which can be used with a simple monitor program or with a emulator. The version I have runs on MS-DOS. (or in a dos-box in OS/2). There are also versions for different Unix variants.

Metrowerks (Code Warrior?) also offered a Modula-2 compiler for Macintosh, not only for Sun. Nearly every time it is mentioned, there's also the advice not to use it.

ORCA Modula-2 was a compiler for the Apple IIGS. The compiler was written in Modula-2 itself. Wikipedia tells us "the compiler was originally developed using a version of TopSpeed Modula-2 on an Intel 80286 based PC. The output of the compiler at this point was 65816 assembler source for assembly by ORCA/M on the Apple IIGS".

Edinburgh Portable Compilers Ltd used to sell a compiler called EPC Modula-2 for SCO Unix V.[34], Motorola 88000 UNIX V.[34], SPARC UNIX, Solaris and RS/6000 AIX. The website is closed now. The link provided above shows the manpage of the compiler. John O Goyo informed me that this one is the successor of Sun Modula-2. Some information about the compiler can be found using the wayback machine of archive.org.

The Computer Systems Group at the University of Waterloo produced an optimizing Modula-2 compiler for VM/SP CMS. Maybe you can still get information on this one.

pm2, description from FOLDOC: "A software emulator for parallel random access machine (PRAM) and a parallel Modula-2 compiler for the emulator. pm2 programming language is Modula-2/Pascal mixture having extensions for parallel execution in a PRAM. Parallelism is expressed by pardo-loop-structure. Additional features include private/shared variables, two synchronisation strategies, load balancing and parallel dynamic memory allocation." I'm not sure if this is still available (?).

Volition Systems Modula-2 was available for many platforms, targeting the UCSD-p virtual machine.

Finally a dead project: "The NetM2 project materialized when various Modula-2 enthusiasts voiced their concerns about the lack of a good M2 compiler for OS/2 and the demise of the GNU M2 project. It was suggested that comp.lang.modula2 readers could write our own M2 compiler, using the internet to co-ordinate the effort." I have to add: Meanwhile there is a GNU Modula-2 compiler. And thanks to Peter Moylan you can find some code and information on NetM2.

ModulAware 32 and 64 bit Modula-2 and Oberon-2 compilers for HP OpenVMS Alpha and VAX. This is the company offering ModulAtor.p1 Modula-2: Object Oriented Modula-2 compiler for Apple Macintosh under MPW. This is the only maintained and developed Modula-2 ISO-compiler for Macs. Until now there is no support for direct compilation of Intel binaries or Cocoa. There seem to be plans to add these features. A free demo version of p1 Modula-2 can be downloaded. Its coming with some restrictions.Adesso AG offered M2CC, an advanced Modula-2 to C translator. The product is no longer on their homepage as there's no remarkable interest in it but you may ask for information and possible services as the people involved in the project are still part of the company. Here is a disappeared description of the product from their homepage: "The Modula-2 to C Translator type M2CC/C is a fully-fledged compiler system which can automatically translate your Modula-2 applications into C. The Modula-2 to C translator M2CC/C is a portable compiler system especially designed for use in cross development environments. The translator itself is written in Modula-2 and consequently portable to most computer systems. The M2Mk utility program analyzes the dependencies between separately compilable units and establishes the correct compilation sequence. In combination with MMS (Module Management System, running under VMS) or MAKE (a Unix tool, also reimplemented for DOS and OS/2 by Microsoft) it is possible to automatically create a consistent program version. To obtain an executable program, the C compiler must be supplemented with suitable runtime support. Together with M2CC/C a sample library is provided in source code. The generated C source code can be adapted to the user's C compiler by command line options and configuration of the run time support. The translator system supports configuration by environment variables to locate files in different directories and to control several option settings. Interfacing C libraries at source text and object level as well as directly embedding C source text in the Modula-2 program is also supported."Terra Datentechnik still offers Logitech Modula-2 (versions 3.40/3.41 and 4.0). They also distribute Stonybrook Modula-2 and compilers for DEC VAX and DEC Alpha (this is called M2VMS).Mandeno Granville Electronics Ltd offers Mod51, "a combination of the structured text language of IEC1131, and ISO Modula-2, optimized for the worlds most popular 8 Bit controller - the Intel C51 core. Mod51 is ideal for both Industry and Teaching, and includes simple teaching tutorials, for those new to embedded controllers".Cambridge Microprocessor Systems Limited still offers a Modula-2 Development Pack. From their homepage: "All our 68k products are supported by OS9, OS968k, and MINOS a Real Time Multitasking Operating System, with a choice of languages from assembler, C/C++ compilers and Modula-2. The development packs include MINOS plus a free run time licence, this means the user can make unlimited copies of MINOS totally free of charge."Softvelocity: offers Clarion. A short description from their homepage: "Clarion is the foundation of the SoftVelocity product line and anchors the company's reputation for fast, efficient database application development. In addition to the Clarion 4GL language, the Clarion product also includes both a C++ and Modula-2 compiler. All of the languages share a common optimizer, and they can be mixed within a single application." This is what a user reports: "The Clarion compiler is just the Topspeed 32 bit one repackaged, there is very limited support for compiling standalone programs as most API support has been stripped so it's only usable really with Clarion."