Subject: Modula-3 Frequently Asked Questions (FAQ)
Date: 5 Feb 93 00:34:00 GMT
Organization: DEC Systems Research Center
Last-modified: Feb 04 1993
Modula-3 Frequently Asked Questions
What is Modula-3 ?
The goal of Modula-3 is to be as simple and safe as it can be while
meeting the needs of modern systems programmers. Instead of
exploring new features, we studied the features of the Modula
family of languages that have proven themselves in practice and
tried to simplify them into a harmonious language. We found that
most of the successful features were aimed at one of two main
goals: greater robustness, and a simpler, more systematic type
Modula-3 descends from Mesa, Modula-2, Cedar, and Modula-2+. It
also resembles its cousins Object Pascal, Oberon, and Euclid.
Modula-3 retains one of Modula-2's most successful features, the
provision for explicit interfaces between modules. It adds objects
and classes, exception handling, garbage collection, lightweight
processes (or threads), and the isolation of unsafe features.
Is Modula-3 a superset of Modula-2 ?
No; valid Modula-2 programs are not valid Modula-3 programs. However,
there is a tool to help convert Modula-2 programs to Modula-3.
Where can I get a description of Modula-3 ?
The definition of Modula-3 is contained in:
System Programming with Modula-3
Edited by Greg Nelson
Prentice Hall Series in Innovative Technology
L.C. QA76.66.S87 1991
also known as SPwM3. Here is the table of contents:
2. Language Definition
3. Standard Interfaces
4. An Introduction to Programming with Threads
5. Thread Synchronization: A Formal Specification
6. I/O Streams: Abstract Types, Real Programs
7. Trestle Window System Tutorial
8. How the Language Got its Spots
Chapters 2 and 3 have been reprinted in Sigplan Notices, Volume 27,
Number 8, August 1992, pp 15-42.
Sam Harbison has written a more tutorial book about Modula3:
Samuel P. Harbison
Prentice Hall, 1992
Where can I get other information on Modula-3 ?
There is a Usenet newsgroup, comp.lang.modula3. The archives of
that group are available via anonymous ftp from gatekeeper.dec.com
in pub/DEC/Modula-3/comp.lang.modula3. If you do not have
access to Usenet, there is a relay mailing list; send a message to
[email protected] to be added to it.
There are a couple high-level overview articles available:
"Modula-3", Sam Harbison, Byte, Vol. 15, No. 12, October 1990,
"Safe Programming with Modula-3", Sam Harbison, Dr. Dobb's Journal,
Vol. 17, No. 10, October 1992, pp 88+.
A description of the Modula-3 type system is in
"The Modula-3 Type System", Luca Cardelli, Jim Donahue, Mick Jordan,
Bill Kalsow, Greg Nelson, Conference Record of the Sixteenth Annual
ACM Symposium on Principles of Programming Languages (POPL), Austin
Texas, January 11-13 1989, pp 202-212.
The Trestle window system toolkit and higher-level FormsVBT toolkit,
available with Modula-3, are documented in the following reports:
"Trestle Reference Manual", Mark S. Manasse and Greg Nelson,
SRC Research Report 68, December 1991.
"Trestle Tutorial", Mark S. Manasse and Greg Nelson, SRC Research
Report 69, May 1, 1992.
"The FormsVBT Reference Manual", Marc H. Brown and James R. Meehan,
(soon to be SRC Research Report ??).
These reports can be ordered by e-mail; send your request to
Where can I get an implementation ?
There is only one implementation available today. It has been built
by SRC and is available via anonymous ftp from gatekeeper.dec.com in
pub/DEC/Modula-3/release. Contributed software can be found
The current version, 2.11, implements the language defined in SPwM3.
There are versions for the following machines:
AIX386 IBM PC running AIX/PS2,
AP3000 Apollo DN4500 running Domain/OS
ARM Acorn R260 running RISC iX 1.21
DS3100 DECstation 3100 and 5000 running Ultrix 4.0 and 4.2
HP300 HP 9000/300 running HP-UX 8.0
HPPA HP 700/800 running HP-UX 8.0
IBMR2 IBM R6000 running AIX 3.1,
IBMRT IBM RT running IBM/4.3,
NEXT NeXT running ?
OKI Okidata 7300 (i860) running AT&T SVR4.0
SPARC SPARCstation running SunOS 4.1.x
SUN3 SUN3 running SunOS
SUN386 Sun 386i running SunOS 4.0.1
UMAX Encore Multimax running UMAX 4.3 (R4.1.1)
VAX VAX running Ultrix 3.1
SRC Modula-3 includes a user manual, compiler, runtime library,
some libraries and a few other goodies (see below).
The compiler generates C as an intermediate language and should be
fairly easy to port. Except for the very lowest levels of the
thread implementation, the entire system is written in Modula-3.
What if I don't have ftp access ?
Unfortunately, we cannot deliver Modula-3 other than by
Fortunately, Prime Time Freeware (PTF) includes Modula-3. PTF is
a set of two ISO-9660 CDroms filled with 3GB of freeware, issued
semi-annually. The latest issue, Volume 1, Number 2, July 1992,
contains SRC Modula-3 2.07. PTF is distributed via bookstores and
mail. You can reach PTF using:
Email: [email protected]
Fax:  (408) 738 2050
Voice:  (408) 738 4832
Mail: Prime Time Freeware
415-112 N. Mary Ave., Suite 50
Sunnyvale, CA 94086
Can I contribute Modula-3 software ?
Certainly. Send us what you are willing to share, be it programs,
libraries or other things. We'll put them in the distribution.
Right now, the pub/DEC/Modula-3/contrib directory contains:
m3rpc an rpc system from Xerox Parc
M2toM3 a translator from Modula-2 to Modula-3
m3pc an implementation of Modula-3 for PCs.