Modula-3: Language definition

Designed and written by Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordan, Bill Kalsow, and Greg Nelson.

The language designer should be familiar with many alternative features designed by others, and should have excellent judgment in choosing the best and rejecting any that are mutually inconsistent... One thing he should not do is to include untried ideas of his own. His task is consolidation, not innovation. --C.A.R. Hoare

The original definition of Modula-3 was given in SRC Research Report 31, August 1988. It was revised in report 52, November 1989. And finally published in Systems Programming with Modula-3, November 1989.

This edition of the language definition is derived from all of the above. In the few places where it differs from the version published in Systems Programming with Modula-3, this on-line version is correct. The errata to the published version are available. A multi-page, hierarchical version of this language definition is also available.

Copyright (C) 1988 Digital Equipment Corporation, Ing. C. Olivetti and C., SpA.

This work may not be copied or reproduced in whole or in part except in accordance with this provision. Permission to copy in whole or in part without payment of fee is granted only to licensees under (and is subject to the terms and conditions of) the Digital License Agreement for SRC Modula-3, as it appears, for example, on the Internet at the URL All such whole or partial copies must include the following: a notice that such copying is by permission of the Systems Research Center of Digital Equipment Corporation in Palo Alto, California; an acknowledgment of the authors and individual contributors to the work; and this copyright notice. All rights reserved.