@inbook{731fbb4e4401482392139872bdf1fdf2,
title = "Program logics for homogeneous meta-programming",
abstract = "A meta-program is a program that generates or manipulates another program; in homogeneous meta-programming, a program may generate new parts of, or manipulate, itself. Meta-programming has been used extensively since macros were introduced to Lisp, yet we have little idea how formally to reason about meta-programs. This paper provides the first program logics for homogeneous meta-programming - using a variant of MiniML(e)(square) by Davies and Pfenning as underlying meta-programming language. We show the applicability of our approach by reasoning about example meta-programs from the literature. We also demonstrate that our logics are relatively complete in the sense of Cook, enable the inductive derivation of characteristic formulae, and exactly capture the observational properties induced by the operational semantics.",
author = "Martin Berger and Laurence Tratt",
year = "2010",
doi = "10.1007/978-3-642-17511-4_5",
language = "English",
isbn = "978-3-642-17510-7",
volume = "6355",
series = "Lecture Notes in Computer Science",
publisher = "Springer",
pages = "64--81",
editor = "EM Clarke and A Voronkov",
booktitle = "Logic for Programming, Artificial Intelligence, and Reasoning",
note = "16th International Conference on Logic for Programming, Artificial Intelligence and Reasoning (LPAR) ; Conference date: 25-04-2010 Through 01-05-2010",
}