Java Continuations

Projects > Compiler and JVM Research at JKU

Continuations, or 'the rest of the computation', are a concept that is most often used in the context of functional and dynamic programming languages. Our implementation of continuations in the Java virtual machine uses a lazy or on-demand approach. Our system imposes zero run-time overhead as long as no activations need to be saved and restored and performs well when continuations are used.

Publications

  • Lukas Stadler, Christian Wimmer, Thomas Würthinger, Hanspeter Mössenböck, John Rose:
    Lazy Continuations for Java Virtual Machines
    7th Intl. Conf. on Principles and Practice of Programming in Java (PPPJ'09), pp. 143-152. ACM Press, 2009. doi:10.1145/1596655.1596679
    This conference paper introduces a very fine-grained ("lazy") approach to continuation management. This approach always rescues stack frames at the latest possible point in time and thus allows continuations to share large portions of their data with other continuations. This can lead to significant savings of both run time and memory.