Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
A modal analysis of staged computation
Journal of the ACM (JACM)
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Multistage programming: its theory and applications
Multistage programming: its theory and applications
A compositional logic for polymorphic higher-order functions
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
From process logic to program logic
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
An Observationally Complete Program Logic for Imperative Higher-Order Frame Rules
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
Compile-time meta-programming in a dynamically typed OO language
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Concoqtion: indexed types now!
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A logical analysis of aliasing in imperative higher-order functions
Journal of Functional Programming
Completeness and Logical Full Abstraction in Modal Logics for Typed Mobile Processes
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part II
Central European Functional Programming School
Logical reasoning for higher-order functions with local state
FOSSACS'07 Proceedings of the 10th international conference on Foundations of software science and computational structures
Mint: Java multi-stage programming using weak separability
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Descriptive and relative completeness of logics for higher-order functions
ICALP'06 Proceedings of the 33rd international conference on Automata, Languages and Programming - Volume Part II
Program logics for sequential higher-order control
FSEN'09 Proceedings of the Third IPM international conference on Fundamentals of Software Engineering
Static analysis of multi-staged programs via unstaging translation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Specification and verification of meta-programs
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Reasoning about multi-stage programs
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Position paper: the science of boxing
Proceedings of the Eighth ACM SIGPLAN workshop on Programming languages and analysis for security
An observationally complete program logic for imperative higher-order functions
Theoretical Computer Science
Hi-index | 0.00 |
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 MiniMLe 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.