HOME

Resources

Compilers Tutorials/Papers Libs/Sources Newsgroups FAQ Forums/Lists

Special Areas

GNU Modula-2 Modula-2 CGI Tutorial Howto Setup a Fine Modula-2 Environment Programming with Modula-2 Misc. Modula-2 Related Pages Not-English Modula-2 Pages Downloads Please Sign My Guestbook Code Search

Recommended Links

GNU Modula-2

Modula-2 home page

Compilers and Translators


[ top ]  Microsoft Dos / Windows

iso.png XDS / Excelsior offers a free Modula-2 and Oberon-2 compiler. This is - in my opinion - the best one to find on the net. It also includes a Windows-IDE, a powerful set of libraries and a standalone debugger. Freeware since 2005.
You can download an evaluation-version of a predecessor of XDS called Excelsior Modula-2/Oberon-2: a portable Oberon-2/Modula-2 compiler (!DEMO/NOT FREE!). Quite old - but maybe interesting. Read more details about the history of XDS at www.excelsior-usa.com.
iso.png Gardens Point Modula-2: A compiler developed at Queensland University of Technology wich is free for none-profit-use. Really portable and mostly (e.g. EXCEPT is not implemented in the version I use;) ISO-compliant. Also have a look at section Linux/BSD below - there are newer builds available there. There are versions for .net and cygwin available for the Microsoft world. You may also want to visit ftp.psg.com as there are versions for DJGPP and EMX available as well as an older build for DOS called GPMPC and the library sources. A set of manuals may be downloaded from the compilers homepage.
Michael Pascoe and Kris Randall developed GPM Total, an IDE for GPM which disappeared from the net. The program is now available from the local download-area. The homepage said it works with gpmpc and the gpm-djgpp port.
[DISAPPEARED?] P2C/djgpp (via FTP from simtel.net): Pascal-to-C translator by Dave Gillespie, wich is also able to process Modula-2 sources. You'll have to get a copy of djgpp (v2) to use P2C. Sources are available and compile on most platforms (have a look at sections Translators and Linux/Unix below).
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. 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: windows-ide for FST, works great. a well done attempt to keep FST alive - I always keep in mind that I bought my first FST-compiler on two 360KB floppy-disks: what does this teach us: such an old compiler gets a windows-ide...
[DISAPPEARED?] Strannik: This compiler can also be found below in section MenuetOS. The Modula-2 syntax is somehow strange (not case-sensitive), but the generated executables are really small. Also it's possible to write real windows applications. have a look. It's in an early stage, but maybe this is a coming star... Also note that it is possible to write apps for MenuetOS. The compiler claims to understand Modula-2, Pascal and C.


[ top ]  Linux / Unix

iso.gif 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.
MOCKA: MOdula Compiler KArlsruhe is the Modula-2 system developed by the GMD research laboratory Karlsruhe / Germany. I used this compiler with FreeBSD 4.2 and it is fast and really stable.
Former home of GNU Modula-2 and M2F, now M2F only?

ULM's Modula-2 System: free (GPL) modula-2 compiler for SPARCv8 / Solaris 2.x or MC68020 / SunOS 4.1.x.
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 (...)".
iso.png Gardens Point Modula-2: a compiler which is free for educational and non-commercial use. This compiler ist fast and stable, it produces small executables and is well-documented. There are different versions available for FreeBSD, Linux (a.out and ELF, Redhat 6 + 7) and Sparc. You may also want to download the library-sources [FTP]. A set of manuals may be downloaded from the homepage of the compiler.
DEC Modula-2: 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 and Pascal compilers for Minix 2.0.0: description from homepage: "binaries and library sources for the ACK Modula-2 and Pascal compilers that can be added to Minix 2.0.0. (And to Minix 1.7.2 and inbetween versions, although that has not been tested well.)". You may find more information on the online manpage and in this document and over at the home of the ACK Amsterdam Compiler Kit. 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 be stable. It's a PIM3 Compiler.
Open Source Modula-2 compiler for IRIX: Still an early fragment (version 0.0.2), but interesting for people who want to build their own compiler. By Mark Ballew and Jason Baurick. The link above points to SourceForge. I think the Mini-Me cs623 compiler evolved from this.


