Results 1  10
of
24
Fast and Precise Regular Approximation of Logic Programs
, 1993
"... A practical procedure for computing a regular approximation of a logic program is given. Regular approximations are useful in a variety of tasks in debugging, program specialisation and compiletime optimisation. The algorithm shown here incorporates optimisations taken from deductive database fixpo ..."
Abstract

Cited by 99 (19 self)
 Add to MetaCart
A practical procedure for computing a regular approximation of a logic program is given. Regular approximations are useful in a variety of tasks in debugging, program specialisation and compiletime optimisation. The algorithm shown here incorporates optimisations taken from deductive database fixpoint algorithms and efficient bottomup abstract interpretation techniques. Frameworks for defining regular approximations have been put forward in the past, but the emphasis has usually been on theoretical aspects. Our results contribute mainly to the development of effective analysis tools that can be applied to large programs. Precision of the approximation can be greatly improved by applying queryanswer transformations to a program and a goal, thus capturing some argument dependency information. A novel technique is to use transformations based on computation rules other than lefttoright to improve precision further. We give performance results for our procedure on a range of programs. 1
Logic Programming over Polymorphically OrderSorted Types
, 1989
"... This thesis presents the foundations for relational logic programming over polymorphically ordersorted data types. This type discipline combines the notion of parametric polymorphism, which has been developed for higherorder functional programming, with the notion of ordersorted typing, which ha ..."
Abstract

Cited by 58 (0 self)
 Add to MetaCart
This thesis presents the foundations for relational logic programming over polymorphically ordersorted data types. This type discipline combines the notion of parametric polymorphism, which has been developed for higherorder functional programming, with the notion of ordersorted typing, which has been developed for equational firstorder specification and programming. Polymorphically ordersorted types are obtained as canonical models of a class of specifications in a suitable logic accommodating sort functions. Algorithms for constraint solving, type checking and type inference are given and proven correct.
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.
The Type System of a HigherOrder Logic Programming Language
 TYPES IN LOGIC PROGRAMMING
, 1992
"... ..."
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.
Typebased {XML} Processing in Logic Programming
 In PADL 2003
, 2003
"... In this paper we propose a typebased framework for using logic programming for XML processing. We transform XML documents into terms and DTDs into regular types. We implemented a standard type inference algorithm for logic programs and use the types corresponding to the DTDs as additional type ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
In this paper we propose a typebased framework for using logic programming for XML processing. We transform XML documents into terms and DTDs into regular types. We implemented a standard type inference algorithm for logic programs and use the types corresponding to the DTDs as additional type declarations for logic programs for XML processing. Due to the correctness of the type inference this makes it possible to use logic programs as an implicitly typed processing language for XML with static type (in this case DTDs) validation. As far as we know this is the first work adding type validation at compile time to the use of logic programming for XML processing.
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.
Inference of Welltypings for Logic Programs with Application to Termination Analysis
, 2005
"... This paper develops a method to infer a polymorphic welltyping for a logic program. One of the main motivations is to contribute to a better automation of termination analysis in logic programs, by deriving types from which norms can automatically be constructed. Previous work on typebased termina ..."
Abstract

Cited by 11 (6 self)
 Add to MetaCart
This paper develops a method to infer a polymorphic welltyping for a logic program. One of the main motivations is to contribute to a better automation of termination analysis in logic programs, by deriving types from which norms can automatically be constructed. Previous work on typebased termination analysis used either types declared by the user, or automatically generated monomorphic types describing the success set of predicates. Declared types are typically more precise and result in stronger termination conditions than those obtained with inferred types. Our type inference procedure involves solving set constraints generated from the program and derives a welltyping in contrast to a successset approximation. Experiments show that our automatically inferred welltypings are close to the declared types and thus result in termination conditions that are as good as those obtained with declared types for all our experiments to date. We describe the method, its implementation and experiments with termination analysis based on the inferred types.