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 src from the directory where the compiler will be called. The resulting program will be saved in a directory from the current directory then named the name of the operating system currently running.