SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Attribute grammars as a functional programming paradigm
Proc. of a conference on Functional programming languages and computer architecture
The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
Closure analysis in constraint form
ACM Transactions on Programming Languages and Systems (TOPLAS)
Featherweight Java: a minimal core calculus for Java and GJ
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proving correctness of compiler optimizations by temporal logic
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Java Language Specification
The Java Language Specification
Information and Computation - FOOL VII
Journal of Functional Programming
Automated soundness proofs for dataflow analyses and transformations via local rules
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of the ACM (JACM)
Software—Practice & Experience
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extracting a data flow analyser in constructive logic
Theoretical Computer Science - Applied semantics: Selected topics
Circular reference attributed grammars — their evaluation and applications
Science of Computer Programming
Ott: effective tool support for the working semanticist
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Sound and extensible renaming for java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Stepping Stones over the Refactoring Rubicon
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Hi-index | 0.00 |
Reference attribute grammars are a powerful formalism for concisely specifying and implementing static analyses. While they have proven their merit in practical applications, no attempt has so far been made to rigorously verify correctness properties of the resulting systems. We present a general method for formalising reference attribute grammars in the theorem prover Coq. The formalisation is supported by tools for generating standard definitions from an abstract description and custom proof tactics to help automate verification. As a small but typical application, we show how closure analysis for the untyped lambda calculus can easily be implemented and proved correct with respect to an operational semantics. To evaluate the feasibility of our approach on larger systems, we implement name lookup for a naming core calculus of Java and give a formal correctness proof of the centrepiece of a rename refactoring for this language.