Major Objectives/Features
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/threads, and tries to eliminate unsafe features.
Although Modula-3 is a relative of the Pascal family, it also has some characteristics which are similar to C and C++. Some features include:
![]() |
Case-Sensitive |
All keywords and
reserved words must be in uppercase letters. Identifiers such as
variables, constants, and procedure names
must always appear in the same case as the one used in the definition. For
example, Main
and main
are two different
identifiers.
![]() |
Single main module |
Every Modula-3 program must have one and only one main module. For small programs, the main module may be the only module. For example, see p. 8
![]() |
Comments |
Comments are of the form "(* comment *)" .
![]() |
BEGIN/END for code blocks |
Code blocks are denoted by enclosing the code in a matched set of BEGIN/END. One important point to notice is that for a procedure the END must be followed by the name of the procedure.
![]() |
Semi-colon separate statements |
Each statement must be separated by a semi-colon.
![]() |
Sources in ./src All of the Modula-3 programs must be located in a
subdirectory called |