ECOOP 2022
Mon 6 June - Thu 7 July 2022 Berlin, Germany
Thu 9 Jun 2022 13:50 - 14:10 at Aurora Borealis 1 - Language Implementation Chair(s): Guido Salvaneschi

Programming embedded systems applications involves writing concurrent, event-driven and timing-aware programs. Traditionally, such programs are written in low-level machine-oriented programming languages like C or Assembly. We present an alternative by introducing Synchron, an API that offers high-level abstractions to the programmer while supporting the low-level infrastructure in an associated runtime system and one-time-effort drivers.

Embedded systems applications exhibit the general characteristics of being (i) concurrent, (ii) I/O–bound and (iii) timing-aware. To address each of these concerns, the Synchron API consists of three components - (1) a Concurrent ML (CML) inspired message-passing concurrency model, (2) a message-passing–based I/O interface that translates between low-level interrupt based and memory-mapped peripherals, and (3) a timing operator, syncT, that marries CML’s sync operator with timing windows inspired from the TinyTimber kernel.

We implement the Synchron API as the bytecode instructions of a virtual machine called SynchronVM. SynchronVM hosts a Caml-inspired functional language as its frontend language, and the backend of the VM supports the STM32F4 and NRF52 microcontrollers, with RAM in the order of hundreds of kilobytes. We illustrate the expressiveness of the Synchron API by showing examples of expressing state machines commonly found in embedded systems. The timing functionality is demonstrated through a music programming exercise. Finally, we provide benchmarks on the response time, jitter rates, memory, and power usage of the SynchronVM.

Thu 9 Jun

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

13:30 - 15:00
Language ImplementationHub Talks / Research Papers at Aurora Borealis 1
Chair(s): Guido Salvaneschi University of St. Gallen
13:30
20m
Talk
Benchmarking, analysis, and optimization of serverless function snapshotsHub Talk
Hub Talks
Dmitrii Ustiugov ETH Zurich, Switzerland, Plamen Petrov , Marios Kogias Microsoft Research, Edouard Bugnion EPFL, Boris Grot University of Edinburgh, UK
Link to publication DOI
13:50
20m
Talk
Synchron - An API and Runtime for Embedded SystemsECOOP 2022
Research Papers
Abhiroop Sarkar Chalmers University of Technology, Bo Joel Svensson Chalmers University of Technology, Sweden, Mary Sheeran Chalmers
Pre-print
14:10
20m
Talk
Functional Programming with DatalogECOOP 2022
Research Papers
André Pacak JGU Mainz, Sebastian Erdweg JGU Mainz
14:30
20m
Talk
Union Types with Disjoint SwitchesArtifacts Evaluated - ReusableArtifacts Evaluated - FunctionalVCOOP 2022ECOOP 2022
Research Papers
Baber Rehman The University of Hong Kong, Xuejing Huang The University of Hong Kong, Ningning Xie University of Toronto, Bruno C. d. S. Oliveira University of Hong Kong