The focus of this guide is on the discontinued Modula programming language, as well as its successors, currently known as Modula-2 and Modula-3.
Modula was first developed and implemented by Niklaus Wirth on a PDP-11 in the early 1970s. Modula was a descendant of Pascal, which had also been designed by Wirth. Soon after Modula was released in 1975, Wirth discontinued the language, focusing his efforts on Modula-2, developed as a successor language to Modula.
Modula-2 was developed by Wirth at the Swiss Federal Institute of Technology in Zurich, Switzerland between 1977 and 1985. Wirth viewed Modula-2 as a successor to his earlier languages, Pascal and Modula, rather than as a version of Modula. Besides Pascal and Modula, its design was also influenced by the Mesa programming language, which was itself influenced by ALGOL.
Modula-2 was intended to serve as the sole programming language for the operating system and application software for the DISER Lilith workstation computer, created by Wirth.
Still actively maintained and developed, Modula-2 is a general-purpose procedural language, capable of systems programming but with broader applications. Its syntax is more similar to Pascal than to Modula, although some of Pascal's elements and syntactic ambiguities are absent, and the module concept is added, along with direct support for multiprogramming. The language can be compiled on a single pass, and is much faster than earlier multi-pass compilers.
Modula-2 programs are made up of modules, each of which consists of two parts, a definition module and an implementation module.
It has been reported that all of the Soviet and Russian satellites are programmed in Modula-2.
Several compilers have been developed for Modula-2, including ACK, ADW Modula-2, Aglet Modula-2, Cambridge Modula-2, FST, Gardens Point Modula-2, GNU Modula-2, M2Amiga, M2M, MacMETH, Mod51, Megamax Modula-2, Modula-2 R10, ModulaWare, Native XDS-x86, ORCA/Modula-2, p1 Modula-2, MOCKA, TDI Modula-2, TERRA M2VMS, Ulm Modula-2 System, and XDS-C. Turbo Modula-2 was both a compiler and an integrated development environment (IDE) for the Modula-2 language running on MS-DOS.
Although it was released in the 1980s, Modula-3 has not been widely adopted in industry. The language was designed to be a successor to an upgraded version of Modula-2 called Modula-2+. Developed by a team from Digital Equipment Corporation's System Research Center and Olivetti Software Technology's Research Center, its chief features are simplicity and safety, but without sacrificing the power of a systems programming language. Modula-3 adds support for generic programming, multithreading, exception handling, garbage collection, and object-oriented programming while omitting potentially insecure features like multiple inheritances and operator overloading.
Besides DEC-SRC M3, the original, compilers available for Modula-3 include Critical Mass CM3, CM3, EzM3, HM3, and Polytechnique Montreal Modula-3 PM3.
Modula-3 is maintained by Elego Software Solutions.
Of the three related languages, Modula, Modula-2, and Modula-3, Modula-2 is the one most actively developed and in use. Either of these three languages is appropriate for this category, as are any IDEs, editors, dialects, implementations, compilers, or tools designed to facilitate programming, along with any user groups, forums, tutorials, or guides.
 
 
Recommended Resources
CFB Software: Lilith and Modula-2
Lilith was a custom-build workstation computer built by Niklaus Wirth between 1977 and 1984, by which time several hundred workstations were in use. Wirth designed the Modula-2 programming language as the sole programming language for the operating system and application software for Lilith. The site features Multi-Pass and Single-Pass Modula-2 compiler sources, handbooks, dissertations in PDF format, and references for further reading.
https://www.cfbsoftware.com/modula2/
CM3 is an open-source implementation of Modula-3 originally created by Critical Mass, which ceased operations in 2000, giving the source to Elego Software Solutions, which continued its development. CM3 is currently the main implementation of Modula-3. Release notes are featured, along with upgrades, documentation, installation notes, package status, problem reports, changes, and performance data. A history is given, and current and older releases may be downloaded.
https://modula3.elegosoft.com/cm3/
The Electronic Developer Magazine for OS/2 features an overview of the Modula-2 programming language, beginning with a discussion of the origins and development of the language by Niklaus Emil Wirth, who also designed Pascal and Oberon, as well as a list and information about implementations of the language for the OS/2 operating system. DOS, Win-OS/2, and Java implementations are also covered. Publications and links to outside resources are included.
http://www.edm2.com/index.php/Modula-2
Presented by the Electronic Developer Magazine for OS/2, discusses the TopSpeed package of the Modula-2 programming language for 16-bit OS/2 will also run on Windows and DOS. The TopSpeed system includes variants of the development system that could be purchased for C, C++, and Pascal, as well as the Modula-2 compiler, and they could all share a back end. The history of its development is given, along with installation notes, licensure and availability, and versions.
http://www.edm2.com/index.php/TopSpeed_Modula-2
Modula-2 is a programming language offering powerful and modern concepts like strict modularization, its future shaped by Modula-2 R10, a modern revision of Modula-2. These pages were created to serve as a starting point for people who have an interest in the language, offering a mix of development notes and announcements relating to Modula-2, as well as historically significant documents, facts, software, and other resources. User groups and projects are also highlighted.
http://www.freepages.modula2.org/
Available under the GNU Public License v3, GNU Modula-2 is a front-end for the GNU Compiler Collection that is complete and implements PIM2, PIM3, PIM4, and ISO dialects, as well as a full set of free ISO libraries and PIM libraries. Regression test results for its Debian, GNU/Linux, macOS, Solaris, and Windows packages are reported, along with release announcements and development notes, a user guide, installation instructions, and library documentation. A download page is available.
http://www.nongnu.org/gm2/
Known as m2c, Ulm’s Modula-2 System was developed at the Faculty of Mathematics and Economics at Ulm University. Available as free software, the compiler and tools may be distributed under the terms of the GNU General Public License, while the library is available under the GNU Library General Public License. Manual pages, an installation and user guide, and downloads for various platforms are available, along with historic materials and related material.
http://www.mathematik.uni-ulm.de/modula/
ADW Modula-2, the successor of Stony Brook Modula-2, has been released as freeware. Allowing the development of both 32-bit and 64-bit programs on the Microsoft Windows platform, it can be downloaded from the site. Other resources include a history of the development of Modula-2, a tutorial for novice Modula-2 programmers, suitable for both XDS Modula-2 and Stony Brook Modula-2. Other resources include a language reference, project information, and source codes.
https://www.modula2.org/
Modula-3 is currently maintained, developed, and supported by elego Software Solutions, which inherited the sources for the Critical Mass Modula-3 compiler and development system from Critical Mass in 2000 and has since completed several new releases of the system in source and binary form. In 2002, elego took over the repository of another Modula-3 distribution, PM3, previously maintained at the Ecole Polytechnique at Montreal. Links to various resources are included.
https://modula3.elegosoft.com/
Comprised of anyone who has made a contribution to the development, maintenance, and improvement of the Modula-3 programming language, the organization’s site contains information about the language, announcements of new releases, release archives, a download page, and installation instructions. Other topics include the major implementations of the language, language definitions, and other resources, and links to books and other sites containing additional information.
http://www.modula3.org/
Designed and developed by Niklaus Wirth between 1977 and 1985, Modula-2, there are currently several implementations and compilers for the programming language, some of which are still in active development. Links to the Modula-2 R10, GNU Modula-2, and Objective Modula-2 projects are posted, along with links to various FAQs, books, compilers, and other informational websites related to the language, as well as to other Modula-2 resources, such as syntax diagrams and grammars.
http://www.modula-2.net/
OM-2 is a reflective, object-oriented programming language whose object system is based on the object model of Smalltalk, and uses the runtime library of Objective-C to support the Cocoa and GNUstep APIs natively. Its reference implementation is based on the Modula-2 R10 dialect, a modern revision of Niklaus Wirth’s programming language. Its features, base language extensions, revised semantics, and object-oriented language extensions to support Cocoa and GNUstep are highlighted.
http://objective.modula-2.net/
PCjs Machines: Logitech Modula-2/86 Compiler (1984)
The PCjs Project is a collection of computer simulations written in JavaScript. The goals of the open-source project are to create fast, full-featured simulations of classic computer hardware, help people understand how they worked, and make it easy to experiment with different machine configurations and software. This is a demo of Logitech’s Modula-2/86 Compiler 1.10, as installed in an IBM PC XT, with EGA display, and a 10MB hard disk with MS-DOS 3.20 with Microsoft C 4.00.
https://www.pcjs.org/apps/pcx86/1984/modula2/
Based on work supported by the National Science Foundation and by Sun Microsystems Laboratories, the site includes a general discussion of Persistent Modula-3, an extension of the Modula-3 programming language that supports orthogonal persistence and transactions, with current support for Linux, Solaris, and Alpha/OSF, although ports to other platforms are not difficult, according to the authors. The PM3 implementation may be freely downloaded from the site.
https://www.cs.purdue.edu/homes/hosking/pm3.html
Hosted on SourceForge, Mide3de2 is a freeware Windows independent development environment (IDE) for the FST Modula-2 compiler, by Fitted Software Tools. Available through a GNU General Public License, it supports the Microsoft Windows environment. Its features include multi-document support, syntax highlights, advanced search and replace functions library browsing, and multi undo/redo functions. Screenshots and a download page are available.
http://mide3de2.sourceforge.net/