Benzo: Reflective Glue for Low-level Programming

Abstract : The goal of high-level low-level programming is to bring the abstraction capabilities of high-level languages to the system programming domain, such as virtual machines (VMs) and language runtimes. However, existing solutions are bound to compilation time and expose limited possibilities to be changed at runtime and from language-side. They do not fit well with fully reflective languages and environments. We propose Benzo1, a lightweight framework for high- level low-level programming that allows developers to generate and execute at runtime low-level code (assembly). It promotes the implementation, and dynamic modification, of system components with high-level language tools outperforming existing dynamic solutions. Since Benzo is a general framework we choose three applications that cover an important range of the spectrum of system programming for validating the infrastructure: a For- eign Function Interface (FFI), primitives instrumentation and a just-in-time bytecode compiler (JIT). With Benzo we show that these typical VM-level components are feasible as reflective language-side implementations. Due to its unique combination of high-level reflection and low-level programming, Benzo shows better performance for these three applications than the comparable high-level implementations.
Document type :
Conference papers
Complete list of metadatas

Cited literature [28 references]  Display  Hide  Download

https://hal.inria.fr/hal-01060551
Contributor : Lse Lse <>
Submitted on : Wednesday, September 3, 2014 - 6:31:41 PM
Last modification on : Friday, August 2, 2019 - 3:06:02 PM
Long-term archiving on : Thursday, December 4, 2014 - 3:15:54 PM

File

paper.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-01060551, version 1

Citation

Camillo Bruni, Stéphane Ducasse, Igor Stasenko, Guido Chari. Benzo: Reflective Glue for Low-level Programming. International Workshop on Smalltalk Technologies, Aug 2014, Cambridge, United Kingdom. ⟨hal-01060551⟩

Share

Metrics

Record views

371

Files downloads

189