Links Internal Publications Current Work Documentation Home Legal Notice

Rainbow - OS

A distributed high-speed operating system for standard PCs


Home

Current Work

Documentation

Publications

Internal

Links

Legal Notice



Memory Management



Consistency



Compiler


Rainbow-OS documentation:


Compiler:

Our Small Java Compiler (SJC) is a lean but sophisticated compiler translating (a subset of the) Java language into native code for different architectures targeting 8, 16, 32 and 64 bit processors. The special class "MAGIC" grants low-level hardware access beyond the traditional Java sandbox.

SJC thus reconciles driver & OS-level programming with the benefits of a type-safe language avoiding potential programming errors due to memory arithmetic or misused pointers. The runtime structures created by the compiler discriminate between primitive data-types (called scalars) and reference variables. Objects are therefore dualheaded and simplify the inspection of references in tasks like relocation or garbage collection. There are two categories fo scalar objects depending on the intended memory consistency model: "direct scalars" are directly allocated in the object descriptor and "indirect scalars" are allocated in a separate allocation pool.

The Compiler was also implemented in Java with appropriate packaging to allow the addition of a new language frontend, the provision of additional codegenerations (backend) for different target machines. The creation of disk-bootable images, hexfiles for EEPROM flashing or executable files for Linux and Microsoft Windows works smoothly due to the clean packaging of the compiler. The complete SJC tool chain from source code to output file is modularized, well arranged and easily teachable.

The Small Java Compiler was designed, implemented and is continually improved by Prof. Dr. Stefan Frenz.   more