deep

a Cross Development Platform for Java

User Tools

Site Tools


crosscompiler:start

Java Crosscompiler

IMPORTANT Limitations

Currently our compiler has the following limitations:
  • Arrays are supported up to three dimensions.
  • Array size in any dimension must not exceed 216 bytes.
  • synchronized not yet implemented.
  • Bytecode instruction invokedynamic not yet implemented. Used for lambda functions from Java 8 onwards.

A Java compiler converts a Java file into Bytecode which is stored in a class file. A class file represents the original program in a compact binary form and could be interpreted by a JVM. Our deep compiler translates this Bytecode directly into target machine code. To 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

crosscompiler/start.txt · Last modified: 2020/12/10 15:18 by ursgraf