Lazy Continuations for Java Virtual Machines

Lukas Stadler, Christian Wimmer, John Rose, Hanspeter Mössenböck, Thomas Würthinger

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

Continuations, or 'the rest of the computation', are a concept that is most often used in the context of functional and dynamic programming languages. Implementations of such languages that work on top of the Java virtual machine (JVM) have traditionally been complicated by the lack of continuations because they must be simulated. We propose an implementation of continuations in the Java virtual machine with 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. Although our implementation can be used from Java code directly, it is mainly intended to facilitate the creation of frameworks that allow other functional or dynamic languages to be executed on a Java virtual machine. As there are no widely used benchmarks for continuation functionality on JVMs, we developed synthetical benchmarks that show the expected costs of the most important operations depending on various parameters.
Original languageEnglish
Title of host publicationProceeding of the 7th Internation Conference on Principels and Practice of Programming in Java
PublisherACM Press
Pages143-152
Number of pages9
ISBN (Print)978-1-60558-598-7
DOIs
Publication statusPublished - 2009

Fields of science

  • 102 Computer Sciences
  • 102009 Computer simulation
  • 102011 Formal languages
  • 102013 Human-computer interaction
  • 102029 Practical computer science
  • 102022 Software development
  • 102024 Usability research

Cite this