[ 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. It consists of a compiler, dynamic linking-loader, linker, symbolic debugger, and editor. It is very fast and efficient. The entire development environment fits on a single small floppy disk (800 KB). The programmer can enjoy this efficiency during development. The efficiency is achieved thanks to the small size of the compiler and the dynamic linking-loader, which normally omits any linking at all. Thus static linking is optional; yet, 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. The language system is so efficient, it can still be enjoyed on old floppy disk Macintosh computers. MacMETH is freeware (courtesy ETH Zurich)."
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.
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

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 basic information on it.
M2Amiga: Open Source Modula-2 compiler for the Commodore Amiga. Sources and binaries are available.
Tools, compilers and a lot of other packages related to Modula-2 / Amiga are available here (Cyclone Modula-2, Turbo Modula-2 [not the Borland compiler!], Modula-2 to Pascal translator...).


[ top ]  Atari

Megamax Modula-2 for the Atari: This is freeware now and comes with complete source 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).
You can download some of the following free Modula-2 compilers for TOS at www.st-computer.net ([y] = download possible):


[ 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).
new.png 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.
m2c 0.6: a package for translating Modula-2 sources to C. By Vladimir Makarov. Readme says it's tested on vax/Ultrix, i386/Linux, sparc/SunOS4.1 and alpha/OSF3.x; The translator supports Modula-2 versions described in 3rd and 4th editions of PIM.
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 (see below) 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.
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. Also available from Tucows.
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 that is available from here: www.mysunrise.ch/users/gdm/gsoft.htm - The owner of the website added changes and bug fixes so that the new NewP2Ada now ports the output of the Mod2P program (a program to port Modula into Pascal), into Ada 95 with less manual editing of files."


[ top ]  Menuet-OS

MenuetOS is an operating system written in assembler that fits in one single 1.44MB disc. The OS already has networking capabilities, a fine GUI and some nice usable apps. I tried it, I loved it. Guess what? There's ongoing work to write a Modula-2 compiler for this system.
The principle seems to be: develop your program with Windows, convert it to Menuet-format, finally copy it to your system-disc. An English translation of the GUI is now available and some object oriented features have been implemented.
If I understood the concept, the compiler is able to handle Modula, Pascal and C. The languages implemented are a bit strange (Case-insensitive Modula-2). Download and information at [DISAPPEARED?] http://home.perm.ru/~strannik/.


[ top ]  OS/2

iso.png Gardens Point Modula-2: A compiler which is free for educational and non-commercial use. The compiler ist fast and stable, it produces small executables and is well-documented. Here is a link for downloading a version that may work on OS/2: Gardens Point Modula-2 (EMX) [FTP].
I do not know other free compilers for OS/2. You may want to have a look at a page by P. Moylan who collected information on all Modula-2 compilers available for this platform.
[DISAPPEARED?] 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.


[ top ]  CP/M

There are three compilers for CP/M available that are (of course) no longer sold:

Borland Turbo Modula-2
FTL-Modula2 (different versions [1.14, 1.30] available)

These two packages are available from:
http://www.retroarchive.org/cpm/lang/lang.htm.

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-docs.
a description of Turbo Modula-2 is available at cpmwelt.de.
Meanwhile I found a better CP/M emulator called MyZ80 by Simeon Cran. This is also Shareware, but imo 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.


[ 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. You'll have to do a search on Tucows. They change the exact URLs quite often.
Modula-P. from 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".
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."

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.
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. Also available from Tucows.
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/Kylix: Borland's Object Pascal. You may download the Personal Edition for free. Great development environment (RAD). Some versions of Turbo Pascal (1.0-5.5) are available in the so called "Museum" - you'll have to become a member of Borland's Community to get access to the download-area. This is free.


[ top ]  The Disappeared


[ top ]  Commercial Compilers

Modula-2 compiler for Java from Mill Hill & Canterbury Corporation. "This compiler is implemented in plain Java and generates plain Java sources".
An inexpensive native compiler for OS/2 (and eComStation) is also available from there.
ModulAware 32 and 64 bit Modula-2 and Oberon-2 compilers for HP OpenVMS Alpha and VAX. This is the company offering ModulAtor. Modulaware also develops a 32bit extended DOS compiler (the original XDS compiler) that is still popular with embedded developers. They also sell the XDS/Excelsior-compiler.
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. Here's some more information: "Version 8.0 of p1 Modula-2 is planned to run native under MacOS X and support Cocoa and Carbon. A free demo version of p1 Modula-2 V7.3 may be downloaded. It implements p1 Modula-2 with some restrictions."
Glance AG offers M2CC, an advanced looking 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. Description from 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."



Get more information


FMP RSS Feed

Modula-2 Webring
[ List_all | Random | Join ]
[ Prev | Next ]

Google


dmoz







Made with CSS