Automatic modular abstractions for linear constraints
Author:
Open Access
- 21 January 2009
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 44 (1) , 140-151
Abstract
We propose a method for automatically generating abstract transformers for static analysis by abstract interpretation. The method focuses on linear constraints on programs operating on rational, real or floating-point variables and containing linear assignments and tests. In addition to loop-free code, the same method also applies for obtaining least fixed points as functions of the precondition, which permits the analysis of loops and recursive functions. Our algorithms are based on new quantifier elimination and symbolic manipulation techniques. Given the specification of an abstract domain, and a program block, our method automatically outputs an implementation of the corresponding abstract transformer. It is thus a form of program transformation. The motivation of our work is data-flow synchronous programming languages, used for building control-command embedded systems, but it also applies to imperative and functional programming.Keywords
All Related Versions
This publication has 31 references indexed in Scilit:
- Precise widening operators for convex polyhedraScience of Computer Programming, 2005
- Proving Program Invariance and Termination by Parametric Abstraction, Lagrangian Relaxation and Semidefinite Programming2005
- Widening Operators for Weakly-Relational Numeric AbstractionsLecture Notes in Computer Science, 2005
- Computer Aided Verification2005
- Analyzing Memory Accesses in x86 Executables2004
- From simulink to SCADE/lustre to TTAACM SIGPLAN Notices, 2003
- A static analyzer for large safety-critical software2003
- Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software2002
- Abstract interpretation and application to logic programsThe Journal of Logic Programming, 1992
- LUSTRE: a declarative language for real-time programming1987