Modula-2 Webring
[ List all | Random | << Prev | Next >> | Join | ]


THIS PAGE IS DEPRECATED

The Modula-2 Compiler System MOCKA

You will find here


Problem with latest libraries in RedHat 6.0 (and similar) is fixed.

Get the version 9905 from our ftp server or - if you dare ;-) - exchange file M2RTS-elf.o in folder sys to the updated version (or compile it yourself from assembler source M2RTS-elf.s).

Description of MOCKA

MOCKA (MOdula Compiler KArlsruhe) is the Modula-2 system developed by the GMD research laboratory Karlsruhe / Germany (Gesellschaft für Mathematik und Datenverarbeitung, German national computer science institute). 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).

To compare MOCKA with other Modula-2 Compilers have a look to: C.Pronk; Stress Testing of Compilers for Modula-2; Software-Practice and Experience, Vol.22(10) 885-897, (October 1992) .

The Language

MOCKA implements the complete language Modula-2 as defined in Niklaus Wirth; Programming in Modula-2; Springer Verlag, 1993, 3. Corrected 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. Long / short integer, cardinal, and real types, and a FOREIGN MODULE concept are added to the language.

The Compiler

The compiler, written itself in Modula-2, is a multi pass compiler and hence needs no FORWARD declarations. The newer back ends are generated by tools, and are more efficient then the hand written components.

Compilation Speed

MOCKA compiles 100000 lines of source per minute (on a standard Pentium ).

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 most target systems, the 'gdb' debugger is supported.

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.

Prices

Except for the Linux version which is free MOCKA costs:

Maintainance

MOCKA is now maintained by the Institut für Programmstrukturen und Datenorganisation, Universität Karlsruhe.

Manual

There is a MOCKA user manual and a manual page.

Acknowledgements

MOCKA was designed, implemented and maintained by Markus Armbruster, Boris Boesler, Helmut Emmelmann, Franz Engelmann, Thilo Gaul, Holger Hopp, Christian v. Roques, Friedrich-Wilhelm Schröer, Dirk Schwarz-Hertzner, Jürgen Vollmer former Forschungsstelle an der Universität Karlsruhe, German National Research Center for Computer Science.

Back to the top of this page.


MOCKA is available for the following platforms

SystemOperating SystemProcessor 
SUN 4SUN OS 4SPARC 
Solaris2.x/ SUN OS 5 
DEC-StationULTRIXR3000, R2000 (MIPS) 
DEC-AlphaOSF21064, 21164 #
Silicon-GraphicsIRIXR3000-R10000 (MIPS) 
Sony NEWSNews MC 68020 with 68881*
SUN 3SUN OS*
PCS CadmusUNIX *
NeXTMach/ UNIX*
HP 9000/300HPUX*
HP 9000/700C back end 
RS6000AIXC back end 
VAX UNIX(BSD)/ ULTRIXVAX*
Intel-PCLinux>=80386+
386BSD +
PowerPCPARIX (Parsytec)PPC 602-604 
C-back end, translates M-2 to CUNIXdifferent 

Please note, that we [no longer] have access to the maschines marked with a * , it is therefor not possible for us to update the version of MOCKA for these architectures. If you are interested in one of these compilers and allow us to make use of your maschine we will try to make a updated version of MOCKA for this architecture.

The versions marked with a + are free, i.e. no orderform must be send to us, no lincence fee to be paid. If you use them, please send an email to modula@ipd.info.uni-karlsruhe.de.

A "#" indicates a version in development, send us an email if you are interested in further informations on progress.

Back to the top of this page.


The newest Linux and 386BSD Versions of MOCKA

The current version of Linux / 386BSD MOCKA is 9903. They may be optained via ftp from our ftp server: i44ftp.info.uni-karlsruhe.de/pub/mocka/{linux|386bsd}/*. There exist different precompiled versions for the new glibc and also for the older libc5:

For Linux

For 386BSD/FreeBSD

Tools to generate the parts of the sources

If you have fun in using MOCKA on Linux or 386BSD please send us an email <modula@ipd.info.uni-karlsruhe.de> . If you want to donate some money for the maintanance of these versions, please feel free to do so, and contact the above email address.

Back to the top of this page.


How to order MOCKA

If you are interested in one of the MOCKA systems (except LINUX/BSD386), please sign the following licence agreement and orderform and return (fax) it to us.

You will then be informed how to get access to the distribution via ftp. Please don't send us any payment before receiving the invoice.

For more information please send and email to <modula@ipd.info.uni-karlsruhe.de> .

postal address
Boris Boesler
Universität Karlsruhe
Fakultät für Informatik
Institut für Programmstrukturen und Datenorganisation
Adenauerring 20a
D-76131 Karlsruhe, Germany
phone
Office Phone: +49 (721) 608-8348
fax
Office Fax: +49 (721) 30047
Back to the top of this page.
Page maintained by Boris Boesler <boesler@ipd.info.uni-karlsruhe.de>