vollmer@gmdka.UUCP (Juergen Vollmer) (02/22/90)
M O C K A
The Modula-2 Compiler system
MOCKA (MOdula Compiler KArlsruhe) is of the Modula-2 system developed
by the GMD research laboratory Karlsruhe / FRG.
It is a very fast Modula-2 compiler producing code for several target
processors. The interactive user interface provides an automatic 'make'
facility. The compilation speed and the user interface results
in a very short turn around time (edit-compile-link).
The Language
============
MOCKA implements the complete language Modula-2 as defined in [N. Wirth,
Programming in Modula-2, 3. Edition].
The separate compilation and modularization feature of Modula-2 assists
software development especially within teams. Type consistency is checked
by the MOCKA system during compilation.
The Compiler
============
The compiler, written itself in Modula-2, is a multi pass compiler and
hence needs no FORWARD declarations. Some of the back ends are generated
by tools, and are nearly as efficient as the hand written components.
Current Supported Systems
=========================
MOCKA generates fast and compact code for several target processors and
operating systems.
system | operating system | processor
-------------+---------------------+--------------------
DEC Station | ULTRIX | R3000, R2000
SUN 3 | SUN OS | MC 68020 with 68881
PCS Cadmus | UNIX | MC 68020 with 68881
VAX | UNIX (BSD) / ULTRIX | VAX
VAX | VMS | VAX
Transputer | Without own O.S. but| T800, T414
| with access of UNIX |
| from a host computer|
A machine independent back end generating C-source is also available.
For Transputer networks an extended language (Modula-P) based on CSP
has been developed by the GMD.
Third parties have developed back ends for NS32000, Pyramid, and
Intel 80386 processors.
Compilation Speed
=================
MOCKA compiles up to 33000 lines of source per minute (on a DEC 3100
station).
Optimizer
=========
An optimizer is available which can be used to speed up the execution
of the compiled program. The resulting code is up to 20% faster than the
non-optimized.
Debugger
========
For some target systems, the 'dbx' debugger is supported. 'adb' may
be used on all (non-VMS) systems.
Libraries
=========
The Modula-2 source and binary files may be distributed into libraries.
These libraries are mapped to the file system of the underlying operating
system. A standard library is provided containing MathLib, (un)formatted
and raw byte I/O utilities, storage management utilities, and access to the
operating system.
External Procedure Call
=======================
A special FOREIGN MODULE concept provides access to procedures written
in another programming language. These procedures are called using
standard Modula-2 conventions.
User Interface
==============
The mocka system may be used in an interactive or batch mode. In the
interactive mode the source file may be processed with an editor of the
users choice. The interface provides interactive error handling and an
automatic 'make' facility. Access to the operating system shell is available.
Error Handling
==============
All error messages produced during compilation of a source file are shown
with the source in the editor. The textual error messages are displayed at
the position they occurred. The errors may be corrected, and the
compilation may be reinitiated.
Automatic MAKE Facility
=======================
The system contains an automatic 'make' facility for determining the
correct compilation order of several Modula-2 modules. The dependencies
are computed from the sources, meaning that no manually written 'makefile'
is necessary. One need simply to specify a "goal", and the necessary
(re)compilations of DEFINITION, IMPLEMENTATION and program modules will
be initiated.
Current Version
===============
The current version number is 9001, released in January 1990.
Contact
=======
Gesellschaft fuer Mathematik und Datenverarbeitung (GMD)
- Research Laboratory at the University of Karlsruhe -
Vincenz-Priessnitz-Strasse 1
D-7500 Karlsruhe
Phone: *-49-721 / 66 22 0
Fax: *-49-721 / 66 22 96 8
Helmut Emmelmann, Juergen Vollmer
Email: emmel@gmdka.uucp / vollmer@gmdka.uucp
emmel@karlsruhe.gmd.dbp.de / vollmer@karlsruhe.gmd.dbp.de