Two decades of live coding and debugging of virtual machines through simulation. (8th May 2020)
- Record Type:
- Journal Article
- Title:
- Two decades of live coding and debugging of virtual machines through simulation. (8th May 2020)
- Main Title:
- Two decades of live coding and debugging of virtual machines through simulation
- Authors:
- Ingalls, Daniel
Miranda, Eliot
Béra, Clément
Gonzalez Boix, Elisa - Abstract:
- Summary: OpenSmalltalk‐VM is a virtual machine (VM) for languages in the Smalltalk family (eg, Squeak and Pharo), which is itself written in a subset of Smalltalk that can easily be translated to C. VM development is done in Smalltalk, an activity we call "simulation." The production VM is then derived by translating the core VM code to C. As a result, two execution models coexist: simulation, where the Smalltalk code is executed on top of a Smalltalk VM, and production, where the same code is compiled to an executable through a C compiler. The whole VM execution can be simulated: the heap is represented as a huge byte array, the VM code is executed as Smalltalk, and the native code generated by the just‐in‐time (JIT) compiler is executed by a processor simulator. All the Smalltalk development tools, such as the debugger, are then available while simulating. In addition, in simulation, it is also possible to use debugging features such as single stepping in the machine code generated by the JIT compiler. The Smalltalk development tools combined with the simulation debugging features provide developers with a productive environment in which to extend and debug the VM. In this article, we detail the VM simulation infrastructure and report our experiences developing and debugging VM features within it such as the garbage collector and the JIT compiler.
- Is Part Of:
- Software, practice & experience. Volume 50:Number 9(2020)
- Journal:
- Software, practice & experience
- Issue:
- Volume 50:Number 9(2020)
- Issue Display:
- Volume 50, Issue 9 (2020)
- Year:
- 2020
- Volume:
- 50
- Issue:
- 9
- Issue Sort Value:
- 2020-0050-0009-0000
- Page Start:
- 1629
- Page End:
- 1650
- Publication Date:
- 2020-05-08
- Subjects:
- live development -- managed runtime -- tools -- virtual machine
Computer software -- Periodicals
Computer programming -- Periodicals
Computer programs -- Periodicals
005.3 - Journal URLs:
- http://onlinelibrary.wiley.com/ ↗
- DOI:
- 10.1002/spe.2841 ↗
- Languages:
- English
- ISSNs:
- 0038-0644
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 8321.453000
British Library DSC - BLDSS-3PM
British Library STI - ELD Digital store - Ingest File:
- 24578.xml