• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Systematic design of program transformation frameworks by abstract interpretation (2002)

by P Cousot, R Cousot
Venue:ACM SIGPLAN Notices
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 32
Next 10 →

Program Development Using Abstract Interpretation (and The Ciao System Preprocessor

by Manuel V. Hermenegildo, Germán Puebla, Francisco Bueno, Pedro López-garcía - In 10th International Static Analysis Symposium (SAS’03), number 2694 in LNCS , 2003
"... Abstract. The technique of Abstract Interpretation has allowed the development of very sophisticated global program analyses which are at the same time provably correct and practical. We present in a tutorial fashion a novel program development framework which uses abstract interpretation as a funda ..."
Abstract - Cited by 30 (23 self) - Add to MetaCart
Abstract. The technique of Abstract Interpretation has allowed the development of very sophisticated global program analyses which are at the same time provably correct and practical. We present in a tutorial fashion a novel program development framework which uses abstract interpretation as a fundamental tool. The framework uses modular, incremental abstract interpretation to obtain information about the program. This information is used to validate programs, to detect bugs with respect to partial specifications written using assertions (in the program itself and/or in system libraries), to generate and simplify run-time tests, and specialization, parallelization, and resource usage control, all in a provably correct way. In the case of validation and debugging, the assertions can refer to a variety of program points such as procedure entry, procedure exit, points within procedures, or global computations. The system can reason with much richer information than, for example, traditional types. This includes data structure shape (including pointer sharing), bounds on data structure sizes, and other operational variable instantiation properties, as well as procedure-level properties such as determinacy, termination, non-failure, and bounds on resource consumption (time or space cost). CiaoPP, the preprocessor of the Ciao multi-paradigm programming system, which implements the described functionality, will be used to illustrate the fundamental ideas.

Modular Static Program Analysis

by Patrick Cousot, Radhia Cousot - Proceedings of Compiler Construction , 2002
"... Abstract. The purpose of this paper is to present four basic methods for interpretation: – simplification-based separate analysis; – worst-case separate analysis; – separate analysis with (user-provided) interfaces; – symbolic relational separate analysis; as well as a fifth category which is essent ..."
Abstract - Cited by 18 (1 self) - Add to MetaCart
Abstract. The purpose of this paper is to present four basic methods for interpretation: – simplification-based separate analysis; – worst-case separate analysis; – separate analysis with (user-provided) interfaces; – symbolic relational separate analysis; as well as a fifth category which is essentially obtained by composition of the above separate local analyses together with global analysis methods. 1

The Impact of Input Domain Reduction on Search-Based Test Data Generation

by Mark Harman, Phil McMinn, Joachim Wegener , 2007
"... There has recently been a great deal of interest in search– based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of search ..."
Abstract - Cited by 15 (9 self) - Add to MetaCart
There has recently been a great deal of interest in search– based test data generation, with many local and global search algorithms being proposed. However, to date, there has been no investigation of the relationship between the size of the input domain (the search space) and performance of search–based algorithms. Static analysis can be used to remove irrelevant variables for a given test data generation problem, thereby reducing the search space size. This paper studies the effect of this domain reduction, presenting results from the application of local and global search algorithms to real world examples. This provides evidence to support the claim that domain reduction has implications for practical search–based test data generation.

A semantics-based approach to malware detection

by Mila Dalla Preda, et al. - PROCEEDINGS OF THE 34TH ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, POPL 2007, ACM (2007) 377–388 , 2007
"... Malware detection is a crucial aspect of software security. Current malware detectors work by checking for “signatures,” which attempt to capture (syntactic) characteristics of the machine-level byte sequence of the malware. This reliance on a syntactic approach makes such detectors vulnerable to co ..."
Abstract - Cited by 15 (2 self) - Add to MetaCart
Malware detection is a crucial aspect of software security. Current malware detectors work by checking for “signatures,” which attempt to capture (syntactic) characteristics of the machine-level byte sequence of the malware. This reliance on a syntactic approach makes such detectors vulnerable to code obfuscations, increasingly used by malware writers, that alter syntactic properties of the malware byte sequence without significantly affecting their execution behavior. This paper takes the position that the key to malware identification lies in their semantics. It proposes a semantics-based framework for reasoning about malware detectors and proving properties such as soundness and completeness of these detectors. Our approach uses a trace semantics to characterize the behaviors of malware as well as the program being checked for infection, and uses abstract interpretation to “hide” irrelevant aspects of these behaviors. As a concrete application of our approach, we show that the semantics-aware malware detector proposed by Christodorescu et al. is complete with respect to a number of common obfuscations used by malware writers.

Extracting Queries by Static Analysis of Transparent Persistence

by Ben Wiedermann, William R. Cook - POPL'07 , 2007
"... Transparent persistence promises to integrate programming languages and databases by allowing procedural programs to access persistent data with the same ease as non-persistent data. When the data is stored in a relational database, however, transparent persistence does not naturally leverage the pe ..."
Abstract - Cited by 9 (1 self) - Add to MetaCart
Transparent persistence promises to integrate programming languages and databases by allowing procedural programs to access persistent data with the same ease as non-persistent data. When the data is stored in a relational database, however, transparent persistence does not naturally leverage the performance benefits of relational query optimization. We present a program analysis that combines the benefits of both approaches by extracting database queries from programs with transparent access to persistent data. The analysis uses a sound abstract interpretation of the original program to approximate the data traversal paths in the program and the conditions under which the paths are used. The resulting paths are then converted into a query, and the program is simplified by removing redundant tests. We study an imperative kernel language with read-only access to persistent data and identify the conditions under which the transformations can be applied. This analysis approach promises to combine the software engineering benefits of transparent data persistence with the performance benefits of database query optimization.

Abstract Interpretation with Specialized Definitions

by Germán Puebla, Elvira Albert, Manuel Hermenegildo - In Proc. of SAS’06, LNCS , 2006
"... Abstract. The relationship between abstract interpretation and partial deduction has received considerable attention and (partial) integrations have been proposed starting from both the partial deduction and abstract interpretation perspectives. In this work we present what we argue is the first ful ..."
Abstract - Cited by 7 (7 self) - Add to MetaCart
Abstract. The relationship between abstract interpretation and partial deduction has received considerable attention and (partial) integrations have been proposed starting from both the partial deduction and abstract interpretation perspectives. In this work we present what we argue is the first fully described generic algorithm for efficient and precise integration of abstract interpretation and partial deduction. Taking as starting point state-of-the-art algorithms for context-sensitive, polyvariant abstract interpretation and (abstract) partial deduction, we present an algorithm which combines the best of both worlds. Key ingredients include the accurate success propagation inherent to abstract interpretation and the powerful program transformations achievable by partial deduction. In our algorithm, the calls which appear in the analysis graph are not analyzed w.r.t. the original definition of the procedure but w.r.t. specialized definitions of these procedures. Such specialized definitions are obtained by applying both unfolding and abstract executability. Our framework is parametric w.r.t. different control strategies and abstract domains. Different combinations of such parameters correspond to existing algorithms for program analysis and specialization. Simultaneously, our approach opens the door to the efficient computation of strictly more precise results than those achievable by each of the individual techniques. The algorithm is now one of the key components of the CiaoPP analysis and specialization system.

VADA: A transformation-based system for variable dependence analysis

by Mark Harman, Joachim Wegener - In IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2002 , 2002
"... Abstract Variable dependence is an analysis problem in whichthe aim is to determine the set of input variables that can affect the values stored in a chosen set of intermediateprogram variables. This paper shows the relationship between the vari-able dependence analysis problem and slicing and descr ..."
Abstract - Cited by 7 (4 self) - Add to MetaCart
Abstract Variable dependence is an analysis problem in whichthe aim is to determine the set of input variables that can affect the values stored in a chosen set of intermediateprogram variables. This paper shows the relationship between the vari-able dependence analysis problem and slicing and describes VADA, a system that implements variable depen-dence analysis. In order to cover the full range of C constructs andfeatures, a transformation to a core language is employed. Thus, the full analysis is required only for thecore language, which is relatively simple. This reduces the overall effort required for dependency analysis. Thetransformations used need preserve only the variable dependence relation, and therefore need not be meaningpreserving in the traditional sense. The paper describes how this relaxed meaning further simplifies the transfor-mation phase of the approach. Finally, the results of an empirical study into the performance of the system arepresented. 1

On abstraction in software verification

by Patrick Cousot, Radhia Cousot - In CAV 2002 , 2002
"... Abstract. We show that the precision of static abstract software checking algorithms can be enhanced by taking explicitly into account the abstractions semantics. This is illustrated on reachability analysis and abstract testing. 1 ..."
Abstract - Cited by 7 (1 self) - Add to MetaCart
Abstract. We show that the precision of static abstract software checking algorithms can be enhanced by taking explicitly into account the abstractions semantics. This is illustrated on reachability analysis and abstract testing. 1

Timing Analysis of Optimised Code

by Raimund Kirner, Peter Puschner, Technische Universität Wien - In Proc. 8th IEEE International Workshop on Object-oriented Real-time Dependable Systems (WORDS 2003 , 2002
"... Timing analysis is a crucial test for dependable hard real-time systems (DHRTS). The calculation of the worst-case execution time (WCET) is mandatory. As modern compilers are capable to produce small and efficient code, software development for DHRTS today is mostly done in high-level languages inst ..."
Abstract - Cited by 6 (4 self) - Add to MetaCart
Timing analysis is a crucial test for dependable hard real-time systems (DHRTS). The calculation of the worst-case execution time (WCET) is mandatory. As modern compilers are capable to produce small and efficient code, software development for DHRTS today is mostly done in high-level languages instead of assembly code. Execution path information available at source code (flow facts) therefore have to be transformed correctly in accordance with code optimisations by the compiler to allow safe and precise WCET analysis. In this paper we present a framework based on abstract interpretation to perform this mandatory transformation of flow facts. Conventional WCET analysis approaches use this information to analyse the object code.

Compiler Optimization Correctness by Temporal Logic

by David Lacey, Neil D. Jones, Eric Van Wyk, Carl Christian Frederiksen - Higher Order and Symbolic Computation , 2003
"... Rewrite rules with side conditions can elegantly express many classical compiler optimizations for imperative programming languages. In this paper, programs are written in an intermediate language and transformation-enabling side conditions are specified in a temporal logic suitable for describing p ..."
Abstract - Cited by 6 (2 self) - Add to MetaCart
Rewrite rules with side conditions can elegantly express many classical compiler optimizations for imperative programming languages. In this paper, programs are written in an intermediate language and transformation-enabling side conditions are specified in a temporal logic suitable for describing program data flow.
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University