Results 1  10
of
19
A Finite Presentation Theorem for Approximating Logic Programs
 In Seventeenth Annual ACM Symposium on Principles of Programming Languages
, 1990
"... In program analysis, a key notion used to approximate the meaning of a program is that of ignoring intervariable dependencies. We formalize this notion in logic programming in order to define an approximation to the meaning of a program. The main result proves that this approximation is not only re ..."
Abstract

Cited by 94 (15 self)
 Add to MetaCart
In program analysis, a key notion used to approximate the meaning of a program is that of ignoring intervariable dependencies. We formalize this notion in logic programming in order to define an approximation to the meaning of a program. The main result proves that this approximation is not only recursive, but that it can be finitely represented in the form of a cyclic term graph. This explicit representation can be used as a starting point for logic program analyzers. A preliminary version appears in the Proceedings, 17 th ACM Symposium on POPL. y School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 152133890 z IBM Thomas J. Watson Research Center, PO Box 218, Yorktown Heights, NY 10598 Section 1: Introduction 1 1 Introduction The problem at hand is: given a logic program, obtain an approximation of its meaning, that is, obtain an approximation of its least model. The definition of the approximation should be declarative (so that results can be proved ab...
Type Dependencies for Logic Programs using ACIunification
 In Proceedings of the 1996 Israeli Symposium on Theory of Computing and Systems
, 1996
"... This paper presents a new notion of typing for logic programs which generalizes the notion of directional types. The generation of type dependencies for a logic program is fully automatic with respect to a given domain of types. The analysis method is based on a novel combination of program abstract ..."
Abstract

Cited by 43 (8 self)
 Add to MetaCart
This paper presents a new notion of typing for logic programs which generalizes the notion of directional types. The generation of type dependencies for a logic program is fully automatic with respect to a given domain of types. The analysis method is based on a novel combination of program abstraction and ACIunification which is shown to be correct and optimal. Type dependencies are obtained by abstracting programs, replacing concrete terms by their types, and evaluating the meaning of the abstract programs using a standard semantics for logic programs enhanced by ACIunification. This approach is generic and can be used with any standard semantics. The method is both theoretically clean and easy to implement using general purpose tools. The proposed domain of types is condensing which means that analyses can be carried out in both topdown or bottomup frameworks with no loss of precision for goalindependent analyses. The proposed method has been fully implemented within a bottomup approach and the experimental results are promising.
Deriving Polymorphic Type Dependencies for Logic Programs Using Multiple Incarnations of Prop
, 1994
"... . This paper illustrates the application of abstract compilation using multiple incarnations of the domain Prop in deriving type dependencies for logic programs. We illustrate how dependencies can be derived in the presence of both monomorphic and polymorphic type information. Type dependencies gene ..."
Abstract

Cited by 39 (9 self)
 Add to MetaCart
. This paper illustrates the application of abstract compilation using multiple incarnations of the domain Prop in deriving type dependencies for logic programs. We illustrate how dependencies can be derived in the presence of both monomorphic and polymorphic type information. Type dependencies generalize the recently proposed notion of directional types as well as the more common notion of groundness dependencies. Directional types have proven useful in a number of applications such as in proving termination. These applications, however, are based on type declarations. The main contribution of this paper is in the simplicity in which nontrivial type dependencies are inferred using abstract compilation and by associating each type with an incarnation of Prop. We illustrate the use of a semantics for open logic programs in maintaining space efficient analyses. Time efficiency is also maintained due to approximation of the type domain in a boolean lattice calling on results of universal...
Polymorphically Typed Logic Programs
 Types in Logic Programming
, 1991
"... We introduce polymorphically typed logic programs, an integration of a polymorphic type system with logic programs. The firstorder notion of predicates is extended to parametric predicates, which are parameterized by types. The type system accommodates both subtypes and parametric polymorphism. It ..."
Abstract

Cited by 28 (2 self)
 Add to MetaCart
We introduce polymorphically typed logic programs, an integration of a polymorphic type system with logic programs. The firstorder notion of predicates is extended to parametric predicates, which are parameterized by types. The type system accommodates both subtypes and parametric polymorphism. It unifies features of valuebased and namebased approaches. The denotation of a typed logic program is given by its type completion, a transformation that incorporates explicit type conditions into a parametric logic program. The result of the transformation is a restricted form of a HiLog program. We give fixpoint semantics to our language (actually to full HiLog). We define a notion of welltyping, which relates type declarations for predicates in the program to an approximation of the denotation of the type completed program. We present a typechecking algorithm for verifying that a program is indeed welltyped. Finally we discuss some extensions to the type system.
Type Inferencing for Polymorphic OrderSorted Logic Programs
 PROCEEDINGS OF THE TWELFTH INTERNATIONAL CONFERENCE ON LOGIC PROGRAMMING
, 1995
"... The purpose of this paper is to study the problem of complete type inferencing for polymorphic ordersorted logic programs. We show that previous approaches are incomplete even if one does not employ the full power of the used type systems. We present a complete type inferencing algorithm that cover ..."
Abstract

Cited by 23 (0 self)
 Add to MetaCart
The purpose of this paper is to study the problem of complete type inferencing for polymorphic ordersorted logic programs. We show that previous approaches are incomplete even if one does not employ the full power of the used type systems. We present a complete type inferencing algorithm that covers the polymorphic ordersorted types in PROTOSL, a logic programming language that allows for polymorphism as in ML and for hierarchically structured monomorphic types.
Semantic Types for Logic Programs
, 1992
"... Interpretation: Towards the Global Optimisation of PROLOG Programs", Proceedings 4 th IEEE Symposium on Logic Programming, pp 192  204, September 1987. [2] F. G`ecseg and M. Steinby, "Tree Automata", Akad`emiai Kiad`o, Budapest, 1984. [3] "Elementary Logic Programming Types", draft manuscript, Ju ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
Interpretation: Towards the Global Optimisation of PROLOG Programs", Proceedings 4 th IEEE Symposium on Logic Programming, pp 192  204, September 1987. [2] F. G`ecseg and M. Steinby, "Tree Automata", Akad`emiai Kiad`o, Budapest, 1984. [3] "Elementary Logic Programming Types", draft manuscript, July 1987. [4] N. Heintze and J. Jaffar, "A Finite Presentation Theorem for Approximating Logic Programs", IBM Research Report RC 16089 (#71415), 6 Sept. 90. (An extended abstract appears in Proc. ACMPOPL90.) [5] N. Heintze and J. Jaffar, "A Decision Procedure for a Class of Set Constraints", forthcoming CMU techical report, February 1991. (An extended abstract appears in Proc. IEEE LICS90.) [6] T. Kanamori and K. Horiuchi, "Type Inference in PROLOG and its Applications", Proc. 9 th Intl. Joint Conf. on Artificial Intelligence, Vol. 2, pp 704  707, 1985. [7] F. Kluzniak, "Type Synthesis for Ground PROLOG", Proceedings 4 th Intl. Conf. on Logic Programming, MIT Press, pp 788  816, J...
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 12 (9 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...
A FirstOrder Theory of Types and Polymorphism in Logic Programming
 Department of Computer Science, University at Stony Brook
, 1990
"... We describe a new logic called typed predicate calculus (T PC) that gives declarative meaning to logic programs with type declarations and type inference. T PC supports all popular types of polymorphism, such as parametric, inclusion, and ad hoc polymorphism. The proper interaction between parametri ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
We describe a new logic called typed predicate calculus (T PC) that gives declarative meaning to logic programs with type declarations and type inference. T PC supports all popular types of polymorphism, such as parametric, inclusion, and ad hoc polymorphism. The proper interaction between parametric and inclusion varieties of polymorphism is achieved through a new construct, called type dependency, which is reminiscent of implication types of [PR89] but yields more natural and succinct specifications. Unlike other proposals where typing has extralogical status, in T PC the notion of typecorrectness has precise modeltheoretic meaning that is independent of any specific typechecking or typeinference procedure. Moreover, many different approaches to typing that were proposed in the past can be studied and compared within the framework of our logic. As an illustration, we apply T PC to interpret and compare the results reported in [MO84, Smo88, HT90, Mis84, XW88]. Another novel featu...
Approximating Constraint Logic Programs Using . . .
 DEPARTMENT OF COMPUTER SCIENCE, UNIVERSITY OF BRISTOL
, 1995
"... Approximate descriptions of the success set of a program have many uses in program development and optimisation. For untyped logic programming languages, regular approximation is a practical and useful tool. In this paper we consider the problem of approximating the meaning of programs in which s ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
Approximate descriptions of the success set of a program have many uses in program development and optimisation. For untyped logic programming languages, regular approximation is a practical and useful tool. In this paper we consider the problem of approximating the meaning of programs in which some #polymorphic# type information is given. This situation can arise in constraint logic programming languages. In untyped languages the user could impose types on selected symbols. Even in strongly typed languages wemay be able to derive more precise descriptions of the meaning, or to consider restricted uses of polymorphic typed predicates. We propose a practical twostage method: #rst the original program is transformed by replacing typed arguments by corresponding polymorphic type terms. For welltyped programs the resulting program is an abstraction of the original. Second, an established algorithm for regular approximation is applied to the transformed program. The algorithm is guaranteed to terminate without using arti#cial techniques such as depthk bounds on #type# terms. The derived description combines polymorphic type terms, including union types, with regular descriptions of untyped terms. The method allows goaldependent analysis as well as goalindependent analysis of a complete program. We show some experimental results demonstrating the speed and precision of the method and show that it scales up well when applied to larger programs.
SetBased Analysis for Logic Programming and Tree Automata
 In Proceedings of the Static Analysis Symposium, SAS'97, volume 1302 of LNCS
, 1997
"... . Compiletime program analysis aims to extract from a program properties useful for efficient implementations and sofware verification. A property of interest is the computational semantics of a program. For decidability reasons, only an approximation of this semantics can be computed. Setbased an ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
. Compiletime program analysis aims to extract from a program properties useful for efficient implementations and sofware verification. A property of interest is the computational semantics of a program. For decidability reasons, only an approximation of this semantics can be computed. Setbased analysis [Hei92a] provides an elegant and accurate method for this. In the logic programming framework, this computation can be related to type inference [MR85]. In [FSVY91], a simpler presentation based on program transformation and algorithms on alternating tree automata is proposed. Unfortunately, the authors focussed on type checking (i:e: a membership test to the approximate semantics). We propose in this paper a new method to achieve setbased analysis reusing the main transformation described in [FSVY91]. The main tool for both computation and representation of the result of setbased analysis is tree automata. This leads to a global and coherent presentation of the problem of setbased...