Pat Terry's page for Modula-2 and friends

This is a page of information that might be of interest to programmers who use, or have used Modula-2 and its relatives. Opinions expressed here are my own, and no guarantee is given that this information is 100% accurate or up to date.


The Modula-2FAQ and newsgroup

A Modula-2 FAQ is maintained by Rick Sutcliffe and can be retrieved by anonymous ftp from the site ftp://FTP.twu.ca/pub/modula2/m2faq.html.

Modula2 also has a low-volume, unmoderated Usenet newsgroup, comp.lang.modula2.

Back to contents

WG13 and the ISO Standard

The official home of the ISO Modula-2 standardization working group WG13 is now hosted at http://sc22wg13.twi.tudelft.nl/ a site probably maintained by Kees Pronk, a devoted member of the group, of which Martin Schönhacker of Vienna is the present convenor.

The definition modules and the concrete syntax are available from this home site. However, the Modula-2 standard itself is only available at a price from national standards bodies or ISO (the publisher). If you want to get an idea of what this enormous document looks like, an earlier version of the draft is believed still to be available as a Latex document by FTP from the site ftp://ftp.mathematik.uni-ulm.de/pub/soft/modula/standard/draft4/.

Kees and Martin have also published very readable articles on the standard and on the standardization process in

Postscript copies of these articles are available in UNIX gz format from the WG13 home site (about 42K each).

Read my reminiscences of thestandardization process to learn a little more about its history and its outcome.

One can also get electronic copies of the library definition modules (header files, for C readers!) from the sites ftp://FTP.twu.ca/pub/modula2/ISOLibraries/ISODEFMods/ or from ftp://ftp.mathematik.uni-ulm.de/pub/soft/modula/standard/libdefs/, and a copy of the EBNF grammar can be found at http://www.twu.ca/rsbook/Appendices/Ap3.html.

Back to contents

Recommended Modula-2 textbooks; getting going

A great many textbooks have appeared based on classical Modula-2. Some were much better than others; inevitably at the outset several appeared that were not much more than crude hacks of earlier Pascal texts. An outstandingly good one, especially for its thoroughness as a reference, was that by one of the founder members of WG13, Kim King, Modula-2: A Complete Guide (D.C. Heath & Co, 1988).

In this author's opinion, other inspirational books that have used Modula-2 include :

Several other notable texts boast among their authors members of the original WG13 standardization group. Interestingly, these authors wrote in terms of "classical" Modula-2, with the exception of Barry Cornelius, whose book includes a discussion of many of the non-standard extended features found in TopSpeed Modula-2.

Readers will note with some sadness that no new Modula-2 books seem to have been produced for some time. So far as is known, only one of the many authors who produced textbooks on classic Modula-2 has updated his offerings. Rick Sutcliffe offers an ISO-compliant shareware text at

Rick's book is also available on some CD-ROM collections. One of these is the (highly recommended) BURKS CD-ROM a 2-CD set produced by John English of Brighton University which includes a massive amount of shareware, freeware, leads and material for Computer Scientists at the unbelievably low price of about 5 GBP.

The book is also available on the educational XDS Modula-2 Kick Start CDROM, details of which can be obtained from http://www.pmi-soft.com/xds/xdseducd.html

The Kick Start CD-ROM, which costs $90, and contains a slightly crippled version of the XDS native code compiler for Win95/NT, can be ordered directly from the publisher:

Back to contents

Oberon

Like Wirth's other famous language, Pascal, Modula-2 has several descendants. The most famous of these, Oberon, was developed by Wirth as part of "Project Oberon", one that developed a complete concise operating system (Oberon) and its associated implementation language (also called Oberon). This project, and the software that supported it, are described in a text by Wirth and Jurg Gutknecht: Project Oberon: The Design of an Operating System and Compiler (Addison-Wesley, 1992).

