Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The programming language Oberon
Software—Practice & Experience
Frameworks for abstract interpretation
Acta Informatica
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Optimal code motion: theory and practice
ACM Transactions on Programming Languages and Systems (TOPLAS)
Lattice frameworks for multisource and bidirectional data flow problems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parallelism for free: efficient and optimal bitvector analyses for parallel programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Eliminating partially dead code in explicitly parallel programs
Theoretical Computer Science - Special issue on parallel computing
Advanced compiler design and implementation
Advanced compiler design and implementation
Building an optimizing compiler
Building an optimizing compiler
Global optimization by suppression of partial redundancies
Communications of the ACM
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Program Flow Analysis: Theory and Application
Program Flow Analysis: Theory and Application
Parallelism for Free: Bitvector Analyses - No State Explosion!
TACAS '95 Proceedings of the First International Workshop on Tools and Algorithms for Construction and Analysis of Systems
DFA&OPT-METAFrame: A Tool Kit for Program Analysis and Optimazation
TACAs '96 Proceedings of the Second International Workshop on Tools and Algorithms for Construction and Analysis of Systems
Euro-Par '98 Proceedings of the 4th International Euro-Par Conference on Parallel Processing
Generation of Efficient Interprocedural Analyzers with PAG
SAS '95 Proceedings of the Second International Symposium on Static Analysis
The Interprocedural Coincidence Theorem
CC '92 Proceedings of the 4th International Conference on Compiler Construction
How to Uniformly Specify Program Analysis and Transformation with Graph Rewrite Systems
CC '96 Proceedings of the 6th International Conference on Compiler Construction
Basic-Block Graphs: Living Dinosaurs?
CC '98 Proceedings of the 7th International Conference on Compiler Construction
Optimal Distribution Assignment Placement
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
PACT '97 Proceedings of the 1997 International Conference on Parallel Architectures and Compilation Techniques
Optimal interprocedural program optimization: a new framework and its application
Optimal interprocedural program optimization: a new framework and its application
Hi-index | 0.00 |
Program analysis is still characterized by paradigm-specific approaches, which are developed to accommodate to the diversities of the different programming paradigms as e.g. the imperative, object-oriented, or parallel one. Switching between paradigms or transferring analyses across paradigm boundaries requires usually detailed knowledge of the peculiarities of the various approaches. This complicates both the reuse of analyses and the proofs of their correctness. On the other hand, abstract interpretation provides a unifying access to program analysis. In this article we exploit this for the construction of program analysis generators based on a uniform design principle. Basically, we proceed by extracting the abstract kernel from the standard analysis framework, which we then consider under a generic perspective. We show that there are concrete instances in such different paradigms as those above. As a by-product their decomposition into a "theoretical" and "practical" part which are specificational and computational in nature, reveals the aforementioned design principle. The frameworks and their respective generators, which can be fed by concise specifications, can thereby be considered black-boxes: analysis designers only need to know of the (quite similar) interfaces. The proof of correctness or even precision of a generated algorithm with respect to a specific property reduces to checking the premises of a few theorems. This considerably eases the construction of analyses within a specific paradigm as well as the switch between and the transfer of analyses to other paradigms.