Program logics for homogeneous meta-programming

Martin Berger, Laurence Tratt

Research output: Chapter in Book/Report/Conference proceedingChapter

10 Citations (Scopus)

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.

Original languageEnglish
Title of host publicationLogic for Programming, Artificial Intelligence, and Reasoning
Subtitle of host publication16th International Conference
EditorsEM Clarke, A Voronkov
Place of PublicationBERLIN
PublisherSpringer
Pages64-81
Number of pages18
Volume6355
ISBN (Print)978-3-642-17510-7
DOIs
Publication statusPublished - 2010
Event16th International Conference on Logic for Programming, Artificial Intelligence and Reasoning (LPAR) - Dakar
Duration: 25 Apr 20101 May 2010

Publication series

NameLecture Notes in Computer Science
Volume6355
ISSN (Print)0302-9743

Conference

Conference16th International Conference on Logic for Programming, Artificial Intelligence and Reasoning (LPAR)
CityDakar
Period25/04/20101/05/2010

Fingerprint

Dive into the research topics of 'Program logics for homogeneous meta-programming'. Together they form a unique fingerprint.

Cite this