Related articles |
---|
Harissa alpha 3.02 muller@irisa.fr (Gilles Muller) (1997-12-17) |
From: | Gilles Muller <muller@irisa.fr> |
Newsgroups: | comp.compilers,comp.lang.java.machine |
Date: | 17 Dec 1997 14:05:48 -0500 |
Organization: | Irisa, Rennes (FR) |
Keywords: | Java, available |
We are proud to announce the availability of Harissa version alpha
3.02. Harissa is a Java environment that includes a compiler from
Java bytecode to C and a Java interpreter. While Harissa 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.
Harissa's compiler generates C code that can be compiled into
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, Harissa implements several other more
conventional optimizations for object-oriented languages such as
method inlining.
Availability
http://www.irisa.fr/compose/harissa/harissa.html
New Features
The version alpha 3 supports threads (based on POISIX threads) and
graphics through the biss library. The applications distributed with
the biss-0.87 package all compile successfully on Solaris. The
efficiency of the generated C code has been improved. Many options
have been added to control code generation.
Known Problems
At the current time GC does not work with pthreads. Also, the Linux
version seems to be very unstable (problems with pthreads and memory
allocation).
Breaking the Speed Limit
Harissa has been developped in the COMPOSE group at IRISA
whose focus is to develop Adaptive Software. Adaptive software is an
approach aimed at reconciling generality and performance. It is based on
a program transformation technique called partial evaluation which
consists of specializing programs with respect to invariants. Utilizing
these invariants allows a general system to be instantiated for a
particular environment. The instantiated system is optimized in the
sense that all the operations that depended on the invariant have been
performed.
Harissa can be used as a front-end for our C-specializer Tempo. By
specializing Harissa's generated C code, we have been able to obtain
speed-up of up to six on several graphics applications. We are
looking for graphic and computation examples. If your application is
too slow and you think there are good opportunities for
specialisation inside (i.e. generic algorithms), please contact us.
For more information, please visit our website,
http://www.irisa.fr/compose/
Contact
harissa@irisa.fr
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.