[comp.sys.transputer] Modula-2 for MIPS, MC 68020, VAX, Transputer

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