Waterloo Modula-2 for VM/SP CMS

Product Overview

The Evolution of Pascal

Pascal is a popular language for teaching data structures and
programming methodology. Unfortunately, standard Pascal is missing some
of the facilities that are key to modern programming techniques.
Modula-2, the latest descendant of Pascal, overcomes these deficiencies.

But, Modula-2 goes beyond the classroom too. Its powerful
facilities make it an excellent language in production environments as
well. Waterloo Modula-2 presents a novel approach to compilers,
merging the teaching and production requirements into one compiler and
run-time library.

"Modula-2 emerged from careful design deliberations as a
language that includes all aspects of Pascal and extends them with the
important module concept...", Professor Niklaus Wirth, Designer
of Pascal and Modula-2, Programming in Modula-2, Third Corrected
Edition (Springer-Verlag, 1985).

Optimized for Fast Program Execution

Waterloo Modula-2 automatically performs an optimization
pass over the generated code. The resulting programs execute with all
the speed and efficiency demanded in production environments.

Standard CMS Development Environment

Object files are in standard IBM format for use with standard CMS
commands such as LOAD and INCLUDE. Also, these files may be placed into
a CMS TXTLIB for convenience.

The Waterloo Tradition Continues

Waterloo Modula-2 was developed by the Computer Systems
Group at the University of Waterloo. Their compilers are developed for
computer science courses at the university and are used at many academic
institutions worldwide. Waterloo Modula-2 has been designed to
contain all the function necessary to be both a development and a
production compiler.

Tools for Rapid Program Development

Waterloo "load-and-go"

One of the most notable features of Waterloo compilers is the
"load-and-go" capability. Waterloo Modula-2 is no exception.
In this mode, programs may be compiled, linked, and executed in a single
step. Compiling, for the beginner, is greatly simplified.

To further simplify use and improve performance, the compiler may be
invoked directly from within XEDIT. The file to be compiled is obtained
directly from XEDIT's memory, thus eliminating overhead due to disk I/O.

Error Detection

When a run-time error is detected, developers can instruct the
compiler to indicate the location of the error in terms of the program
source, rather than a machine address. Beginners find this particularly
helpful.

Modula-2 Language Definition

Because of its background in Pascal, Modula-2 contains many popular
programming language features, including structured programming
statements, abstract data types, and portability. With the added
feature of modularity, Modula-2 becomes an excellent language for both
teaching and systems development. It embodies many of the current
thoughts in the field of software engineering. The task of writing a
correct program is made easier with Modula-2 because many potential
errors are detected when the program is compiled, rather than when the
program is executed. Waterloo Modula-2 is a full implementation
of the language as defined by Wirth in the book Programming in
Modula-2, Third Corrected Edition (Springer Verlag, 1985).

Modules - Modula-2's Building Blocks

The key idea behind modules is the recognition that programs,
especially large ones, are typically made up of many small isolated
components, or modules. Each module may refer to other modules, but
need not be aware of the details of how the other modules work. The
definition of a module is completely independent of the implementation
of a module. While other programming languages may support separate
components, Modula-2 allows modules to control all aspects of their
interfaces.