deep

a Cross Development Platform for Java

User Tools

Site Tools


crosscompiler:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
crosscompiler:start [2015/03/13 15:06] – external edit 127.0.0.1crosscompiler:start [2020/12/10 15:18] (current) ursgraf
Line 1: Line 1:
-<WRAP blindtable 100%> +====== Java Crosscompiler ======
-<WRAP blindcell 60%> +
-====== deep ====== +
-    +
-deep is a Cross Development Platform for Java developed at the [[http://inf.ntb.ch | NTB]]. It consists of the following modules:+
  
-  * Crosscompiler (to translate Java bytecode into machine code, "Java on the metal") +<box right red 40% | IMPORTANT Limitations> 
-  * Eclipse plugin (for the integration into Eclipse) +Currently our compiler has the following limitations: 
-  * Runtime System (operating system, device drivers and system libraries for the target) +  * Arrays are supported up to three dimensions.  
- +  * Array size in any dimension must not exceed 2<sup>16</supbytes. 
-===== Overview ===== +  * ''synchronized'' not yet implemented.  
-deep has a modular design and can be integrated into different development frameworks. Currently deep can be run standalone or can be used in eclipse as a plugin. deep produces code for PowerPC processors. We support hardware plattforms with the mpc555 and mpc5200 processors.  +  * Bytecode instruction ''invokedynamic'' not yet implementedUsed for lambda functions from Java 8 onwards.
- +
-==== Translation of bytecode into machine code ==== +
-We use eclipse and the Java Sun compiler to translate the original source into an intermediate form, which is called bytecode and is stored in class files.  +
-Starting with one or several root classes we translate this classes together with any imported library classes into a single executable target file. The instruction in this target file are native machine instructions.\\ +
-From the bytecode we start by constructing the control flow graph (CFG). Subsequently a still machine independent intermidiate form is built: the SSA (single static assignment). The CFG and SSA allow for various optimizations and are the base for the register allocation algorith and finally the code generation. +
- +
-==== Components ==== +
-Various components add functionality to deep+
-  * class file browser +
-  * target configuration parser +
-  * debugger +
- +
-</WRAP> +
- +
-<WRAP blindcell 38%+
- +
-==== News ==== +
-<box right 100% | 2015.03.10: New Website> +
-Today we've launched our new [[http://deepjava.org | project website]]+
 </box> </box>
  
-<box right 100% | 2014.12.16: \\ Version 1.2.1 released> +A Java compiler converts a Java file into Bytecode which is stored in a class fileA class file represents the original program in a compact binary form and could be interpreted by a JVMOur deep compiler translates this Bytecode directly into target machine codeTo optimize for speed and code size and to make use of register based architecture such as the Power-PC or ARM microarchitecture - we transform the Bytecode in a first step into Static Single Assignment Form (SSA). This form is simple and platform independent and can be used for various optimizations. In a second step registers are allocated and code is generated   
-Version 1.2.1 is now available. Booting from Flash fixed now and RN131WiFfly-Driver adopted to new Firmware-Version (4.0of the RN131WiFly Modules. +
-</box>+
  
-<box right 100% | 2014.12.02: New version control> +  * [[Deep Projects]] \\ 
-We moved our git repositories from SourceForge to [[https://github.com/deepjava GitHub]] for making it easy to fork our code. +  [[Hardware|Accessing the Hardware]] \\ 
-</box> +  * [[Lowlevel|Low-level Routines]] \\ 
- +  * [[Donts| Do'and Don'ts]] \\
-<box right 100% 2014.07.21: \\ Version 1.2 released> +
-Version 1.2 of the deep compiler and the runtime library is available now. This release introduces support for Java exceptions as new feature. +
-</box>+
  
-</WRAP> 
  
-</WRAP> 
crosscompiler/start.1426255577.txt.gz · Last modified: 2016/02/25 13:33 (external edit)