Compilers Text Editors and IDEs Tutorials Papers Libs Sources Q&A Forums Lists Groups Links Downloads Pictures Guestbook


Recommended Links

GNU Modula-2

Modula-2.org home page

Modula-2.net home page

Compilers and Translators

[ top ]  Microsoft DOS / Windows

iso.png 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.
iso.png XDS Modula-2/Oberon-2 is an optimizing M2/O2 compiler/translator. "Native XDS-x86 is an optimizing ISO Modula-2 and Oberon-2 compiler for 32-bit Intel x86 systems running Windows. It comes with additional suite of tools including debugger, linker, etc. XDS-C is a Modula-2/Oberon-2 'via C' compiler: its output is ANSI C, K&R C, or C++ source code, which may then be compiled by a third-party C/C++ compiler for any target platform. This technique allows you to cross program in Modula-2 and/or Oberon-2 for virtually any target environment. XDS-C itself runs on Windows." The compiler was freeware since 2005, now it is available under a permissive Apache License (2.0).
iso.png 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 a lot of platforms (also a version for DOS called GPM-PC) available which have now mostly 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."
Similar to the former package there is a DOS compiler called DCP Modula-2 (v2.0) from Eastern Germany dating from late fall 1989 (East Germany had just collapsed then) which seems to be a modified version of the M2MPC compiler from ETH / Modula Corp but appears to generate native code rather than M-Code (like the ETH compilers) to be run under an interpreter. The compiler can be run under emulator software such as DOSBox and compiles most of the PIM Modula-2 examples from the Coronado Tutorial.
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 not standard (e.g. 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.
iso.png Do not forget that GNU Modula-2 can be built using the Cygwin system available for Windows systems, probably the compiler can also be built in the MSYS2/MinGW environment.
Umberto Salsi, who wrote a Modula-2 compiler mentioned below in the Linux-section, provides useful information on how to use his compiler on a Windows computer.

[ top ]  Linux / Unix

iso.png GNU Modula-2 - there is a lot of information available from the homepage. The compiler is available in different versions. As it is now (2023) part of the official GNU Compiler Collection (coming with lots of libraries), the Modula-2 frontend is available on every machine capable of running GCC. Gaius Mulley who developed the frontend gives great support using the compilers mailing list. 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."
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 including sources by Christian Maurer. Benjamin Kowarsch updated Mocka in july 2018 to follow *nix path-conventions and to update copyright notes and some other "glitches". Also 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. Some FTP servers still provide older archives of the Mocka compiler that are hardly usable on current systems.
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' or 'WRL Modula-2' (Western Research Laboratories).
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.
Andreas F. Borchert uploaded two historic Modula-2 compilers for really ancient systems. There is modula-m68k, a historic Modula-2 compiler for the Motorola 68020 architecture and there is modula-3200, a historic Modula-2 compiler for the minicomputers of the Perkin-Elmer 3200 series running XELOS. Both compilers were derived from the original ETH Modula-2 compilers.
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.

[ top ]  Macintosh / PPC

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.

[ top ]  Amiga

iso.png 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 from GitLab. An ISO image containing the compiler, editor, source level debugger and demos is available from Wickensonline.co.uk. 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.

[ top ]  Atari

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").
HiSoft FTL Modula 2 is available from archive.org since 2020. KedriD who uploaded the disc image adds: "You can rename a .MFM.img file produced by KyroFlux to .st which works with Steem." Thank you!
There are a number of FTP-Servers where you can download some compilers mentioned here. If the link is dead, search for Atari, Modula-2 and programming -
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.

[ top ]  Sinclair ZX Spectrum

There is a compiler for the Sinclair ZX Spectrum by a UK-based company called Mira Modula-2, released in 1991. I didn't know this compiler and was pointed to it by Chris, who stumbled upon my pages. He points out that it's a bit tricky to use the compiler. "It's made for the 48k AND 128k version of the zx spectrum even using the 128k RamDrive." Chris also gave some more hints to get things working: "I tried the Tape on 48k Spectrum and the example 'ROUTE' works after the file 'VILLAGES' was repaired, Modula-2 forum thread on Spectrum Computing. Better install it on From tape to Disk, Microdrive or use the RAMdrive since else its a burden to keep rewinding that tape per SUBmodule."
If you are interested in more common 8bit systems, have a look at the CP/M section of this page.

[ top ]  Translators

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 Modula-2/Oberon-2 contains XDS-C, a professional and mature translator. From their (vanished) 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 used this as a starting point. Note: The program is/was available in the FreeBSD ports-collection. An archive of version 1.19 for NeXT machines is also available.
Sinuhe's Modula-2 (M2) compiler and translator to C is a fork of m2c-0.6, a program originally written by Vladimir Makarov. 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."
m2j is a multi-dialect Modula-2 to Java translator and via-Java 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).
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.
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.
Transpiler from Modula-2 to Oberon and Component Pascal by Bernhard Treutwein. Based on work of Niklaus Wirth.
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.

