Results 1  10
of
24
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 19 (3 self)
 Add to MetaCart
(Show Context)
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 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 ...
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
(Show Context)
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.
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...
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
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
(Show Context)
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
 THEORY AND PRACTICE OF LOGIC PROGRAMMING
, 2001
"... 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 3 (2 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.
Java type unification with wildcards
 In Proceedings of 17th International Conference on Applications of Declarative Programming and Knowledge Management and 21st Workshop on (Constraint) Logic Programming
, 2007
"... Abstract. With the introduction of Java 5.0 the type system has been extended by parameterized types, type variables, type terms, and wildcards. As a result very complex types can arise. The term Vector<? extends Vector<AbstractList<Integer>>> is for example a correct type in Java ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Abstract. With the introduction of Java 5.0 the type system has been extended by parameterized types, type variables, type terms, and wildcards. As a result very complex types can arise. The term Vector<? extends Vector<AbstractList<Integer>>> is for example a correct type in Java 5.0. In this paper we present a type unification algorithm for Java 5.0 type terms. The algorithm unifies type terms, which are in subtype relationship. For this we define Java 5.0 type terms and its subtyping relation, formally. As Java 5.0 allows wildcards as instances of generic types, the subtyping ordering contains infinite chains. We show that the type unification is still finitary. We give a type unification algorithm, which calculates the finite set of general unifiers. 1
An emptiness algorithm for regular types with set operators
, 1998
"... Abstract. 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 anot ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
Abstract. 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.