This work shows that bootstrapping of compiler generators from program specializers is a viable alternative to the third Futamura projection. To practically validate the technique, a novel partial evaluation-based compiler generator was designed and implemented for a recursive flowchart language. Among others, three-step bootstrapping was found to be faster and to produce the same compiler generator that Gomard and Jones produced two decades ago by double self-application. Compiler-generator bootstrapping has distinct properties that are not present in the classic three Futamura projections, such as the possibility to turn a specializer into a compiler generator in one step without selfapplication. Up to now the approach of hand-writing compiler generators has only been used to avoid difficulties when specializing strongly-typed languages, not as a first step towards compiler-generator bootstrapping.
Robert Glück is an Associate Professor of Computer Science at the University of Copenhagen, Denmark. He received his Habilitation and doctor degree from the Vienna University of Technology, Austria, where he also worked as Universitätsassistent. He was research assistant at the City University of New York, USA, and received the Erwin-Schrödinger-Fellowship of the Austrian Science Foundation (FWF). For four years he worked at Waseda University, Tokyo, as a researcher and project leader for the Japan Science and Technology Agency (JST) and the Japan Society for the Promotion of Science (JSPS). His main research interests include advanced programming languages, automatic program transformation, and metaprogramming techniques. Robert Glück is currently a visiting professor at TU Vienna, where he delivers a lecture course on "Programminvertierung und Reversibles Rechnen" as part of an ERASMUS/LLP Exchange Agreement between TU Vienna and the University of Copenhagen.
This talk is organised by the Compilers and Languages Group at the Institute of Computer Languages.
Tea at the library of E185/1, Argentinierstr. 8, 4th floor (central) at 2:30 p.m.