Results 1  10
of
21
Operational Semantics for Declarative MultiParadigm Languages
 Journal of Symbolic Computation
, 2005
"... Abstract. In this paper we define an operational semantics for functional logic languages covering notions like laziness, sharing, concurrency, nondeterminism, etc. Such a semantics is not only important to provide appropriate language definitions to reason about programs and check the correctness ..."
Abstract

Cited by 57 (26 self)
 Add to MetaCart
Abstract. In this paper we define an operational semantics for functional logic languages covering notions like laziness, sharing, concurrency, nondeterminism, etc. Such a semantics is not only important to provide appropriate language definitions to reason about programs and check the correctness of implementations but it is also a basis to develop languagespecific tools, like program tracers, profilers, optimizers, etc. First, we define a &quot;bigstep &quot; semantics in natural style to relate expressions and their evaluated results. Since this semantics is not sufficient to cover concurrency, search strategies, or to reason about costs associated to particular computations, we also define a &quot;smallstep &quot; operational semantics covering the features of modern functional logic languages.
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.
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...
From Typing Constraints to Typed Constraint Systems in CHR
, 2001
"... Typing constraint programs requires the flexibility of subtyping to properly express coercions between constraint domains. The typing of constraint logic programs as done in the TCLP system for example involves solving complex subtyping constraints. In this paper we present an implementation in CHR ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
Typing constraint programs requires the flexibility of subtyping to properly express coercions between constraint domains. The typing of constraint logic programs as done in the TCLP system for example involves solving complex subtyping constraints. In this paper we present an implementation in CHR of Pottier's algorithm for checking the satisfiability of subtype inequalities. We show that when combined with a CHR implementation of an untyped constraint system, a simple merge of both CHR programs gives rise to a new typed constraint system which enjoys nice semantical properties. This is illustrated with examples of typed unification and TCLP programs.
Report of the Logic Programming Language PROTOSL
 REVISED VERSION: WORKING PAPER 4, IBM GERMANY, SCIENTIFIC CENTER, INSTITUTE FOR LOGICS AND LINGUISTICS
, 1994
"... PROTOSL is a language based on logic programming that integrates a variety of concepts for programming large knowledge based systems like a powerful type concept, a module concept, highlevel access to external relational databases, and finite domain constraints. The type concept covers user defin ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
PROTOSL is a language based on logic programming that integrates a variety of concepts for programming large knowledge based systems like a powerful type concept, a module concept, highlevel access to external relational databases, and finite domain constraints. The type concept covers user defined sorts, subsort relationships supporting multiple inheritance and parameterized sorts in the form of polymorphism. In addition to relations, also userdefined functions are available. The module concept is similar to that of Modula2 and allows to hide implementation details from the user of a module. Database access and modification is fully embedded in the programming language PROTOSL and can be programmed transparent to the user of a program or a program part. Besides simple links to external relations, nonrecursive as well as recursive function free deduction rules can be defined. PROTOSL also provides an easy way to work with windows via an objectoriented interface to the OSF/Mot...
TCLP: overloading, subtyping and parametric polymorphism made practical for constraint logic programming
, 2002
"... This paper is a continuation of our previous work on the TCLP type system for constraint logic programming. Here we introduce overloading in TCLP and describe a new implementation of TCLP in the Constraint Handling Rules language CHR. Overloading, that is assigning several types to symbols, e.g. ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
This paper is a continuation of our previous work on the TCLP type system for constraint logic programming. Here we introduce overloading in TCLP and describe a new implementation of TCLP in the Constraint Handling Rules language CHR. Overloading, that is assigning several types to symbols, e.g. for integer and floating point arithmetic, makes it possible to avoid subtype relations like integer subtype of float, that are not faithful to the behavior of some predicates, e.g. unification between an integer and its float representation fails in ISO Prolog. We describe
Sorted HiLog: Sorts in HigherOrder Logic Data Languages
 In Int’l Conference on Database Theory, number 893 in Lecture Notes in Computer Science
, 1994
"... HiLog enhances the modeling capabilities of deductive databases and logic programming with higherorder and metadata constructs, complex objects, and schema browsing. Its distinctive feature, a higherorder syntax with a firstorder semantics, allows for efficient implementation with speeds compara ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
HiLog enhances the modeling capabilities of deductive databases and logic programming with higherorder and metadata constructs, complex objects, and schema browsing. Its distinctive feature, a higherorder syntax with a firstorder semantics, allows for efficient implementation with speeds comparable to Prolog. In fact, HiLog implementation in XSB [30, 26] together with tabulated query evaluation offers impressive performance with negligible penalty for higherorder syntax, thereby bringing the modeling capabilities of HiLog to practical realization. The lack of sorts in HiLog, however, is somewhat of a problem in database applications, which led to a number of HiLog dialects such as DataHiLog [24]. This paper develops a comprehensive theory of sorts for HiLog. It supports HiLog's flexible higherorder syntax via a polymorphic and recursive sort structure, and it offers an easy and convenient mechanism to control the rules of wellformedness. By varying the sort structure we obtain ...
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
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...
Polymorphically ordersorted types in OBJ3
, 1997
"... . OBJ3 [GWM + 93] is a functional programming language with firstorder function types. OBJ3 has two special features: overloading of function symbols and the possibility to order the sorts. This ordering is induced by set inclusion on the carrier sets. We call the feature to be able to order ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
. OBJ3 [GWM + 93] is a functional programming language with firstorder function types. OBJ3 has two special features: overloading of function symbols and the possibility to order the sorts. This ordering is induced by set inclusion on the carrier sets. We call the feature to be able to order the sorts inclusion set subtyping. The algebraic semantics of OBJ3 is based on the theory of ordersorted algebras [GM89]. Furthermore, OBJ3 allows parameterized programming [Gog90]. However, the concepts of higherorder functions and parametric polymorphism are only emulated by parameters of OBJ3 modules. In this paper we show how to extend OBJ3 by parametric polymorphism in an elegant way. We call this extended language OBJP. In the second part of the paper we describe the operational semantics of OBJP. The operational semantics is a translation of OBJP programs into programs without overloading and subtypes. Here, we improve the approaches of Goguen, Jouannaud, and Mesegu...