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