Reimagining the FrameVM
Master Project of Bram Crielaard

Project description

This project focusses on reimagining the FrameVM as implemented by Bruin[1]. The FrameVM is a virtual machine based on the principle that scopes describe frames[2]. The reason this rework is deemed necessary is because of the following annoyances caused by the FrameVM: • Complex operations such as setting and getting continuations need to be explicitly performed by the developer • The distinction between data-frames and control-frames is vague • The frames and the code are separate entities, meaning there is still data which lives outside of the frame model As such this project aims to remove some of the complexity from working with the language. Furthermore, the distinction between types of frames is removed and reworked into a unified frame which performs both tasks. Lastly, code lives in the same environment as the data it manipulates, which means there is no longer a distinction between code and data in the new VM.

  1. Bruin, C.: Dynamix on the Frame VM: Declarative dynamic semantics on a VM using scopes as frames. Master’s thesis, Delft University of Technology (2020),
  2. Poulsen, C.B., N´eron, P., Tolmach, A.P., Visser, E.: Scopes describe frames: A uniform model for memory layout in dynamic semantics. In: Krishnamurthi, S., Lerner, B.S. (eds.) 30th European Conference on Object-Oriented Programming, ECOOP 2016, July 18-22, 2016, Rome, Italy. LIPIcs, vol. 56. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik (2016),

Reimagining the FrameVM

Student: Bram Crielaard
Supervisor(s): Eelco Visser, Casper Bach Poulsen