Results 1 
7 of
7
POLYMORPHIC TYPE ANALYSIS IN LOGIC PROGRAMS BY ABSTRACT INTERPRETATION
 J. LOGIC PROGRAMMING 1994:19, 20:1–679
, 1994
"... 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 polymorp ..."
Abstract

Cited by 12 (9 self)
 Add to MetaCart
(Show Context)
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 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 polymorphic type analysis. Some experimental results with a prototype implementation of the polymorphic type analysis are also presented.
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 12 (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...
Type Analysis of Logic Programs in the Presence of Type Definitions
 In Proceedings of the 1995 ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBased 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 7 (5 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 typefree 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 ...
Generalising Def and Pos to Type Analysis
 Journal of Logic and Computation
, 2002
"... This paper is concerned with the type analysis of logic programs where, by type, we mean a property closed under instantiation. We de ne a chain of abstractions from Herbrand constraints to logical formulas via the set of their solutions. Every step of the chain is an instance of abstract interpret ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
This paper is concerned with the type analysis of logic programs where, by type, we mean a property closed under instantiation. We de ne a chain of abstractions from Herbrand constraints to logical formulas via the set of their solutions. Every step of the chain is an instance of abstract interpretation. The use of logical formulas for type analysis is a generalisation of the traditional Boolean domains Def and Pos for groundness analysis. In this context, implication is the logical counterpart of the use of linear re nement. While logical formulas can sometime be used for an actual implementation of our domains, in the general case they are in nite objects. Therefore, we apply a nal abstraction from possibly in nite logical formulas to ( nite) logic programs. Thus, logic programs are themselves used for the type analysis of logic programs.
Polymorphic Types in HigherOrder Logic Programming
, 1993
"... This paper analyses the requirements to the notion of type correctness in logic programming and proposes several "adequacy" criteria for such a system. We then present a type theory for a higherorder logic programming language, HiLog [5], which is adequate in that sense. The proposed type ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
(Show Context)
This paper analyses the requirements to the notion of type correctness in logic programming and proposes several "adequacy" criteria for such a system. We then present a type theory for a higherorder logic programming language, HiLog [5], which is adequate in that sense. The proposed type system not only captures type errors of syntactic origin, but also ensures that all atoms true in a canonical model (such as the perfect model or the wellfounded partial model) of a welltyped program are welltyped. Furthermore, type dependencies among arguments of functions and/or predicates are incorporated into the definition of welltyped terms and atoms, so that the benefits of both parametric and inclusion polymorphism are preserved. Finally types are treated as firstclass objects and type declarations can be queried directly by users, making it a suitable framework for schema integration of heterogeneous databases. Keywords: types, inclusion and parametric polymorphism, type dependency, arg...
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 glassboxapproach to extend these systems with new constraint symbols. ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
The definition of Constraint Handling Rules in (constraint)logic programming systems is a glassboxapproach to extend these systems with new constraint symbols.
An Algorithm for Finite Approximations of Definite Programs and its Implementation in Prolog
, 1992
"... In this paper, we first review a bottomup abstract interpretation framework for finite approximations of definite programs that are characterised by abstraction functions. For each such abstraction function ff, a finite approximation of the least fixpoint semantics is given as the least fixpoint of ..."
Abstract
 Add to MetaCart
(Show Context)
In this paper, we first review a bottomup abstract interpretation framework for finite approximations of definite programs that are characterised by abstraction functions. For each such abstraction function ff, a finite approximation of the least fixpoint semantics is given as the least fixpoint of a function \Phi P