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.info home page

Excelsior home page

Tutorials and Papers

[ top ]  Online Tutorials

There are very few free Modula-2 tutorials available. Also have a look in the section not english Modula-2 pages - maybe there's something available in your own language.

First one is the only english Modula-2 tutorial available for free (in different versions). A great text which in fact is a whole book about Modula-2 and programming. It is called Coronado Enterprises Modula-2 Tutorial and was written by Gordon Dodrill in March 1987. With permission of Mr. Dodrill the tutorial was converted to HTML by Nacho Cabanes in 1999. It's a good tutorial which is suitable for beginners but of course it is a bit dated as the text refers to DOS-compilers and teaches PIM-style Modula-2. For printing and reworking I provide a PDF (Portable Document Format) as well as an ODT (Open Document Format) file. The examples are also available.

Coronado Tutorial at modula2.org: Frank Schoonjans edited the tutorial to be usable with newer compilers such as XDS and ADW Modula-2. The examples can be downloaded from modula2.org for different compilers, an archive for the Mocka compiler is also available.

Report on the programming language Modula-2 4th edition, by Niklaus Wirth. This is the original description of the language. It's also the last version of pre-ISO Modula-2. It's more a reference than a tutorial.

You may also download the original (1st edition) ETH report on Modula-2 (2.5MB, .pdf) by Niklaus Wirth from Karl Kleine's great page Historic Documents in Computer Science. The original reports about Modula-2 and its use are also available from the e-collection (ETH Institutional Repository). This is a real treasury! Thanks to ETH to get all these reports published. The provided link performs a search for Modula-2 within the collection. Additionally, here are a few links to the most important documents related to Modula-2:

1. Niklaus Wirth, Modula-2, 1978.
2. Niklaus Wirth, Modula-2, [2nd ed.], 1980, also known as description of PIM2.
3. Niklaus Wirth, The personal computer Lilith, 1981.
4. Niklaus Wirth, Data structures and algorithms, 1984.
5. Niklaus Wirth, Jürg Gutknecht, A fast and compact compiler for Modula-2, 1985.
6. Niklaus Wirth, Modula-2 and object-oriented programming, 1989.

