Terra Datentechnik Home Home · Modula-2

Software Product Description (SPD) for:


Modula-2 Systems for OpenVMS/Alpha and OpenVMS/VAX

(January 23, 1998)

The Reliable Tool for Software Professionals

· Complete Modula-2 Development Systems for OpenVMS/Alpha and OpenVMS/VAX: Compiler, Tools and Library
· Simple Migration of Modula-2 Programs from OpenVMS/VAX to OpenVMS/Alpha
· Full Flexibility within the OpenVMS Environment
· Full Compatibility with the OpenVMS Symbolic Debugger
· DECwindows Motif Interface
· Interface to the OpenVMS Operating System and to other Languages
· LSE Support
· M2MAKE Utility to Compile and Link your Programs Automatically

Why buy Modula-2 VMS?

Modula-2 is a general purpose programming language with systems programming capabilities designed by Professor Niklaus Wirth, the author of Pascal. It is a simple but powerful language that is ideal for professional software development. Modula-2 overcomes the shortcomings of Pascal in real world applications while maintaining its long acknowledged strengths.

The M2VMS/Alpha and M2VMS/VAX resident compilers are full implementations of the Modula-2 language in the OpenVMS environment. The first commercial version of Modula-2 for VMS was provided by Logitech on VAX, based on the version designed by Professor Joachim Schmidt of the Frankfurt University. After five years of maintenance and enhancement, Logitech transferred the product to TERRA Datentechnik which since successfully pursues its maintenance and development. Meanwhile, TERRA has adapted the M2VMS system to the DEC Alpha processor and the OpenVMS/Alpha environment. The M2VMS/Alpha and M2VMS/VAX compilers provide Alpha and VAX software developers with the elegant simplicity of Modula-2 and the reliability of the Logitech and TERRA family of Modula-2 based program development tools.

The Modula-2 Language
· overcomes Pascal's shortcomings
· offers true modular programming
· features strong type checking, even between separately compiled modules
· gives controlled access to underlying hardware and operating software
· allows multi-tasking
· has type transfer functions to relax compatibility rules

The Compiler

The M2VMS compilers are full implementations of Modula-2 after N. Wirth's ,Programming in Modula-2" (3rd edition).

M2VMS is totally compatible with other programming languages in the OpenVMS environments on Alpha and VAX. The M2VMS compilers generate Alpha or VAX native object code in the OpenVMS standard format, meaning that separately compiled Modula-2 modules can be linked with the OpenVMS linker.

The compilers offer to the programmer total flexibility in the OpenVMS environment:

· The Alpha and VAX processors support various floating point data types: The Modula-2 predefined type REAL is implemented with the Alpha or VAX F-FLOATING data type. The other floating point types, G-FLOATING, S-FLOATING, and T-Floating on the Alpha, and D-FLOATING, G-FLOATING, and H-FLOATING on the VAX are provided by the Modula- 2 standard module SYSTEM. Most operations defined on variables of type REAL are also applicable to variables of the other floating types.

· Floating point constants are internally in the compilers implemented as G-FLOATING with about a precision of 15 decimal digits. Since M2VMS version 4.3-0 floating point constants are compatible with any floating point type.

· For systems programming purposes, the module SYSTEM also exports the types BYTE (8 bit), SHORTWORD (16 bit), QUADWORD (64 bit), and OCTAWORD (128 bit).

· Through so-called foreign definition modules the compilers provides access to routines written in any language. Foreign definition modules do therefore not require the existence of a corresponding Modula-2 implementation module. In foreign definition modules the compiler also accepts the VAX-specific parameter passing mechanisms specified by %REF, %IMMED, %STDESCR, including optional parameters and passing of default values.

· The compilers support SET types with up to 256 elements.

· On VAX, support for Modula-2 co-routines (TRANSFER, IOTRANSFER) is implemented based on the OpenVMS Asynchronous System Traps (AST).

· The M2VMS compilers produce a diagnostics file which may be used with the LSE (Language Sensitive Editor). The package includes files which customize LSE to the Modula-2 language (use of tokens and menu place-holders).

