Results 1  10
of
16
Recursive abstract state machines
 J. of Universal Computer Science
, 1997
"... Abstract: As introduced in the Lipari guide, Abstract State Machines (abbreviated as ASMs) are untyped. This is useful for many purposes. However, typed languages have their own advantages. Types structure the data, type checking uncovers errors. Here we propose a typed version of ASMs. ..."
Abstract

Cited by 18 (4 self)
 Add to MetaCart
Abstract: As introduced in the Lipari guide, Abstract State Machines (abbreviated as ASMs) are untyped. This is useful for many purposes. However, typed languages have their own advantages. Types structure the data, type checking uncovers errors. Here we propose a typed version of ASMs.
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 9 (2 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 ...
Using Modes to Ensure Subject Reduction for Typed Logic Programs with Subtyping
, 2000
"... We consider a general prescriptive type system with parametric polymorphism and subtyping for logic programs. The property of subject reduction expresses the consistency of the type system w.r.t. the execution model: if a program is welltyped, then all derivations starting in a welltyped goal are ..."
Abstract

Cited by 8 (7 self)
 Add to MetaCart
We consider a general prescriptive type system with parametric polymorphism and subtyping for logic programs. The property of subject reduction expresses the consistency of the type system w.r.t. the execution model: if a program is welltyped, then all derivations starting in a welltyped goal are again welltyped. It is wellestablished that without subtyping, this property is readily obtained for logic programs w.r.t. their standard (untyped) execution model. Here we give syntactic conditions that ensure subject reduction also in the presence of general subtyping relations between type constructors. The idea is to consider logic programs with a xed dataow, given by modes.
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.
Lazy Narrowing with Parametric Order Sorted Types
 Procs. ALPHOA'97, LNCS 1298
, 1997
"... Recently, a model theoretic semantics for lazy functional programming combining parametric and inclusion polymorphism has been proposed in [2]. The aim of the present work is to provide the previous one with the incorporation of a typed lazy narrowing calculus for goal solving which combines laz ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Recently, a model theoretic semantics for lazy functional programming combining parametric and inclusion polymorphism has been proposed in [2]. The aim of the present work is to provide the previous one with the incorporation of a typed lazy narrowing calculus for goal solving which combines lazy unification, sharing and type checking at runtime. Furthermore, we state soundness and completeness results of the goal solving procedure w.r.t. the typed rewriting calculi presented in [2] which were proved to be also sound and complete w.r.t. the notion of model in [2]. Thus, all theoretical results described there are also preserved in this framework. 1
A Generic Type System for CLP(X)
 Ecole Normale Superieure LIENS
, 1997
"... We propose a generic static type system for Constraint Logic Programming including subtyping and parametric polymorphism. The first aim of this prescriptive type system is to detect type errors statically in CLP programs. The system introduces a type discipline on the way CLP programs and libraries ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
We propose a generic static type system for Constraint Logic Programming including subtyping and parametric polymorphism. The first aim of this prescriptive type system is to detect type errors statically in CLP programs. The system introduces a type discipline on the way CLP programs and libraries can be composed, while still maintaining the ability to type metaprogramming predicates, thanks to the flexibility of subtyping. We show that subject reduction holds under very general assumptions. We give a polynomialtime algorithm for type checking, and we indicate that type inference for variables and predicates is possible in the universe of infinite regular types, but is an open problem in the universe of finite types. 1 Introduction The class of Constraint Logic Programming languages, CLP(X ), as introduced by Jaffar and Lassez [18], is a class of programming languages based on the logic programming paradigm, parametrized by some mathematical structure X , the domain of discourse. C...
On the DartZobel algorithm for testing regular type inclusion
 SIGPLAN Notices
, 2001
"... This paper answers open questions about the correctness and the completeness of DartZobel algorithm for testing the inclusion relation between two regular types. We show that the algorithm is complete but incorrect for regular types. ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
This paper answers open questions about the correctness and the completeness of DartZobel algorithm for testing the inclusion relation between two regular types. We show that the algorithm is complete but incorrect for regular types.
Typing Constraint Logic Programs
"... We present a prescriptive type system with parametric polymorphism and subtyping for constraint logic programs. The aim of this type system is to detect programming errors statically. It introduces a type discipline for constraint logic programs and modules, while maintaining the capabilities of per ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We present a prescriptive type system with parametric polymorphism and subtyping for constraint logic programs. The aim of this type system is to detect programming errors statically. It introduces a type discipline for constraint logic programs and modules, while maintaining the capabilities of performing the usual coercions between constraint domains, and of typing metaprogramming predicates, thanks to the exibility of subtyping. The property of subject reduction expresses the consistency of a prescriptive type system w.r.t. the execution model: if a program is \welltyped", then all derivations starting from a \welltyped" goal are again \welltyped". That property is proved w.r.t. the abstract execution model of constraint programming which proceeds by accumulation of constraints only, and w.r.t. an enriched execution model with type constraints for substitutions. We describe our implementation of the system for type checking and type inference. We report our experimental results on type checking ISOProlog, the (constraint) libraries of Sicstus Prolog and other Prolog programs.
An Emptiness Algorithm for Regular Types with Set Operators
, 1998
"... . An algorithm to decide the emptiness of a regular type expression with set operators given a set of parameterised type definitions is presented. The algorithm can also be used to decide the equivalence of two regular type expressions and the inclusion of one regular type expression in another. The ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
. An algorithm to decide the emptiness of a regular type expression with set operators given a set of parameterised type definitions is presented. The algorithm can also be used to decide the equivalence of two regular type expressions and the inclusion of one regular type expression in another. The algorithm strictly generalises previous work in that tuple distributivity is not assumed and set operators are permitted in type expressions. Keywords: type, emptiness, prescriptive type 1 Introduction Types play an important role in programming languages [6]. They make programs easier to understand and help detect errors. Types have been introduced into logic programming in the forms of type checking and inference [5,9,12,26,32] or type analysis [25,33,17,19,13,22,7,23] or typed languages [16,21,28,31]. Recent logic programming systems allow the programmer to declare types for predicates and type errors are then detected either at compile time or at run time. The reader is referred to [2...
Improving Computations in a Typed Functional Logic Language
"... . We propose an implementation of a functional logic language with parametric order sorted types by translating typed lazy narrowing into Prolog, and establishing a reasonable strategy of combination of data and type constraints solving. By means of this translation, we describe how types can be ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
. We propose an implementation of a functional logic language with parametric order sorted types by translating typed lazy narrowing into Prolog, and establishing a reasonable strategy of combination of data and type constraints solving. By means of this translation, we describe how types can be used at runtime to prune the search space of solutions of a goal. Moreover, we present type inference and checking compiletime tools for the language showing its usefulness for improving computations. 1 Introduction The combination of different declarative (specially functional and logic) paradigms has been widely investigated during the last decade (see [13] for a survey) and as a consequence, several wellknown functional logic languages arose, using lazy narrowing as goal solving mechanism. More recently, the language CURRY [11, 14] integrates the most important features from functional, logic and concurrent programming, providing a common platform for the research and the applic...