A Tree-Based Alternative to Java Byte-Codes

@article{Kistler2004ATA,
  title={A Tree-Based Alternative to Java Byte-Codes},
  author={Thomas Kistler and M. Franz},
  journal={International Journal of Parallel Programming},
  year={2004},
  volume={27},
  pages={21-33}
}
Despite the apparent success of the Java Virtual Machine, its lackluster performance makes it ill-suited for many speed-critical applications. Although the latest just-in-time compilers and dedicated Java processors try to remedy this situation, optimized code compiled directly from a C program source is still considerably faster than software transported via Java byte-codes. This is true even if the Java byte-codes are subsequently further translated into native code. In this paper, we claim… Expand
Using the SafeTSA Representation to Boost the Performance of an Existing Java Virtual Machine
TLDR
Preliminary performance results are very encouraging and show simultaneous improvements in both compilation time and code quality relative to the Jalapeno optimizing compiler, which supports the hypothesis that SSA-based intermediate representations, such as safeTSA, offer unique advantages in the context of just-in-time compilation. Expand
Making mobile code both safe and efficient
  • M. Franz, W. Amme, +9 authors S. Zhenochin
  • Computer Science
  • Foundations of Intrusion Tolerant Systems, 2003 [Organically Assured and Survivable Information Systems]
  • 2003
TLDR
This work identifies a class of mobile-code representations in which malicious programs can simply not be encoded to begin with, and presents two encodings, one based on highly effective compression of abstract syntax trees, and another based on a referencesafe and type-safe variant of Static Single Assignment form. Expand
A safe and efficient machine-independent code transportation format based on static single assignment form and applied to just-in-time compilation
TLDR
The reported experimental results suggest that SSA-based program representations can be stored and transmitted using a space efficient encoding, can speedup JIT compilation reducing total execution time, and can be executed by reasonably efficient interpreters. Expand
Virtual machine showdown: stack versus registers
TLDR
This work extends existing work on comparing virtual stack and virtual register architectures in two ways, and presents an implementation of a register machine in a fully standard-compliant implementation of the Java VM. Expand
sEc: A Portable Interpreter Optimizing Technique for Embedded Java Virtual Machine
TLDR
The sEc technique adapts an embedded Java virtual machine to the demands of a Java application by automatically generating an enhanced virtual machine for every application, enabling the application to achieve greater performance. Expand
Improving the Java Virtual Machine Using Type-Separated Bytecode
Java Bytecode is currently the most used mobile code representation, although it contains some well-known major flaws. In the paper we introduce the principle operation of type-separated bytecode.Expand
An Inherently Type-Safe SSA-based Code Format
TLDR
SafeTSA’s special features facilitate producer-side, ahead-of-time optimization and an inherently-safe, space-efficient encoding. Expand
An Object Model for Interoperable Systems
TLDR
This paper describes a runtime platform based on distributed and cooperating virtual machines named Virtuosi that includes a class loader, a code interpreter, a single-threaded execution control and a distributed object store implemented and tested through example applications. Expand
Type-Separation as a Method for Efficient Bytecode Verification
Java Bytecode is applied on a large variety of different architectures. Still, one problem arising is verification of class files. This is especially true for constrained devices like cell phones andExpand
Practical extraction techniques for Java
TLDR
This paper explores extraction techniques such as the removal of unreachable methods and redundant fields, inlining of method calls, and transformation of the class hierarchy for reducing application size, and presents a uniform approach for supplying this input that relies on MEL, a modular specification language. Expand
...
1
2
3
4
...

References

SHOWING 1-10 OF 33 REFERENCES
Systems for Late Code Modification
TLDR
This paper describes prototypes of two hybrid systems, closely related to Mahler and Pixie, that let us experiment with both optimization and instrumentation on a standard workstation, preferably without requiring us to modify the normal compilers and linker. Expand
The Java Virtual Machine Specification
TLDR
This second edition specifies the newest version of the Java virtual machine and provides a fascinating view into the inner workings of theJava 2 platform. Expand
Dynamic Runtime Optimization
TLDR
This paper discusses a different approach in which optimization is no longer performed at compile-time, but is delayed until runtime, and reoptimized module versions are generated on-the-fly while the system is running, replacing earlier less optimized versions. Expand
Adaptive optimization for self: reconciling high performance with exploratory programming
TLDR
Four new techniques reconcile exploratory programming, ubiquitous abstraction, and high performance by allowing the compiler to inline message sends based on information extracted from the runtime system. Expand
Adaptive systems for the dynamic run-time optimization of programs.
TLDR
This thesis investigates adaptive compiler systems that perform code optimizations based on the dynamic behavior of the program based on a fixed code generation strategy, i.e., one in which a predetermined set of code optimizations are applied at compile-time to an entire program. Expand
DIGITAL FX!32: Combining Emulation and Binary Translation
TLDR
DIGITAL FX!32 software combines emulation and binary translation to provide fast, transparent execution of Intel x86 applications on Alpha systems, making hundreds of new applications available on Alpha-based platforms running the Windows NT operating system. Expand
Continuous profiling: where have all the cycles gone?
TLDR
The Digital Continuous Profiling Infrastructure is a sampling-based profiling system designed to run continuously on production systems, supporting multiprocessors, works on unmodified executables, and collects profiles for entire systems, including user programs, shared libraries, and the operating system kernel. Expand
Optimally profiling and tracing programs
TLDR
Algorithms for inserting monitoring code to profile and trace programs that greatly reduce the cost of measuring programs and reduce the file size and overhead of an already highly optimized tracing system are presented. Expand
Optimally profiling and tracing programs
TLDR
Algorithms for inserting monitoring code to profile and trace programs and show that edge profiling with edge counters works well in practice because it is simple and efficient and finds optimal counter placements in most cases. Expand
Global register allocation at link time
TLDR
Construction of the call graph allows us to use the same register for locals of procedures that are not simultaneously active, giving us most of the advantages of a full-scale coloring without the expense. Expand
...
1
2
3
4
...