Welcome to the Salsa home-page


Salsa is a Java environment that includes a compiler from Java bytecode to C and a Java interpreter. While Salsa is aimed at applications that are statically configured, such as the Javac compiler, it is also designed to allow code to be dynamically loaded in an already compiled application. This novel feature is introduced by integrating our bytecode interpreter in the runtime library. Data structures between the Java compiled code and the interpreter are compatible and data allocated by the interpreter do not conflict with data allocated by the compiled code. Salsa is written in C and provides an efficient and flexible solution for the execution of Java applications.

Salsa's compiler generates C code that can be compiled into an efficient native code. To do so, several transformations have been implemented. First, the stack is statically evaluated away. Second, virtual method calls are transformed, when possible, into static (i.e., procedure) calls using a Class Hierarchy Analysis (CHA). For these virtual calls, type checks are also eliminated. Finally, Salsa implements several other more conventional optimizations for object-oriented languages such as method inlining.

Salsa refers to the Dance name, not to a beverage or an island . Salsa has been designed with the goal of being also a front-end for our C-specializer. We soon shall dance the Salsa in Tempo.

More about Salsa ?

Current Status

Salsa is covered by a copyright statement that allows non-commercial use without fee. The Boehm-Demers-Weiser conservative garbage collector is covered by its own copyright.

Frequently Asked Questions

You have a problem using Salsa? You have found a bug? If the solution to your problem is not in the FAQ file, please send us an e-mail. We will do our best to awnser quickly.

Distribution

Salsa is distributed in binary form:

SunOs 4.1.4 version gzipped tar file (GC and non GC versions)
Linux 2.0 version gzipped tar file (non GC version only)
Solaris 5.5 version gzipped tar file (available by the end of the week)

You will also need Sun java classes (classes.zip) from version 1.0.2 of the Java Developers Kit. Get the Solaris version from java.sun.com or the Linux version from www.blackdown.org.

Authors

Salsa has been designed and implemented by: Other contributors:

Some related projects



Return to the Partial Evaluation Group page.