The language Oberon was later extended by Wirth and Mössenböck into Oberon-2, and various variations on the operating system have emerged - unfortunately suffering from the same subtle inconsistencies that plagued the early implementations of Modula-2 and Pascal. Oberon has a small but devoted band of followers, who will tell you that their small, well-honed systems are infinitely better than any of the other behemoths that shall remain nameless.

Oberon and Oberon-2 removed some of Modula-2's features, but introduced facilities to support Object-Oriented programming, again in typically economical Wirth style. An excellent text that teaches OOP based on Oberon-2 is Mössenböck's Object Oriented Programming in Oberon-2 (Springer Verlag, 1993).

Oberon has its own newsgroup comp.lang.oberon. Implementations are available for most platforms, many free of charge. Follow up on Oberon by visiting some of the following

Web sites:

Freely available implementations

Back to contents

Modula-3

Another heavily extended extension of Modula-2 is Modula-3, also with its own newsgroup comp.lang.modula3. Other leads of interest can be found at

Back to contents

Actively supported commercial Modula-2 compilers

For an extensive list the FAQ should be consulted. Three of the better known suppliers seem to be:

xTech Ltd, who produce

Contacts

Gardens Point Modula-2 of Queensland, Australia, who produce

Contacts

Stony Brook Software who produce

Contacts

Back to contents

Shareware, freeware, and demonstration systems

Again, the FAQ has a far more extensive list, but some of the better known ones are the following

Objective Modula-2

Information about the active Objective Modula-2 project can be found at

GNU Modula-2

Information about the active GNU Modula-2 project can be found at

Fitted Software Tools Modula-2 (FST)

This non-ISO compiler for MS-DOS is available as a 630K file, compressed with LHA:

This compiler was developed as a shareware product by Roger Carvalho but is no longer actively supported. It essentially conforms to PIM version 3, but also supports some simple and interesting OOP extensions.

Gardens Point Modula-2

Versions of this highly ISO compliant compiler for DOS, Linux and FreeBSD are freely available from

MOCKA - The Karlsruhe Modula Compiler

This is a non-ISO compiler freely available for Linux and FreeBSD; commercial versions are available for other platforms.

Contacts

FTP sites for free versions:

xTech Ltd

This ISO compatible compiler, in releases for Windows 95/NT, OS-2 and Linux is also available in restricted demo and pre-release versions:

Back to contents

Other libraries and files

Peter Moylan has an impressive set of libraries called PMOS available for various platforms at

Peter Moylan also has a Numerical Analysis library at

Pat Terry has an alternative, extended library for the FST compiler for MS-DOS systems available from

A partly developed application framework for Windows programming can be found at

An interesting OO library making use of the FST Modula-2 extensions was developed by some of Kees Pronk's students in Delft, and is available as

Back to contents

Modula-2 to C converters

The program mtc, which works in conjunction with Mocka, is available by anonymous ftp from

The well-known Pascal to C converter p2c written by Dave Gillespie also provides options for converting from Modula-2 to C. This is available from several Linux mirror sites:

Back to contents

Compiler construction tools

Coco/R, originally implemented in Oberon, generates recursive descent parsers and their associated scanners from attribute grammars. Modula-2 versions are available from

Versions exist for the MS-DOS compilers (JPI, FST, Logitech, StonyBrook, Gardens Point), for the Mocka compiler for Linux and FreeBSD, as well as for the Gardens Point Unix compilers, including Linux and FreeBSD.

A version that produces TurboPascal units very similar to the Modula modules is available, as is a version for C and C++. A Java version is expected shortly. For more details visit Pat Terry's Coco/R page.

A compiler construction toolkit named Cocktail was implemented in Modula-2 by Josef Grosch, using the Mocka compiler. This was made available for various platforms, and ported to C. While the newer versions of Cocktail are available only as commercial products, some earlier versions are still freely available at

Advice on these is available by email to cocktail@eb.ele.tue.nl

Back to contents

Other leads on Modula-2

Web Pages

Modula FTP Sites

Joint Modular Languages Conference

Back to contents