THIS PAGE IS DEPRECATED
The Modula-2 Compiler System MOCKA
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).
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:
- Universities: DM 500 (this is approximately $322)
- Commercial: DM 4000 (this is approximately $2580)
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.
| System | Operating System | Processor | |
| SUN 4 | SUN OS 4 | SPARC | |
| Solaris2.x/ SUN OS 5 | |
| DEC-Station | ULTRIX | R3000, R2000 (MIPS) | |
| DEC-Alpha | OSF | 21064, 21164 | # |
| Silicon-Graphics | IRIX | R3000-R10000 (MIPS) | |
| Sony NEWS | News | MC 68020 with 68881 | * |
| SUN 3 | SUN OS | * |
| PCS Cadmus | UNIX | * |
| NeXT | Mach/ UNIX | * |
| HP 9000/300 | HPUX | * |
| HP 9000/700 | C back end | |
| RS6000 | AIX | C back end | |
| VAX | UNIX(BSD)/ ULTRIX | VAX | * |
| Intel-PC | Linux | >=80386 | + |
| 386BSD | + |
| PowerPC | PARIX (Parsytec) | PPC 602-604 | |
| C-back end, translates M-2 to C | UNIX | different | |
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 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.
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>
.
-
- Boris Boesler
Universität Karlsruhe
Fakultät für Informatik
Institut für Programmstrukturen und Datenorganisation
Adenauerring 20a
D-76131 Karlsruhe,
Germany
-
- Office Phone: +49 (721) 608-8348
- Office Fax: +49 (721) 30047
Back to the top of this page.
Page maintained by
Boris Boesler
<boesler@ipd.info.uni-karlsruhe.de>