Results 1 -
9 of
9
A General Framework for Semantics-based Bottom-up Abstract Interpretation of Logic Programs
- ACM Transactions on Programming Languages and Systems
, 1993
"... Interpretation of Logic Programs Roberto Barbuti , Roberto Giacobazzi , Giorgio Levi Dipartimento di Informatica Universit`a di Pisa Corso Italia 40, 56125 Pisa fbarbuti,giaco,levig@di.unipi.it in ACM Transactions on Programming Languages and Systems Vol 15, January 1993 Abstract The theory ..."
Abstract
-
Cited by 71 (25 self)
- Add to MetaCart
Interpretation of Logic Programs Roberto Barbuti , Roberto Giacobazzi , Giorgio Levi Dipartimento di Informatica Universit`a di Pisa Corso Italia 40, 56125 Pisa fbarbuti,giaco,levig@di.unipi.it in ACM Transactions on Programming Languages and Systems Vol 15, January 1993 Abstract The theory of abstract interpretation provides a formal framework to develop advanced dataflow analysis tools. The idea is to define a non-standard semantics which is able to compute, in finite time, an approximated model of the program. In this paper we define an abstract interpretation framework based on a fixpoint approach to the semantics. This leads to the definition, by means of a suitable set of operators, of an abstract fixpoint characterization of a -model associated with the program. Thus, we obtain a specializable abstract framework for bottom-up abstract interpretations of definite logic programs. The specialization of the framework is shown on two examples, namely ground dependence analysis and depth-k analysis.
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
Oracle Semantics for Prolog
- ALGEBRAIC AND LOGIC PROGRAMMING, PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE, VOLUME 632 OF LECTURE NOTES IN COMPUTER SCIENCE
, 1992
"... This paper proposes to specify semantic definitions for logic programming languages such as Prolog in terms of an oracle which specifies the control strategy and identifies which clauses are to be applied to resolve a given goal. The approach is quite general. It is applicable to Prolog to specify b ..."
Abstract
-
Cited by 15 (5 self)
- Add to MetaCart
This paper proposes to specify semantic definitions for logic programming languages such as Prolog in terms of an oracle which specifies the control strategy and identifies which clauses are to be applied to resolve a given goal. The approach is quite general. It is applicable to Prolog to specify both operational and declarative semantics as well as other logic programming languages. Previous semantic definitions for Prolog typically encode the sequential depth-first search of the language into various mathematical frameworks. Such semantics mimic a Prolog interpreter in the sense that following the "leftmost" infinite path in the computation tree excludes computation to the right of this path from being considered by the semantics. The basic idea in this paper is to abstract away from the sequential control of Prolog and to provide a declarative characterization of the clauses to apply to a given goal. The decision whether or not to apply a clause is viewed as a query to an oracle wh...
An Experiment in Domain Refinement: Type Domains and Type Representations for Logic Programs
, 1998
"... We apply the methodology of domain renement to systematically derive domains for type analysis. Domains are built by iterative application of the Heyting completion operator to a given set of basic types. We give a condition on the type system which assures that two steps of iteration are sucien ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
We apply the methodology of domain renement to systematically derive domains for type analysis. Domains are built by iterative application of the Heyting completion operator to a given set of basic types. We give a condition on the type system which assures that two steps of iteration are sucient to reach the xpoint. Moreover, we provide a general representation for type domains through transnite formulas. Finally, we show a subset of nite formulas which can be used as a computationally feasible implementation of the domains and we dene the corresponding abstract operators. Keywords: Abstract interpretation, abstract domain, static analysis, type analysis, logic programming. 1 Introduction Type analysis for untyped logic programs is useful both to the programmer (for debugging and verication) and to the compiler (for code optimization). This is the motivation of many dierent proposals for type analysis. It is hard to compare the various techniques in terms of precisio...
Polymorphic Type Analysis in Logic Programs by Abstract Interpretation
- Journal of Logic Programming
, 1998
"... INTERPRETATION LUNJIN LU LIX Ecole Polytechnique 91128 Palaiseau Cedex France Abstract In this paper, we first introduce a notion of polymorphic abstract interpretation that formalises a polymorphic analysis as a generalisation of possibly infinitely many monomorphic analyses in the sense that the ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
INTERPRETATION LUNJIN LU LIX Ecole Polytechnique 91128 Palaiseau Cedex France Abstract In this paper, we first introduce a notion of polymorphic abstract interpretation that formalises a polymorphic analysis as a generalisation of possibly infinitely many monomorphic analyses in the sense that the results of the monomorphic analyses can be obtained as instances of that of the polymorphic analysis. We then present a polymorphic type analysis of logic programs in terms of an abstract domain for polymorphic descriptions of type information and two operators on the abstract domain, namely the least upper bound operator and the abstract unification operator. The abstract domain captures type information more precisely than other abstract domains for similar purposes. The abstract unification operator for the polymorphic type analysis is designed by lifting the abstract unification operator for a monomorphic type analysis in logic programs, which simplifies the proof of the safeness of the...
Type Analysis of Logic Programs in the Presence of Type Definitions
- In Proceedings of the 1995 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based program manipulation
, 1995
"... This paper presents an abstract domain and an abstract unification function for type analysis of logic programs with type definitions. Type information is inferred together with sharing and aliasing information. Aliasing information is used to improve the precision of type analysis. 1 Introduction ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
This paper presents an abstract domain and an abstract unification function for type analysis of logic programs with type definitions. Type information is inferred together with sharing and aliasing information. Aliasing information is used to improve the precision of type analysis. 1 Introduction Prolog is a type-free language. The programmer does not have to specify the types of variables, functions and predicates. This may make it simple to write simple programs. However, it also makes it difficult to debug programs because type errors cannot be detected by Prolog systems. A type error will manifest itself in the form of a wrong result or a missing result rather than an indication of a type violation. There have been many efforts to augment Prolog with type systems in the forms of type checking systems [2, 11, 27] and type analysis systems. Type analysis systems infer types from the text of a program. Some type analysis systems infer a type for the program and the type is meant to ...
Fully automatic binding-time analysis for Prolog
- Proceedings LOPSTR 2004, LNCS 3573
, 2004
"... Abstract. Offline partial evaluation techniques rely on an annotated version of the source program to control the specialisation process. These annotations guide the specialisation and ensure the termination of the partial evaluation. We present an algorithm for generating these annotations automati ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
Abstract. Offline partial evaluation techniques rely on an annotated version of the source program to control the specialisation process. These annotations guide the specialisation and ensure the termination of the partial evaluation. We present an algorithm for generating these annotations automatically. The algorithm uses state-of-the-art termination analysis techniques, combined with a new type-based abstract interpretation for propagating the binding types. This algorithm has been implemented as part of the logen partial evaluation system, along with a graphical annotation visualiser and editor, and we report on the performance of the algorithm for a series of benchmarks. 1
Towards Soft Typing for CLP
- JICSLP'98 Post-Conference Workshop on Types for Constraint Logic Programming. Ecole Normale Superieure
, 1998
"... The paper links the goals to be achieved by a type system to the problem of partial correctness of CLP programs. Several concepts of type correctness of programs are identified by referring to various known concepts of partial correctness of programs. The type specifications considered in this pape ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
The paper links the goals to be achieved by a type system to the problem of partial correctness of CLP programs. Several concepts of type correctness of programs are identified by referring to various known concepts of partial correctness of programs. The type specifications considered in this paper attach a mode and a type to every predicate of CLP programs. The paper outlines a soft typing approach where optional type specifications given by the user are completed by type inference. Order-sorted languages of types are considered. This gives a natural framework for comparing prescriptive and descriptive typing approaches. We discuss how they achieve similar goals concerning program correctness with different perspectives and different methods. This opens for possible combinations. The paper illustrates the practicability and the usefulness of the soft typing for error detection and localisation by referring to a specific type inference system described in [16]. 1 Introduction Debug...
Type Inference in CHR Programs for the Composition of Constraint Systems
- In Proceedings of the 15th Workshop on Logic Programming (WLP00
, 2000
"... The definition of Constraint Handling Rules in (constraint)-logic programming systems is a glass-box-approach to extend these systems with new constraint symbols. ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
The definition of Constraint Handling Rules in (constraint)-logic programming systems is a glass-box-approach to extend these systems with new constraint symbols.

