Code selection through object code optimization
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
A relational framework for abstract interpretation
on Programs as data objects
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interprocedural side-effect analysis in linear time
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Two-level semantics and abstract interpretation
Theoretical Computer Science
Two-level functional languages
Two-level functional languages
SPARE: A Development Environment for Program Analysis Algorithms
IEEE Transactions on Software Engineering
Sharlit—a tool for building optimizers
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Automatic generation and management of interprocedural program analyses
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Generating data flow analysis algorithms from modal specifications
TACS'91 Selected papers of the conference on Theoretical aspects of computer software
SUIF: an infrastructure for research on parallelizing and optimizing compilers
ACM SIGPLAN Notices
Abstract interpretation: a semantics-based tool for program analysis
Handbook of logic in computer science (vol. 4)
Specifying representations of machine instructions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Data flow analysis is model checking of abstract interpretations
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Aggregate structure identification and its application to program analysis
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LISA—machine description language for cycle-accurate models of programmable DSP architectures
Proceedings of the 36th annual ACM/IEEE Design Automation Conference
Temporal abstract interpretation
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Graph rewrite systems for program optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Data flow analysis of applicative programs using minimal function graphs
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Computer Structures: Principles and Examples
Computer Structures: Principles and Examples
A generic approach to the static analysis of concurrent programs with procedures
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 3rd Workshop on Mathematical Foundations of Programming Language Semantics
Data Flow Analysis as Model Checking
TACS '91 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Generation of Efficient Interprocedural Analyzers with PAG
SAS '95 Proceedings of the Second International Symposium on Static Analysis
TVLA: A System for Implementing Static Analyses
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
A Few Graph-Based Relational Numerical Abstract Domains
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
A Term Pattern-Match Compiler Inspired by Finite Automata Theory
CC '92 Proceedings of the 4th International Conference on Compiler Construction
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Obfuscation of executable code to improve resistance to static disassembly
Proceedings of the 10th ACM conference on Computer and communications security
TDL: a hardware description language for retargetable postpass optimizations and analyses
Proceedings of the 2nd international conference on Generative programming and component engineering
Precise interprocedural analysis through linear algebra
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Compiler Optimization Correctness by Temporal Logic
Higher-Order and Symbolic Computation
HOIST: a system for automatically deriving static analyzers for embedded systems
ASPLOS XI Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Intermediate-representation recovery from low-level code
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Weighted pushdown systems and their application to interprocedural dataflow analysis
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Proceedings of the 41st annual Design Automation Conference
SYNERGY: a new algorithm for property checking
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Automatic inference of optimizer flow functions from semantic meanings
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Wysinwyx: what you see is not what you execute
Wysinwyx: what you see is not what you execute
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
BitBlaze: A New Approach to Computer Security via Binary Analysis
ICISS '08 Proceedings of the 4th International Conference on Information Systems Security
Symbolic Analysis via Semantic Reinterpretation
Proceedings of the 16th International SPIN Workshop on Model Checking Software
WYSINWYX: What you see is not what you eXecute
ACM Transactions on Programming Languages and Systems (TOPLAS)
Finite differencing of logical formulas for static analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
DIVINE: discovering variables in executables
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Hoare logic for ARM machine code
FSEN'07 Proceedings of the 2007 international conference on Fundamentals of software engineering
A system for generating static analyzers for machine instructions
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Symbolic analysis via semantic reinterpretation
International Journal on Software Tools for Technology Transfer (STTT) - SPIN 2009
BAP: a binary analysis platform
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Abstract domains of affine relations
SAS'11 Proceedings of the 18th international conference on Static analysis
Using datalog with binary decision diagrams for program analysis
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Automatic abstraction for congruences
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Improving pushdown system model checking
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
CodeSurfer/x86—A platform for analyzing x86 executables
CC'05 Proceedings of the 14th international conference on Compiler Construction
Trace partitioning in abstract interpretation based static analyzers
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Analysis of modular arithmetic
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
There's plenty of room at the bottom: analyzing and verifying machine code
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Directed proof generation for machine code
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Path-exploration lifting: hi-fi tests for lo-fi emulators
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Extended weighted pushdown systems
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Banshee: a scalable constraint-based analysis toolkit
SAS'05 Proceedings of the 12th international conference on Static Analysis
Adding nesting structure to words
DLT'06 Proceedings of the 10th international conference on Developments in Language Theory
A trustworthy monadic formalization of the ARMv7 instruction set architecture
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
A method for symbolic computation of abstract operations
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
OpenNWA: a nested-word automaton library
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Bilateral algorithms for symbolic abstraction
SAS'12 Proceedings of the 19th international conference on Static Analysis
Hi-index | 0.00 |
This article describes the design and implementation of a system, called TSL (for Transformer Specification Language), that provides a systematic solution to the problem of creating retargetable tools for analyzing machine code. TSL is a tool generator---that is, a metatool---that automatically creates different abstract interpreters for machine-code instruction sets. The most challenging technical issue that we faced in designing TSL was how to automate the generation of the set of abstract transformers for a given abstract interpretation of a given instruction set. From a description of the concrete operational semantics of an instruction set, together with the datatypes and operations that define an abstract domain, TSL automatically creates the set of abstract transformers for the instructions of the instruction set. TSL advances the state-of-the-art in program analysis because it provides two dimensions of parameterizability: (i) a given analysis component can be retargeted to different instruction sets; (ii) multiple analysis components can be created automatically from a single specification of the concrete operational semantics of the language to be analyzed. TSL is an abstract-transformer-generator generator. The article describes the principles behind TSL, and discusses how one uses TSL to develop different abstract interpreters.