Harissa alpha 3.02

Gilles Muller <muller@irisa.fr>
17 Dec 1997 14:05:48 -0500

          From comp.compilers

Related articles
Harissa alpha 3.02 muller@irisa.fr (Gilles Muller) (1997-12-17)
| List of all articles for this month |

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.


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

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

    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,


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.