The Fundamental Constructs of Homogeneous Generative Meta-Programming

  • L. Thomas van Binsbergen (Speaker)

Activity: Talk or presentationInvited talk


Invited talk at the University of Sussex.

Funcons for HGMP.

The PLanCompS project has proposed a component-based approach to formal programming language semantics.
In this approach, object language programs are translated into compositions of reusable components.
This gives a formal specification to the object language as the components themselves are defined formally, via a modular variant of structural operational semantics.
The reusable components are called "funcons" as they model fundamental constructs shared between programming languages across paradigms.
Funcons have been identified for many different aspects of programming, e.g. procedures/functions, binding, scoping, patterns, abnormal control, delimited continuations, etc.

In a language with Homogeneous Generative Meta-Programming (HGMP), programs may be written that generate meta-representations of programs as data.
These representations can subsequently be used for inspection, manipulation, and ultimately execution.
In a recent line of work, Berger and Tratt (2015,2017) have provided a formal model for reasoning about HGMP as an extension of a standard lambda-calculus.
Moreover, they suggest a general procedure, referred to as the HGMPification algorithm, for turning a programming language specifications for arbitrary language L into a specification for language L+HGMP.

In this talk we introduce both lines of work using the HGMP-extended lambda-calculus as a running example.
We consider how HGMPification may be integrated in the PLanCompS approach so that languages with HGMP facilities can be given a component-based semantics through funcons.
We show that the HGMPification algorithm is easily applied to funcons, enabling straightforward funcon translations for splicing and quotation constructs.
Furthermore, we show that translating meta-representations is just as straightforward when the overall translation is homomorphic.
Period25 Jan 2018
Held atUniversity of Sussex, United Kingdom


  • Meta-Programming
  • Formal Semantics
  • Fundamenal Constructs
  • Funcons