Typed Self-Applicable Meta-Programming

by Matt Brown

Institution: UCLA
Year: 2017
Keywords: Computer science; Futamura Projections; Meta-circularity; Meta-programming; Partial Evaluation; Self-interpreters; Static type checking
Posted: 02/01/2018
Record ID: 2176484
Full text PDF: http://www.escholarship.org/uc/item/6rn6t4n7


Self-applicable meta-programming has its roots in the early days ofcomputer science.Two early examples were published in 1936: the universal Turingmachine, and a self-interpreter for the -calculus.These were major advances in computability theory, butself-application has a long history of practical uses as well.Many languages have self-interpreters or self-hosting compilers. Others support self-applicable meta-programming as a general-purposetechnique that enables elegant solutions to many problems.Until now, these techniques have been incompatible with static typechecking, which has many benefits of its own.In this thesis I present techniques for practical self-applicablemeta-programming for statically typed languages.