Skip to content
Jonathan edited this page Feb 19, 2018 · 1 revision

Kores is a code representation and generation framework. Kores translates structure into Bytecode, Java Source and also translates Bytecode into Kores structure.

Structure

Kores structure is the representation of the JVM code as Java objects.

Generators

Kores generators are those that translates Kores structure into another representation, like binary, source, or another structure.

Bytecode generator

The module that translates Kores structure into JVM Bytecode. This module do all magic that Javac do with Java sources, it generates bridge methods, additional classes for Enum Switch, etc...

Source generator

The module that translates Kores structure into JVM Bytecode. Due to limitations of Java language that does not exists at Bytecode level, this generator have some limitations:

  • InvokeDynamic is not supported

Also the generator can workaround some Java limitations and generate the code a bit different, but that works the same way.

Bytecode reader

The module that translates JVM Bytecode into Kores structure, this project is in a very alpha stage, control flow cannot be fully translated (some if statements are correctly translated). This project will be very useful for instrumentation of classes without losing optimizations that generators may do.

Performance

Performance? See Kores performance

Clone this wiki locally