This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
dev:start [2016/02/25 13:33] – external edit 127.0.0.1 | dev:start [2022/12/20 11:30] (current) – ursgraf | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <WRAP group> | ||
+ | <WRAP half column 58%> | ||
====== Project deep ====== | ====== Project deep ====== | ||
- | < | + | Under the name of **deep** a cross development platform for Java was created. The project was initiated and is maintained by the Institut for Computer Science at the Eastern Switzerland University of Applied Sciences, OST, Buchs, Switzerland. |
+ | |||
+ | ===== Goals ===== | ||
+ | * Development platform for Java including compiler, linker and runtime system. | ||
+ | * Focus on efficiency, for the core of the compiler very lightweight data structures are used, the powerful but slow Java library is solely used for odd tasks. | ||
+ | * Supports newest Java version. | ||
+ | * Integration into eclipse, but can be run stand-alone as well. | ||
+ | * "Java on the metal": | ||
+ | * No object files, a launch translates all necessary classes into target image | ||
+ | * Runtime library is simplified standard library. | ||
+ | * A fast and lightweight path to the underlying hardware with registers and absolute memory locations is provided. | ||
+ | </ | ||
+ | |||
+ | <WRAP half column 38%> | ||
+ | < | ||
* [[.: | * [[.: | ||
</ | </ | ||
- | Under the name of **deep** a new cross development platform for Java was created. The project was initiated and is maintained by the Institut for Computer Science at the Fachhochschule für Technik, NTB, Buchs, Switzerland. | + | < |
- | < | + | |
* [[.: | * [[.: | ||
* [[.: | * [[.: | ||
Line 14: | Line 29: | ||
* [[.: | * [[.: | ||
* [[.: | * [[.: | ||
+ | * [[openocd: | ||
+ | * [[.: | ||
</ | </ | ||
+ | </ | ||
+ | </ | ||
- | ===== Goals ===== | ||
- | * Development platform for Java including compiler, linker and runtime system. | ||
- | * Focus on efficiency, for the core of the compiler very lightweight data structures are used, the powerful but slow Java library is solely used for odd tasks. | ||
- | * Supports newest Java version. | ||
- | * Integration into eclipse, but can be run stand-alone as well. | ||
- | * "Java on the metal": | ||
- | * No object files, a launch translates all necessary classes into target image | ||
- | * Runtime library is simplified standard library. | ||
- | * A fast and lightweight path to the underlying hardware with registers and absolute memory locations is provided. | ||
===== Overview ===== | ===== Overview ===== | ||
Line 30: | Line 40: | ||
===== Crosscompiler ===== | ===== Crosscompiler ===== | ||
- | Our **deep** compiler translates Bytecode into machine code for a certain processor. To optimize for speed and code size and to make use of register based architecture - such as PPC - we transform the Bytecode in a first step into [[.: | + | Our **deep** compiler translates Bytecode into machine code for a certain processor. To optimize for speed and code size and to make use of register based architecture - such as PPC or ARM - we transform the Bytecode in a first step into [[.: |
==== Frontend ==== | ==== Frontend ==== | ||
Line 37: | Line 47: | ||
==== Backend ==== | ==== Backend ==== | ||
For each supported architecture a specific backend is necessary. As a first step, registers are assigned for all SSA instruction results. After this machine instructions can be issued for the target. Finally the linker combines everything into a executable target image.\\ | For each supported architecture a specific backend is necessary. As a first step, registers are assigned for all SSA instruction results. After this machine instructions can be issued for the target. Finally the linker combines everything into a executable target image.\\ | ||
- | Currently, PowerPC code can be generated. As target processors we use mpc555 and mpc5200. | + | Currently, PowerPC |
===== Further Components ===== | ===== Further Components ===== | ||
Line 59: | Line 69: | ||
---- | ---- | ||
==== Internal Developer Documentation ==== | ==== Internal Developer Documentation ==== | ||
- | The internal documentation for maintainers can be found [[http:// | + | The internal documentation for maintainers can be found [[http:// |