Results 1  10
of
58
A framework of directionality for proving termination of logic programs
 Proc. JICSLP
, 1992
"... internet: ..."
(Show Context)
Higher Order Logic
 In Handbook of Logic in Artificial Intelligence and Logic Programming
, 1994
"... Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2 The expressive power of second order Logic : : : : : : : : : : : 3 2.1 The language of second order logic : : : : : : : : : : : : : 3 2.2 Expressing size : : : : : : : : : : : : : : : : : : : : : : : : 4 2.3 Definin ..."
Abstract

Cited by 24 (0 self)
 Add to MetaCart
Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2 The expressive power of second order Logic : : : : : : : : : : : 3 2.1 The language of second order logic : : : : : : : : : : : : : 3 2.2 Expressing size : : : : : : : : : : : : : : : : : : : : : : : : 4 2.3 Defining data types : : : : : : : : : : : : : : : : : : : : : 6 2.4 Describing processes : : : : : : : : : : : : : : : : : : : : : 8 2.5 Expressing convergence using second order validity : : : : : : : : : : : : : : : : : : : : : : : : : 9 2.6 Truth definitions: the analytical hierarchy : : : : : : : : 10 2.7 Inductive definitions : : : : : : : : : : : : : : : : : : : : : 13 3 Canonical semantics of higher order logic : : : : : : : : : : : : 15 3.1 Tarskian semantics of second order logic : : : : : : : : : 15 3.2 Function and re
Implementing Polymorphic Typing in a Logic Programming Language
 COMPUTER LANGUAGES
, 1993
"... Introducing types into a logic programming language leads to the need for typed unification within the computation model. In the presence of polymorphism and higherorder features, this aspect forces analysis of types at runtime. We propose extensions to the Warren Abstract Machine (WAM) that permi ..."
Abstract

Cited by 18 (11 self)
 Add to MetaCart
Introducing types into a logic programming language leads to the need for typed unification within the computation model. In the presence of polymorphism and higherorder features, this aspect forces analysis of types at runtime. We propose extensions to the Warren Abstract Machine (WAM) that permit such analysis to be done with reasonable efficiency. Much information about the structures of types is present at compiletime, and we show that this information can be used to considerably reduce the work during execution. We illustrate our ideas in the context of a typed version of Prolog. We describe a modified representation for terms, new instructions and additional data areas that in conjunction with existing WAM structures suffice to implement this language. The nature of compiled code is illustrated through examples, and the kind of runtime overheads that are incurred for processing types is analyzed, especially in those cases where others have shown that type checking can be eliminated during execution. The ideas
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 15 (7 self)
 Add to MetaCart
(Show Context)
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.
A typed foundation for directional logic programming
 In Proc. Workshop on Extensions to Logic Programming
, 1992
"... Abstract. A long standing problem in logic programming is how to impose directionality on programs in a safe fashion. The benefits of directionality include freedom from explicit sequential control, the ability to reason about algorithmic properties of programs (such as termination, complexity and d ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
(Show Context)
Abstract. A long standing problem in logic programming is how to impose directionality on programs in a safe fashion. The benefits of directionality include freedom from explicit sequential control, the ability to reason about algorithmic properties of programs (such as termination, complexity and deadlockfreedom) and controlling concurrency. By using Girard’s linear logic, we are able to devise a type system that combines types and modes into a unified framework, and enables one to express directionality declaratively. The rich power of the type system allows outputs to be embedded in inputs and vice versa. Type checking guarantees that values have unique producers, but multiple consumers are still possible. From a theoretical point of view, this work provides a “logic programming interpretation ” of (the proofs of) linear logic, adding to the concurrency and functional programming interpretations that are already known. It also brings logic programming into the broader world of typed languages and typesaspropositions paradigm, enriching it with static scoping and higherorder features.
Type Checking and Type Inferencing for Logic Programs with Subtypes and Parametric Polymorphism
 Subtypes and Parametric Polymorphism, Informatik Berichte 200, Fern Universitat
, 1996
"... We analyze basic shortcomings of existing proposals for type checking and type inferencing in logic programming languages. A new type system is presented using simple and declarative type annotations. It includes parametric polymorphism and subtyping. Static type checking and inferencing within the ..."
Abstract

Cited by 10 (3 self)
 Add to MetaCart
We analyze basic shortcomings of existing proposals for type checking and type inferencing in logic programming languages. A new type system is presented using simple and declarative type annotations. It includes parametric polymorphism and subtyping. Static type checking and inferencing within the new type system is able to detect more programming errors than in other comparable systems. Our approach is independent of a specific resolution calculus and therefore applicable to a wide range of logic languages. A type inferencing algorithm is presented for reconstructing variable typings. As a concrete instance, the results were applied to unrestricted standard Prolog with type annotations, for which a type checking and type inferencing tool is available. This report is part of the documentation for a type checking tool available at !URL:http://www.fernunihagen.de/pi8/typical/?. It is complemented by a report "On the Use of Types in Logic Programming" [Mey96]. Research supported by ...
BindingTime Analysis for Mercury
 16th International Conference on Logic Programming, pages 500 { 514
, 1999
"... . In this paper, we describe a bindingtime analysis (BTA) for a statically typed and strongly moded pure logic programming language, in casu Mercury. Bindingtime analysis is the key concept in achieving oline program specialisation: the analysis starts from a description of the program's ..."
Abstract

Cited by 10 (5 self)
 Add to MetaCart
(Show Context)
. In this paper, we describe a bindingtime analysis (BTA) for a statically typed and strongly moded pure logic programming language, in casu Mercury. Bindingtime analysis is the key concept in achieving oline program specialisation: the analysis starts from a description of the program's input available for specialisation, and propagates this information throughout the program, deriving directives for when and how to perform specialisation. 1
A New Framework for Declarative Programming
, 2001
"... We propose a new indexedcategory syntax and semantics of Weak Hereditarily Harrop logic programming with constraints, based on resolution over taucategories:finite product categories with canonical structure. ..."
Abstract

Cited by 10 (3 self)
 Add to MetaCart
(Show Context)
We propose a new indexedcategory syntax and semantics of Weak Hereditarily Harrop logic programming with constraints, based on resolution over taucategories:finite product categories with canonical structure.
HM(X) Type Inference is CLP(X) Solving
 UNDER CONSIDERATION FOR PUBLICATION IN J. FUNCTIONAL PROGRAMMING
"... The HM(X) system is a generalization of the Hindley/Milner system parameterized in the constraint domain X. Type inference is performed by generating constraints out of the program text which are then solved by the domain specific constraint solver X. The solver has to be invoked at the latest when ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
The HM(X) system is a generalization of the Hindley/Milner system parameterized in the constraint domain X. Type inference is performed by generating constraints out of the program text which are then solved by the domain specific constraint solver X. The solver has to be invoked at the latest when type inference reaches a let node so that we can build a polymorphic type. A typical example of such an inference approach is Milner’s algorithm W. We formalize an inference approach where the HM(X) type inference problem is first mapped to a CLP(X) program. The actual type inference is achieved by executing the CLP(X) program. Such an inference approach supports the uniform construction of type inference algorithms and has important practical consequences when it comes to reporting type errors. The CLP(X) style inference system where X is defined by Constraint Handling Rules is implemented as part of the Chameleon system.