Making abstract models complete

2014 ◽  
Vol 26 (4) ◽  
pp. 658-701 ◽  
Author(s):  
ROBERTO GIACOBAZZI ◽  
ISABELLA MASTROENI

Completeness is a key feature of abstract interpretation. It corresponds to exactness of the abstraction of fix-points and relies upon the need of absence of false alarms in static program analysis. Making abstract interpretation complete is therefore a major problem in approximating the semantics of programming languages. In this paper, we consider the problem of making abstract interpretations complete by minimally modifying the predicate transformer, i.e. the semantics, of a program. We study the mathematical properties of complete functions on complete lattices and prove the existence of minimal transformations of monotone functions to achieve completeness. We then apply minimal complete transformers to prove the minimality of standard program transformations in security, such as static program monitoring.

1990 ◽  
Vol 19 (329) ◽  
Author(s):  
Flemming Nielson

The research summarised here concerns theoretical aspects involved in the implementation of programming languages directly from a description of their semantics. This involves a study of the subtasks <em> abstract interpretation</em> (a framework for program analysis), <em> code generation</em> and <em> program transformation</em> and the main aim has been to ensure the <em> correctness</em> of these subtasks.


1981 ◽  
Vol 10 (131) ◽  
Author(s):  
Flemming Nielson

<p>Abstract Interpretation (P. Cousot, R. Cousot and others) is a method for program analysis that is able to describe many data flow analyses. We investigate and weaken the assumptions made in abstract interpretation and express abstract interpretation within Denotational Semantics. As an example we specify constant propagation.</p><p>Some authors have used abstract interpretation to formulate ''available expressions'' (a so-called ''history-sensitive'' data flow analysis). Our development of ''available expressions'' is better justified, semantically.</p><p>In traditional data flow analysis and abstract interpretation it is generally assumed that the ''Meet Over all Paths'' solution is wanted. We prove that the solution specified by our approach is the ''Meet Over all Paths'' solution to a certain system of equations obtained from the program.</p><p>To indicate the usefulness of our approach we show how to validate a class of program transformations, including ''constant folding''.</p><p>Throughout this paper we use a toy language consisting of declarations, expressions and commands (involving conditional and iteration). Excluded are procedures and jumps.</p>


1995 ◽  
Vol 24 (493) ◽  
Author(s):  
Hanne Riis Nielson ◽  
Kirsten Lackner Solberg

<p>As a satellite meeting of the TAPSOFT'95 conference we organized a small workshop on program analysis. The title of the workshop, ``Types for Program Analysis´´, was motivated by the recent trend of letting the presentation and development of program analyses be influenced by annotated type systems, effect systems, and more general logical systems. The contents of the workshop was intended to be somewhat broader; consequently the call for participation listed the following areas of interest:</p><p>- specification of specific analyses for programming languages,</p><p>- the role of effects, polymorphism, conjunction/disjunction types, dependent types etc.in specification of analyses,</p><p>- algorithmic tools and methods for solving general classes of type-based analyses,</p><p>- the role of unification, semi-unification etc. in implementations of analyses,</p><p>- proof techniques for establishing the safety of analyses,</p><p>- relationship to other approaches to program analysis, including abstract interpretation and constraint-based methods,</p><p>- exploitation of analysis results in program optimization and implementation.</p><p>The submissions were not formally refereed; however each submission was read by several members of the program committee and received detailed comments and suggestions for improvement. We expect that several of the papers, in slightly revised forms, will show up at future conferences. The workshop took place at Aarhus University on May 26 and May 27 and lasted two half days.</p>


2022 ◽  
Vol 6 (POPL) ◽  
pp. 1-31
Author(s):  
Marco Campion ◽  
Mila Dalla Preda ◽  
Roberto Giacobazzi

Imprecision is inherent in any decidable (sound) approximation of undecidable program properties. In abstract interpretation this corresponds to the release of false alarms, e.g., when it is used for program analysis and program verification. As all alarming systems, a program analysis tool is credible when few false alarms are reported. As a consequence, we have to live together with false alarms, but also we need methods to control them. As for all approximation methods, also for abstract interpretation we need to estimate the accumulated imprecision during program analysis. In this paper we introduce a theory for estimating the error propagation in abstract interpretation, and hence in program analysis. We enrich abstract domains with a weakening of a metric distance. This enriched structure keeps coherence between the standard partial order relating approximated objects by their relative precision and the effective error made in this approximation. An abstract interpretation is precise when it is complete. We introduce the notion of partial completeness as a weakening of precision. In partial completeness the abstract interpreter may produce a bounded number of false alarms. We prove the key recursive properties of the class of programs for which an abstract interpreter is partially complete with a given bound of imprecision. Then, we introduce a proof system for estimating an upper bound of the error accumulated by the abstract interpreter during program analysis. Our framework is general enough to be instantiated to most known metrics for abstract domains.


Author(s):  
Ash Asudeh ◽  
Gianluca Giorgolo

This book presents a theory of enriched meanings for natural language interpretation. Certain expressions that exhibit complex effects at the semantics/pragmatics boundary live in an enriched meaning space while others live in a more basic meaning space. These basic meanings are mapped to enriched meanings just when required compositionally, which avoids generalizing meanings to the worst case. The theory is captured formally using monads, a concept from category theory. Monads are also prominent in functional programming and have been successfully used in the semantics of programming languages to characterize certain classes of computation. They are used here to model certain challenging linguistic computations at the semantics/pragmatics boundary. Part I presents some background on the semantics/pragmatics boundary, informally presents the theory of enriched meanings, reviews the linguistic phenomena of interest, and provides the necessary background on category theory and monads. Part II provides novel compositional analyses of the following phenomena: conventional implicature, substitution puzzles, and conjunction fallacies. Part III explores the prospects of combining monads, with particular reference to these three cases. The authors show that the compositional properties of monads model linguistic intuitions about these cases particularly well. The book is an interdisciplinary contribution to Cognitive Science: These phenomena cross not just the boundary between semantics and pragmatics, but also disciplinary boundaries between Linguistics, Philosophy and Psychology, three of the major branches of Cognitive Science, and are here analyzed with techniques that are prominent in Computer Science, a fourth major branch. A number of exercises are provided to aid understanding, as well as a set of computational tools (available at the book's website), which also allow readers to develop their own analyses of enriched meanings.


1980 ◽  
Vol 3 (1) ◽  
pp. 105-116
Author(s):  
Bruno Courcelle ◽  
Jean-Claude Raoult

We give a completion theorem for ordered magmas (i.e. ordered algebras with monotone operations) in a general form. Particular instances of this theorem are already known, and new results follow. The semantics of programming languages is the motivation of such investigations.


2009 ◽  
Vol 43 (12) ◽  
pp. 32-39 ◽  
Author(s):  
Marco Pistoia ◽  
Úlfar Erlingsson

Sign in / Sign up

Export Citation Format

Share Document