Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Statically checkable pattern abstractions
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Monadic state: axiomatization and type safety
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Higher-Order and Symbolic Computation
The calculi of lambda-nu-cs conversion: a syntactic theory of control and state in imperative higher-order programming languages
The call-by-need lambda calculus
Journal of Functional Programming
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Ott: Effective tool support for the working semanticist
Journal of Functional Programming
From reduction-based to reduction-free normalization
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
A semantics for context-sensitive reduction semantics
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Hi-index | 0.00 |
Developing syntactic theories for reasoning about programming languages usually involves proving a unique-decomposition lemma. The proof of such a lemma is tedious, error-prone, and is usually attempted many times during the design of a theory. We therefore investigate the automation of such proofs.We map the unique-decomposition lemma to the problems of checking equivalence and ambiguity of syntactic definitions. Because checking these properties of context-free grammars is undecidable, we work with regular tree grammars and use algorithms on finite tree automata to perform the checking. To make up for the insufficient expressiveness of regular tree grammars, we extend the basic framework with built-in types and constants, contexts, and polymorphic types.Our implementation extends an earlier system by Xiao et al. [16] that translates semantic specifications expressed as syntactic theories to interpreters. We have successfully used the combined system to generate interpreters and verify the unique-decomposition lemma for a number of examples.