The compilers can be invoked by the DCL MODULA command which accepts among others the following qualifiers:
· /ALIGNMENT to control the alignment of variable addresses and record field offsets.
· /CHECK to generate arithmetic overflow, range, array, index, and case expression checks.
· /DEBUG to generate information for the VAX Symbolic Debugger.
· /LIST to produce a compilation listing including performance data.
· /MACHINE-CODE to include the generated machine code in symbolic form in the listing.
· /CROSS-REFERENCE to include cross reference information in the listing.

The Library

A powerful set of library modules is provided with the M2VMS systems:
· The standard M2VMS Modula-2 library (Strings, FileSystem, etc.).
· A set of foreign definition modules to access the VMS operating system and Run-Time library.
· A set of foreign definition modules to access the DECwindows Motif environment.
· The predefined pseudo-module VMSCONSTANTS gives access to the whole set of constants known by the VMS linker.
· The predefined pseudo-module SYSTEM gives access to the underlying system.

The M2MAKE Utility

The utility program MAKE is invaluable for the management of Modula-2 programs containing large numbers of modules. It is used during source code maintenance or development. Its main function is to build a batch file to compile the minimum number of modules necessary in the correct order, and to link them together, avoiding unnecessary recompilation.

A powerful advantage of the M2VMS MAKE utility over similar systems of other languages, is that it is not necessary to maintain a description file for the module dependencies and the actions to be taken. Modula-2 source language programs contain all necessary dependency information and are read directly by the MAKE utility. Therefore changes in the module structure introduced by source program editing are recognized as soon as MAKE is used to rebuild a system.

One useful by-product of the MAKE utility are cross-reference listings of inter-module relationships.

Debugging Modula-2 Programs under OpenVMS

M2VMS is fully compatible with the OpenVMS Symbolic Debugger. In particular, the debugger screen mode is fully supported. All debugger commands are available: examination of variables, setting of breakpoints on source lines and procedures, placing of watch points on variables and stepping through the program line by line. In addition, the compiler generates source file information, so that all debugger commands related to the source file can be executed.

Packaging, Licences, Support, Updates

Product packaging
M2VMS/Alpha is delivered on CD-ROM. M2VMS/VAX is available on TK-50 cassette tape. Optionally, the M2VMS systems can be shipped on a different distribution media at a surcharge. Alternative distribution media include CD-ROM, 4-mm DAT streamer cassette, TK-50 cassette tape, and standard 9-track (1600 bpi) tape.

The distribution media kit includes:
· The executable files of the compiler, M2MAKE and other utilities.
· The source, object and symbol files of the standard M2VMS library modules and some utilities.
· The source and symbol files of the foreign definition library modules.
· For M2VMS/Alpha: Installation files based on the OpenVMS POLYCENTER Software Installation Utility. For M2VMS/VAX: A command language definition file, which supports the installation of the MODULA command by means of the standard OpenVMS DCL command procedure SYS$UPDATE:VMSINSTAL.COM.
· An M2VMS help file which is included automatically into the system help library upon installation time.
· A set of files allowing to customize the OpenVMS LSE to Modula-2.
· The printed M2VMS user's manual.


The standard licence allows the use of the compiler on one CPU by any number of programmers. This means editing, compiling, linking, and testing on one and the same machine. Licences for using the product on additional CPUs at the same site are available at reduced prices. Educational and non-profit research institutions are allowed special discounts.

Programs developed with M2VMS are not subject to any object licences from TERRA and may be distributed with no fee, even if they include (parts of) the TERRA library or the run-time support in object form.

Support / Maintenance / Updates

Maintenance contracts on a contiguous annual basis are available. They include automatic shipment of updates after release. The first year of maintenance is included in the original package.

The technical assistance for software problem reports is included in the maintenance contract. Assistance is provided by email, fax or phone.

The philosophy of TERRA Datentechnik is based on the satisfaction of the customer, so as to make its best to provide an efficient and professional support.


Von Mensch zu Mensch
Home · Modula-2

 Copyright © TERRA Datentechnik 1996-2006
Alle Rechte vorbehalten.TERRA Datentechnik übernimmt keine Haftung für die Vollständigkeit, Richtigkeit und Aktualität der Angaben!
Rechtliche Hinweise  ·  Firmenprofil
Contact us   Last Updated: 12-November-2002 Webmaster