4 research outputs found
Program Synthesis and Linear Operator Semantics
For deterministic and probabilistic programs we investigate the problem of
program synthesis and program optimisation (with respect to non-functional
properties) in the general setting of global optimisation. This approach is
based on the representation of the semantics of programs and program fragments
in terms of linear operators, i.e. as matrices. We exploit in particular the
fact that we can automatically generate the representation of the semantics of
elementary blocks. These can then can be used in order to compositionally
assemble the semantics of a whole program, i.e. the generator of the
corresponding Discrete Time Markov Chain (DTMC). We also utilise a generalised
version of Abstract Interpretation suitable for this linear algebraic or
functional analytical framework in order to formulate semantical constraints
(invariants) and optimisation objectives (for example performance
requirements).Comment: In Proceedings SYNT 2014, arXiv:1407.493
Probabilistically Accurate Program Transformations
18th International Symposium, SAS 2011, Venice, Italy, September 14-16, 2011. ProceedingsThe standard approach to program transformation involves the use of discrete logical reasoning to prove that the transformation does not change the observable semantics of the program. We propose a new approach that, in contrast, uses probabilistic reasoning to justify the application of transformations that may change, within probabilistic accuracy bounds, the result that the program produces.
Our new approach produces probabilistic guarantees of the form ℙ(|D| ≥ B) ≤ ε, ε ∈ (0, 1), where D is the difference between the results that the transformed and original programs produce, B is an acceptability bound on the absolute value of D, and ε is the maximum acceptable probability of observing large |D|. We show how to use our approach to justify the application of loop perforation (which transforms loops to execute fewer iterations) to a set of computational patterns.National Science Foundation (U.S.) (Grant CCF-0811397)National Science Foundation (U.S.) (Grant CCF-0905244)National Science Foundation (U.S.) (Grant CCF-1036241)National Science Foundation (U.S.) (Grant IIS-0835652)United States. Dept. of Energy (Grant DE-SC0005288
A systematic approach to probabilistic pointer analysis
We present a formal framework for syntax directed probabilistic program analysis. Our focus is on probabilistic pointer analysis. We show how to obtain probabilistic points-to matrices and their relational counterparts in a systematic way via Probabilistic Abstract Interpretation (PAI). The analysis is based on a non-standard semantics for a simple imperative language which corresponds to a Discrete-Time Markov Chain (DTMC). The generator of this DTMC is constructed by composing (via tensor product) the probabilistic control flow of the program and the data updates of the different variables at individual program points. The dimensionality of the concrete semantics is in general prohibitively large but abstraction (via PAI) allows for a drastic (exponential) reduction of size