GNU epsilon -- an extensible programming language
Luca Saiu

TL;DR
This paper presents GNU epsilon, an extensible programming language built on a minimal core, featuring reflection, self-modification, and advanced abstractions, with formal semantics and a parallel garbage collector.
Contribution
It introduces a formally specified, extensible language with high-level features built on a minimal core, including formal analysis and a parallel garbage collector.
Findings
Formal semantics and soundness proof for the language
Implementation of a parallel garbage collector for multi-core execution
Extension of the core language with macros and high-level abstractions
Abstract
Reductionism is a viable strategy for designing and implementing practical programming languages, leading to solutions which are easier to extend, experiment with and formally analyze. We formally specify and implement an extensible programming language, based on a minimalistic first-order imperative core language plus strong abstraction mechanisms, reflection and self-modification features. The language can be extended to very high levels: by using Lisp-style macros and code-to-code transforms which automatically rewrite high-level expressions into core forms, we define closures and first-class continuations on top of the core. Non-self-modifying programs can be analyzed and formally reasoned upon, thanks to the language simple semantics. We formally develop a static analysis and prove a soundness property with respect to the dynamic semantics. We develop a parallel garbage collector…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Parallel Computing and Optimization Techniques · Software Engineering Research
