Tail Calls for Java

Projects > Compiler and JVM Research at JKU

Tail calls are necessary when compiling functional languages, like Scheme, to Java bytecodes. It guarantees that no stack frame is created for recursive calls and thus no stack overflow occurs. Tail calls are supported in the interpreter, the client compiler, and the server compiler. The source code is available from the Da Vinci Machine project.


  • Arnold Schwaighofer:
    Tail Call Optimization in the Java HotSpot™ VM
    Master's thesis, Institute for System Software, Johannes Kepler University Linz, 2009.
    This thesis describes the complete architecture and implementation of the virtual machine changes, together with a comprehensive evaluation.