[ top ]  OS/2

There is a quite complete overview of Modula-2 compilers that were once available for OS/2.
The only good source for OS/2 Modula-2 (in 2020) is the Hobbes OS/2 Modula-2 Archive. This archive is run as a service by the department of Information ∧ Communication Technologies at New Mexico State University in Las Cruces, NM, USA.
Release candidates and beta versions of XDS Modula-2/Oberon-2 are available from there as is the latest version of Gardens Point Modula-2 for OS/2 (October 1996).
In the same directory there is a beta of Canterbury Modula-2 (sometimes also called MHC Modula-2) still available. The filename is mod201j.zip.
Some kind people built binaries of MTC for OS/2. The Modula-2 to C Translator claims to produce readable code. Information on the original version of MTC is available from the translators-section.
You should have a look at a page by Peter Moylan who collected information on all Modula-2 compilers available for this platform.

[ top ]  CP/M

new.png 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:

Borland Turbo Modula-2 and FTL-Modula2 (different versions [1.14, 1.30] available) are available from:
http://www.retroarchive.org/cpm/lang/lang.htm (more information). FTL Modula-2 is also available from cpcwiki.eu where you can also get the original manuals and other information.

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.
While clicking my way through Youtube, I found this video. It shows Borland Modula-2 running on an Amstrad CPC6128 under CP/M. I do not know if the compiler is still available somewhere.

[ top ]  Modula-2 Family

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."
Alma-0 is/was "a multi-paradigm computer programming language. This language is an augmented version of the imperative Modula-2 language with logic-programming features and convenient backtracking ability. It is small, strongly typed, and combines constraint programming, a limited number of features inspired by logic programming and supports imperative paradigms. The language advocates declarative programming. The designers claim that search-oriented solutions built with it are substantially simpler than their counterparts written in purely imperative or logic programming style. Alma-0 provides natural, high-level constructs for building search trees". You can find an early version of the compiler as well as the homepage of the project which was also saved via archive.org.
[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.
A recent and actively developed programming language referencing Modula-2 is Nim: "Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula".
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.

[ top ]  The Disappeared

[ top ]  Commercial Compilers

iso.png ModulAware 32 and 64 bit Modula-2 and Oberon-2 compilers for HP OpenVMS Alpha and VAX. This is the company offering ModulAtor.
iso.png 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. The current version 10.0 is 64-bit-only and supports both Intel x86_64 and ARM arm_64. V10.0 supports macOS as well as iOS. A free demo-version coming with restrictions is available. Please note there are versions for classic Mac (supporting both 68K and PowerPC Macs) and 32-bit computers. A detailed description of the product is available.
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).

Get more information


IRC Modula-2 Chat

Modula-2 at Wikipedia.org

Modula-2 Webring
[ List all | Random | Join ]
[ Prev | Next ]


Contact, suggestions, submission of news items: modula2 at christophschlegel.at