Results 1 - 10
of
17
Systematic Design of Program Transformation Frameworks by Abstract Interpretation
, 2002
"... We introduce a general uniform language-independent framework for designing online and offline source-to-source program transformations by abstract interpretation of program semantics. Iterative source-to-source program transformations are designed constructively by composition of source-to-semantic ..."
Abstract
-
Cited by 45 (5 self)
- Add to MetaCart
We introduce a general uniform language-independent framework for designing online and offline source-to-source program transformations by abstract interpretation of program semantics. Iterative source-to-source program transformations are designed constructively by composition of source-to-semantics, semantics-totransformed semantics and semantics-to-source abstractions applied to fixpoint trace semantics. The correctness of the transformations is expressed through observational and performance abstractions. The framework is illustrated on three examples: constant propagation, program specialization by online and offline partial evaluation and static program monitoring.
Abstract interpretation based formal methods and future challenges, invited paper
- Informatics — 10 Years Back, 10 Years Ahead, volume 2000 of Lecture Notes in Computer Science
, 2001
"... Abstract. In order to contribute to the solution of the software reliability problem, tools have been designed to analyze statically the run-time behavior of programs. Because the correctness problem is undecidable, some form of approximation is needed. The purpose of abstract interpretation is to f ..."
Abstract
-
Cited by 22 (6 self)
- Add to MetaCart
Abstract. In order to contribute to the solution of the software reliability problem, tools have been designed to analyze statically the run-time behavior of programs. Because the correctness problem is undecidable, some form of approximation is needed. The purpose of abstract interpretation is to formalize this idea of approximation. We illustrate informally the application of abstraction to the semantics of programming languages as well as to static program analysis. The main point is that in order to reason or compute about a complex system, some information must be lost, that is the observation of executions must be either partial or at a high level of abstraction. In the second part of the paper, we compare static program analysis with deductive methods, model-checking and type inference. Their foundational ideas are briefly reviewed, and the shortcomings of these four methods are discussed, including when they should be combined. Alternatively, since program debugging is still the main program verification
Quantitative Relations and Approximate Process Equivalences
, 2003
"... We introduce a characterisation of probabilistic transition systems (PTS) in terms of linear operators on some suitably defined vector space representing the set of states. Various notions of process equivalences can then be re-formulated as abstract linear operators related to the concrete PTS sem ..."
Abstract
-
Cited by 20 (10 self)
- Add to MetaCart
We introduce a characterisation of probabilistic transition systems (PTS) in terms of linear operators on some suitably defined vector space representing the set of states. Various notions of process equivalences can then be re-formulated as abstract linear operators related to the concrete PTS semantics via a probabilistic abstract interpretation. These process equivalences can be turned into corresponding approximate notions by identifying processes whose abstract operators "differ" by a given quantity, which can be calculated as the norm of the difference operator. We argue that this number can be given a statistical interpretation in terms of the tests needed to distinguish two behaviours.
Abstract interpretation of programs as Markov decision processes
- Science of Computer Programming 58
, 2005
"... Abstract. We propose a formal language for the specification of trace properties of probabilistic, nondeterministic transition systems, encompassing the properties expressible in Linear Time Logic. Those formulas are in general undecidable on infinite deterministic transition systems and thus on inf ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
Abstract. We propose a formal language for the specification of trace properties of probabilistic, nondeterministic transition systems, encompassing the properties expressible in Linear Time Logic. Those formulas are in general undecidable on infinite deterministic transition systems and thus on infinite Markov decision processes. This language has both a semantics in terms of sets of traces, as well as another semantics in terms of measurable functions; we give and prove theorems linking the two semantics. We then apply abstract interpretation-based techniques to give upper bounds on the worst-case probability of the studied property. We propose an enhancement of this technique when the state space is partitioned — for instance along the program points —, allowing the use of faster iteration methods. 1
An Abstract Monte-Carlo Method for the Analysis of Probabilistic Programs
, 2001
"... Monte-Carlo Method for the Analysis of Probabilistic Programs # David Monniaux Ecole Normale Superieure Laboratoire d'Informatique 45, rue d'Ulm 75230 Paris cedex 5 France David.Monniaux@ens.fr ABSTRACT We introduce a new method, combination of random testing and abstract interpretation, fo ..."
Abstract
-
Cited by 10 (3 self)
- Add to MetaCart
Monte-Carlo Method for the Analysis of Probabilistic Programs # David Monniaux Ecole Normale Superieure Laboratoire d'Informatique 45, rue d'Ulm 75230 Paris cedex 5 France David.Monniaux@ens.fr ABSTRACT We introduce a new method, combination of random testing and abstract interpretation, for the analysis of programs featuring both probabilistic and non-probabilistic nondeterminism. After introducing "ordinary" testing, we show how to combine testing and abstract interpretation and give formulas linking the precision of the results to the number of iterations. We then discuss complexity and optimization issues and end with some experimental results. 1 INTRODUCTION We introduce a generic method that lifts an ordinary abstract interpretation scheme to an analyzer yielding upper bounds on the probability of certain outcomes, taking into account both randomness and ordinary nondeterminism. 1.1 Motivations It is sometimes desirable to estimate the probability of certain outcomes...
An overview of semantics for the validation of numerical programs
- In VMCAI, volume 3385 of LNCS
, 2005
"... Interval computations, stochastic arithmetic, automatic differentiation, etc.: much work is currently done to estimate and to improve the numerical accuracy of programs but few comparative studies have been carried out. In this article, we introduce a simple formal semantics for floating point numbe ..."
Abstract
-
Cited by 10 (3 self)
- Add to MetaCart
Interval computations, stochastic arithmetic, automatic differentiation, etc.: much work is currently done to estimate and to improve the numerical accuracy of programs but few comparative studies have been carried out. In this article, we introduce a simple formal semantics for floating point numbers with errors which is expressive enough to be formally compared to the other methods. Next, we define formal semantics for interval, stochastic, automatic differentiation and error series methods. This enables us to formally compare the properties calculated in each semantics to our reference, simple semantics. Most of these methods having been developed to verify numerical intensive codes, we also discuss their adequacy to the formal validation of softwares and to static analysis. Finally, this study is completed by experimental results. 1
Static Analyses of Floating-Point Operations
- In SAS’01, volume 2126 of LNCS
, 2001
"... Computers manipulate approximations of real numbers, called floating-point numbers. The calculations they make are accurate enough for most applications. Unfortunately, in some (catastrophic) situations, the floating-point operations lose so much precision that they quickly become irrelevant. In thi ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Computers manipulate approximations of real numbers, called floating-point numbers. The calculations they make are accurate enough for most applications. Unfortunately, in some (catastrophic) situations, the floating-point operations lose so much precision that they quickly become irrelevant. In this article, we review some of the problems one can encounter, focussing on the IEEE754-1985 norm. We give a (sketch of a) semantics of its basic operations then abstract them (in the sense of abstract interpretation) to extract information about the possible loss of precision. The expected application is abstract debugging of software ranging from simple on-board systems (which use more and more on-the-shelf micro-processors with floating-point units) to scientific codes. The abstract analysis is demonstrated on simple examples and compared with related work. 1
Backwards abstract interpretation of probabilistic programs
- IN EUROPEAN SYMPOSIUM ON PROGRAMMING LANGUAGES AND SYSTEMS (ESOP '01), NUMBER 2028 IN LECTURE NOTES IN COMPUTER SCIENCE
, 2001
"... ..."
An abstract analysis of the probabilistic termination of programs
- In Proc. of The 8th Internat. Static Analysis Symposium
, 2001
"... Abstract. It is often useful to introduce probabilistic behavior in programs, either because of the use of internal random generators (probabilistic algorithms), either because of some external devices (networks, physical sensors) with known statistics of behavior. Previous works on probabilistic ab ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Abstract. It is often useful to introduce probabilistic behavior in programs, either because of the use of internal random generators (probabilistic algorithms), either because of some external devices (networks, physical sensors) with known statistics of behavior. Previous works on probabilistic abstract interpretation have addressed safety properties, but somehow neglected probabilistic termination. In this paper, we propose a method to automatically prove the probabilistic termination of programs using exponential bounds on the tail of the distribution. We apply this method to an example and give some directions as to how to implement it. We also show that this method can also be applied to make unsound statistical methods on average running times sound. 1

