Private Area

 
  Home   Official Site   Impressum  
 
DiskUtil

SJC Compiler
PicOS
Natives

ATmega Demo

   

Compiler


This site contains outdated information! Please visit the new page.

I wrote a small compiler that translates some kind of java-subset into native code, either to run in an ia32 compliant protected mode or an amd64 compliant long mode. Furthermore you can produce code for a virtual machine with an unlimited amount of registers allowing almost write-once semantics for the used registers. Patrick Schmidt worked on an emulator for this machine, and also he helped to set up the backend for an Atmel ATmega mikrocontroller, thank you very much. :-)

The compiler requires Sun-Java to be compiled, after boot-strapping the compiler is able to compile itself. There are only few special things (namely the pseudo-classes MAGIC and MARKER) that enable system programming in a typesafe language. The compiler is used to compile PicOS and a few minor private projects.

The design is straight forward and extensible. You are welcome to write a new frontend (perhaps some Pascal style?) or a new backend (perhaps for an ARM processor?). For sure there are several bugs in this piece of software. If you need help doing something with my compiler or if you found a bug, please contact me via the official site.

There is a set of slides containing a short overview used at an invited speech on March 17th 2008.

The compiler is released under the GNU Public License, you can get the source code here. Please note that the copyright still belongs to me (Stefan Frenz) and, for the emulator and the basic ATmega backend, also to Patrick Schmidt, who is mentioned in the header of the regarding class files.

There is a version 169 since 2009/02/21 with several bugfixes and extensions. This is also the first officially released version under GPL. You can also download native executables for Windows and Linux (both 32 bit), these versions do not require any other java compiler or runtime environment to be installed (example program is attached, too).

For version 169 there is a short manual in version 29 since 2009/02/21 describing the compiler's specials and some small examples. The manual is available only in German at the moment.

There is a version 170 since 2009/04/27 with several bugfixes and extensions. You can also download native executables for Windows and Linux (both 32 bit), these versions do not require any other java compiler or runtime environment to be installed (example program is attached, too).

For version 170 there is a short manual in version 30 since 2009/04/27 describing the compiler's specials and some small examples. The manual is available only in German at the moment.

There is a version 171 since 2009/05/16 with basic flow control and some bugfixes. You can also download native executables for Windows and Linux (both 32 bit), these versions do not require any other java compiler or runtime environment to be installed (example program is attached, too).

For version 171 there is a short manual in version 31 since 2009/05/16 describing the compiler's specials and some small examples. The manual is available only in German at the moment.

There is a version 172 since 2009/08/09 with more flow analysis and some bugfixes. You can also download native executables for Windows and Linux (both 32 bit), these versions do not require any other java compiler or runtime environment to be installed (example program is attached, too).

For version 172 there is a short manual in version 32 since 2009/08/09 describing the compiler's specials and some small examples. The manual is available only in German at the moment.

There is a version 173 since 2009/10/17 with support for automatic relation analysis and some bugfixes. You can also download native executables for Windows and Linux (both 32 bit), these versions do not require any other java compiler or runtime environment to be installed (example program is attached, too).

For version 173 there is a short manual in version 33 since 2009/10/17 describing the compiler's specials and some small examples. The manual is available only in German at the moment.

There is a new version 174 since 2009/11/09 with support for line number debugging hints, better flow analysis, some bugfixes and a new tool called GetMthd for easy offline-debugging. You can also download native executables for Windows and Linux (both 32 bit), these versions do not require any other java compiler or runtime environment to be installed (example program is attached, too).

For version 174 there is a short manual in version 34 since 2009/11/09 describing the compiler's specials and some small examples. The manual is available only in German at the moment.

Note: if you are running linux and want to build something, you may have to adapt the directory separater from windows-style back-slash to linux-style slash not only in your make-script but also in the bootconf.txt file.

If you like to have a smaller example than PicOS, feel free to download my tests with windows-starter.

If you like to edit the source code with the same Eclipse code style, you can download it here.