Next one is a Sharebook which means this one is not free, but it is cheap and it is a great book covering every detail of Modula-2:
Abstractions for Data and Programming Structures (Using ISO-Standard Modula-2). By R. Sutcliffe (http://www.modula-2.com). This seems to be the only available book teaching ISO-Modula-2.

A short introduction to using ADW/StonyBrook Modula-2 by Dr. Sean Ho is available at the department of Computing Science / Math at Trinity Western University.

C. Petzold's book translating from Visual C++ to Modula-2 (using XDS or Stony Brook).
A Gentle Introduction to Modula-2: A compact tutorial describing Modula-2 (based on Topspeed Modula-2). Not intended for beginners but for people who already know some programming language. Now hosted locally, as the original site is offline.
Mr. Terry Regner wrote a short introduction to Modula-2 utilising the XDS Modula-2 compiler.
Modula-2 sample programs for Windows95/98, translated to Modula-2 by Professor Shigeo Hayashi. These samples were compiled with XDS-Modula-2 and are really useful.
theForger's Win32 API Tutorial - Version 2.0: Written by Brook Miles, adapted for Modula-2 by Frank Schoonjans. This tutorial attempts to get you started developing with the Win32 API as quickly and clearly as possible.
Learning Modula2 through exercises: "During the exercises that you find on this page we, or more exactly YOU, will learn to program using the programming language Modula2". A nice and useful introduction which is still available thanks to the Wayback Machine.

Large and useable parts of B.J. Holmes book Modula-2 programming are available via Google books. The author teaches Topspeed Modula-2 but knows ISO Modula-2 very well. It seems to have been one of the last (1994) textbooks about Modula-2.

Modula-2 CGI Tutorial: This is a fragment which I leave here to provide beginners with a basic idea. There are quite a lot of good tutorials for CGI programming in different languages available wich can easily be used to learn the basics. Some interesting information about Modula-2 and the Common Gateway Interface is available at Jan Verhoevens Modula-2 pages.

[ top ]  Compiler Documentation

GNU Modula-2 Documentation. A lot of useful information. Growing up with the compiler.
Documentation of Aglet Modula-2 PPC for the AmigaOS platform.
Fitted Soft Modula-2 Docs in HTML-format available from this page: containing a nice introduction to the object oriented extensions of FST-Modula-2. This is also available in zipped form from the local download-area.
Documentation for ULM's Modula-2 System. Installation and User Guide by Andreas F. Borchert.
The MacMETH Modula-2 Manual [.pdf] is available online.
The Gardens Point Modula Language Reference Manual was available as part of BURKS, the Brighton University Resource Kit for Students. The BURKS pages disappeared but are still available via Archive.org.
Gardens Point Modula-2 Library Guide: I converted the definition-modules from Gardens Point Modula to HTML to have them available as online-help in a browser. Maybe the material is useful for you.
M2F Library Guide: Library guide for the other Linux compiler I use. This is fun as the library sources can more easily be modified (compared to GPM). Hope this helps.
Logitech Modula-2/86 Compiler Documentation for versions 1,2 and 3 is available from Bitsavers.
The original documentation of the M2M-PC System can be found at the Modula-2 page of CFB Software. PDF-format.

The following material is not really free but very useful if you are using the free personal edition of XDS Modula-2 (for downloading this compiler - see section compilers).
Main XDS-x86 documentation menu. From this page you may go to:

M2Amiga compiler documentation. Only in german language.
Borland Turbo Modula-2 manual (.pdf).
Hisoft FTL Modula 2 documentation is available from CPCWiki.eu. These are the docs for the Amstrad CPC version of FTL Modula-2.

[ top ]  Miscellaneous Material

Querying Archive.org for 'Modula-2' brings up some rather old but interesting documents and software packages.
Official Home of ISO/IEC JTC1/ SC22 / WG13 Modula-2: The International Standardization Working Group for the programming language Modula-2. Specification, standards, WG13 projects. Highly recommended site, if you are really interested in the language but no updates for a long time.
If you are interested in the difficulties of the Modula-2 standardization-process, you may want to read Pat Terry's Some reflections on Modula-2 standardization. Interesting.
Gaius Mulley, developer of GNU Modula-2 made a lot of interesting papers available at floppsie.comp.glam.ac.uk. There is a lot of background information about GNU Modula-2.
Interfacing Modula-2 to C Draft (.pdf): description from document: "This Technical Report provides rules to define interfaces for Modula-2 to call C procedures and to access C data entities in a portable way".
Practical Considerations on Writing Portable Modula-2 Code is a paper by J. Thöny of Systems Ecology at ETH Zürich: "This paper discusses some aspects of portability of Modula-2 code and gives some rules which helps in writing portable code."
BNF of the Modula-2 Programming Language: "Each element of this page is an anchor to a description of a syntax rule of the Modula 2 language. Each rule is illustrated by a graphical syntactic diagram. The rule names and non-terminal names are extracted from "Programming in Modula-2" Niklaus Wirth, Springer-Verlag eds., Berlin, 1983."
GNU GDB documentation. "Extensions made to GDB to support Modula-2 only support output from the GNU Modula-2 compiler (which is currently being developed). Other Modula-2 compilers are not currently supported, and attempting to debug executables produced by them is most likely to give an error as GDB reads in the executable's symbol table."
VUB Parallel Computing Laboratory at the University of Brussels offers a good Modula-2 page. Syntax reference, help on XDS and lots of other interesting papers. Also some games with complete sourcecode.
ModulAtor: a huge set of papers about different subjects (Modula-2 and Oberon). Very important and interesting docs, especially if you are interested in ISO Modula-2.
A quite dated but interesting Modula-2 implementation overview by Peter H. Hartel and Dolf Starreveld contains interesting details on the first Modula-2 compiler implementations. Also includes sourcecode of a benchmark program to compare compilers.
An article from EDM/2 (The Electronic Developer Magazine for OS/2) by Dmitry Leskov. Some advice and workaround-ideas around the question: "Is there a chance for applications written in Modula-2 to catch up?"
The Modula-2 FAQ compiled by Rick Sutcliffe can not be omitted from a directory like this one.

[ top ]  Books / Bibliography

Well, books can be seen as free material (anyone using libraries?). The few listed here just have to show that there are lots of books on Modula-2 out there (few on ISO-Modula-2...).
Want to buy a book? Have a look at the search results at Barnes & Noble for example. They seem to have most books still available (compared to other companies). You may also want to have a look at Amazon.com.
The bibliography below was never meant to be complete - it's just a starting point so you can see there's a lot out there (Another list of books compiled by Rick Sutcliffe and turned into hypertext by Peter Moylan is available).
This is the book! The book I learned from by Niklaus Wirth. I included the link because of the picture...
Modula-2 - a complete guide: Another book available at amazon. I remember some people in comp.lang.modula2 who said this is a very good one.

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: contact information