JACOB

(Just A Compiler for OBeron-2)

Version 0.2
5/31/98

Ralf Bauer (nathan@cs.tu-berlin.de)
Max Spring (sepp@cs.tu-berlin.de)


Mailing list jacob@employees.org:
The package:
Notes on the source code:

Introduction

This is the second public release of our Oberon-2 compiler Jacob. Jacob (as the name says ;-) is a stand-alone Oberon-2 compiler under Linux. It compiles a single Oberon-2 module together with its imported modules and links all the stuff together to an executable program whose name is the module name.

As the practical result of our diploma thesis, Jacob owes its existance from the use of compiler generating tools: The front-end was generated with the Compiler Construction Tool Box "Cocktail" (Version 9209) of Dr. J. Grosch. In particular the tools Rex, Lalr, Puma, Ast and Ag were used. For the back-end we used Beg (Version 1.75) of H. Emmelmann to produce GNU assembler code.

There is still a lot of debug code in Jacob so the execution speed is not optimal. The various command-line options allows tracing of the compile phase and looking at intermediate results which are often hidden within a compiler.

Features

Implementation extensions/restrictions

Disclaimer

This product includes software developed by the GMD Karsruhe and its contributors.

This software package is FREE, so you can do with it whatever is in your mind, BUT: whatever you do with this package, YOU are responsible and you do it ON YOUR OWN RISK. This simply means we disclaim warranties of any kind.

Because of the early version of Jacob it is definitely possible that there are bugs in the implementation. If you find one (or several) don't despair. Please let us know about it (see section Bug Report below).

Requirements

Jacob only requires the GNU assembler as. We use version 2.2 (i486-linux).

Installation

Un-tar the package wherever you want (/usr is recommended). This will result in the subdirectory tree:

jacob
jacob/lib
jacob/sys
jacob/test
If you decide to use a home directory other than /usr you have to edit the script files oc and sys/oc.linker and to adjust the directory specifications in these scripts.

Copy, move or link the script oc into a directory which is included by your PATH environment variable.

To test your installation change the current work directory to jacob/test, compile the Test module by "oc Test". This will also generate the object files of the library modules, if you have write permissions to jacob/lib.

Invocation

By typing jacob -h you get the usual description of the usage with a short explanation of the available command-line options.

Assembler and object files are written into the directory which contains the source file.

Library Modules

We have (up to now) implemented a (very) quick'n'dirty set of library modules. These are:

Bug Report

If you find an error in the implementation or you have comments regarding Jacob, PLEASE send it to us. Help us to improve Jacob by sending e-mail to the following address:

sepp@cs.tu-berlin.de

It is useful to send a small example program which shows the bug.

Future Work

As future work we plan:

Changes from Version 0.1.1 to 0.2

Changes from Version 0.1 to 0.1.1

Changes from Version 0 to 0.1


Last modified: Sat Jan 2 19:08:15 PST 1999