The scAPI, as proposed by Kiselyov in “Delimited Control in OCaml, Abstractly and Concretely”, provides virtual machines multi prompt delimited continuation support without program transformation. I will talk about my studies integrating scAPI in the Java Virtual Machine.
Scala-Effekt, for example, currently relies on a library based implementation of multi prompt delimited continuations. Native support benefits performance of those libraries and applications compared to current solutions. I try to implement the scAPI in Metascala which is a metacircular Java Virtual Machine implemented in Scala. It serves as a base for experimental changes to Java Virtual Machine implementations.
I report on my progress implementing a solution for any Java Virtual Machine implementation without any need for native stack manipulation. Current stage requires code to be either implemented in an EDSL in Scala or a program transformation must be performed to rewrite the program to the EDSL. The EDSL itself is implemented with an object algebra and represents a typed lambda calculus in higher order syntax which generifies the parameter of lambda abstractions. Due to that it is possible to inject custom evaluation strategies like call-by-need or custom calling conventions which allows me to control stack use of regular Scala functions. On top of this, the scAPI can now capture stack frames without hustling with native stack implementations. This approach should be usable in any language with support for higher kinded types.
Sun 22 Oct
|15:30 - 15:52|
|15:52 - 16:15|
|16:15 - 16:37|
|16:37 - 17:00|