Compiling cooperative multitasking of ABS to Scala

Andri Saar

Institute of Cybernetics at TUT

Thursday, 15 December 2011, 14:00
Cybernetica Bldg (Akadeemia tee 21), room B101

Abstract: In ABS, objects are divided into concurrent object groups (COGs) which can only communicate asynchronously and objects inside one COG use cooperative multitasking with explicit scheduling points where the control can pass to some other task. We are developing a new Scala-based backend for the language which allows true distributed execution of ABS models by enabling us to run different COGs on different physical nodes. As the concurrency models of the two languages are quite different, we employ delimited continuations to implement cooperative multitasking of tasks inside one COG. In order to prove the correctness of compilation for our new backend, we focus on one aspect of the ABS language, namely the cooperative multitasking inside one COG. We create a simplified language that includes this feature and then define a compilation function that targets a language (inspired by Scala) that supports delimited continuations. Both of these languages have small-step semantics. We then prove the correctness of the compilation function. This work will serve as a basis for extending it to other ABS features, eventually reaching the full language.

(Joint work with Keiko Nakata.)

Tarmo Uustalu
Last update 14.12.2011