Pick'n'Fix: Capturing Control Flow in Modular Compilers

Laurence E. Day, Patrick Bahr

Publikation: Konference artikel i Proceeding eller bog/rapport kapitelBidrag til bog/antologiForskningpeer review


We present a modular framework for implementing languages with effects and control structures such as loops and conditionals. This framework enables modular definitions of both syntax and semantics as well as modular implementations of compilers and virtual machines. In order to compile control structures, in particular cyclic ones, we employ Oliveira and Cook's purely functional representation of graphs. Moreover, to separate control flow features semantically from other language features, we represent source languages using Johann and Ghani's encoding of generalised algebraic datatypes as fixpoints of higher-order functors. We demonstrate the usage of our modular compiler framework with an extended running example and highlight the extensibility of our modular compiler implementations.
TitelTFP '14 pre-proceedings
Publikationsdato1 jul. 2014
StatusUdgivet - 1 jul. 2014


  • modularity, extensibility, compiler, virtual machine, semantics, catamorphism, graph, sharing, Haskell