SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Higher order attribute grammars
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Data flow analysis is model checking of abstract interpretations
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A research environment for incremental data flow analysis
CSC '85 Proceedings of the 1985 ACM thirteenth annual conference on Computer Science
Proving correctness of compiler optimizations by temporal logic
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Types and programming languages
Types and programming languages
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
Incremental evaluation for attribute grammars with application to syntax-directed editors
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Data Flow Analysis as Model Checking
TACS '91 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Forwarding in Attribute Grammars for Modular Language Design
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Automatically proving the correctness of compiler optimizations
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A truly generative semantics-directed compiler generator
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
Descriptional composition of compiler components
Descriptional composition of compiler components
Compiler Optimization Correctness by Temporal Logic
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
Building verified compilers is difficult, especially when complex analyses such as type checking or data-flow analysis must be performed. Both the type checking and program optimization communities have developed methods for proving the correctness of these processes and developed tools for using, respectively, verified type systems and verified optimizations. However, it is difficult to use both of these analyses in a single declarative framework since these processes work on different program representations: type checking on abstract syntax trees and data-flow analysis-based optimization on control flow or program dependency graphs. We present an attribute grammar specification language that has been extended with constructs for specifying attribute-labelled control flow graphs and both CTL and LTL-FV formulas that specify data-flow analyses. These formulas are model-checked on these graphs to perform the specified analyses. Thus, verified type rules and verified data-flow analyses (verified either by hand or with automated proof tools) can both be transcribed into a single declarative framework based on attribute grammars to build a high-confidence language implementations. Also, the attribute grammar specification language is extensible so that it is relatively straight-forward to add new constructs for different temporal logics so that alternative logics and model checkers can be used to specify data-flow analyses in this framework.