• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

A First-order Theory of Types and Polymorphism in Logic Programming (1992)

by J J Wu
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 11
Next 10 →

Logical foundations of object-oriented and frame-based languages

by Michael Kifer, Georg Lausen, James Wu - JOURNAL OF THE ACM , 1995
"... We propose a novel formalism, called Frame Logic (abbr., F-logic), that accounts in a clean and declarative fashion for most of the structural aspects of object-oriented and frame-based languages. These features include object identity, complex objects, inheritance, polymorphic types, query methods, ..."
Abstract - Cited by 708 (56 self) - Add to MetaCart
We propose a novel formalism, called Frame Logic (abbr., F-logic), that accounts in a clean and declarative fashion for most of the structural aspects of object-oriented and frame-based languages. These features include object identity, complex objects, inheritance, polymorphic types, query methods, encapsulation, and others. In a sense, F-logic stands in the same relationship to the objectoriented paradigm as classical predicate calculus stands to relational programming. F-logic has a model-theoretic semantics and a sound and complete resolution-based proof theory. A small number of fundamental concepts that come from object-oriented programming have direct representation in F-logic; other, secondary aspects of this paradigm are easily modeled as well. The paper also discusses semantic issues pertaining to programming with a deductive object-oriented language based on a subset of F-logic.

Querying object-oriented databases

by Michael Kifer, Won Kim, Yehoshua Sagiv - ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA , 1992
"... We present a novel language for querying object-oriented databases. The language is built around the idea of extended path expressions that substantially generalize [ZAN83], and on an adaptation of the first-order formalization of object-oriented languages from [KW89, KLW90, KW92]. The language inco ..."
Abstract - Cited by 450 (5 self) - Add to MetaCart
We present a novel language for querying object-oriented databases. The language is built around the idea of extended path expressions that substantially generalize [ZAN83], and on an adaptation of the first-order formalization of object-oriented languages from [KW89, KLW90, KW92]. The language incorporates features not found in earlier proposals; it is easier to use and has greater expressive power. Some of the salient features of our language are: ffl Precise model-theoretic semantics. ffl A very expressive form of path expressions that not only can do joins, selections and unnesting, but can also be used to explore the database schema. ffl Views can be defined and manipulated in a much more uniform way than in other proposals. ffl Database schema can be explored in the very same language that is used to retrieve data. Unlike in relational languages, the user needs not know anything about the system tables that store schema information. ffl The notions of a type and type-correctness have precise meaning. It accommodates a wide variety of queries that might be deemed well- or ill-typed under different circumstances. In particular, we show that there is more than one way of settling the issue of type correctness. For expository purposes and due to space limitation, we chose to make a number of simplifying assumptions and left some features out. A more complete account can be found in [KSK92].

Type Dependencies for Logic Programs using ACI-unification

by Michael Codish, Vitaly Lagoon - In Proceedings of the 1996 Israeli Symposium on Theory of Computing and Systems , 1996
"... This paper presents a new notion of typing for logic programs which generalizes the notion of directional types. The generation of type dependencies for a logic program is fully automatic with respect to a given domain of types. The analysis method is based on a novel combination of program abstract ..."
Abstract - Cited by 38 (8 self) - Add to MetaCart
This paper presents a new notion of typing for logic programs which generalizes the notion of directional types. The generation of type dependencies for a logic program is fully automatic with respect to a given domain of types. The analysis method is based on a novel combination of program abstraction and ACI-unification which is shown to be correct and optimal. Type dependencies are obtained by abstracting programs, replacing concrete terms by their types, and evaluating the meaning of the abstract programs using a standard semantics for logic programs enhanced by ACI-unification. This approach is generic and can be used with any standard semantics. The method is both theoretically clean and easy to implement using general purpose tools. The proposed domain of types is condensing which means that analyses can be carried out in both top-down or bottom-up frameworks with no loss of precision for goal-independent analyses. The proposed method has been fully implemented within a bottom-up approach and the experimental results are promising.

Deductive and Object Data Languages: A Quest for Integration

by Michael Kifer - Proceedings of the International Conference on Deductive and Object-Oriented Databases , 1995
"... . According to rumors, the early hybrids of object-oriented and deductive languages were mutants that escaped from secret Government AI labs. Whether this is true or not, the fact is that by mid-80's, database and logic programming communities began to take notice. The temptation was hard to resist: ..."
Abstract - Cited by 19 (0 self) - Add to MetaCart
. According to rumors, the early hybrids of object-oriented and deductive languages were mutants that escaped from secret Government AI labs. Whether this is true or not, the fact is that by mid-80's, database and logic programming communities began to take notice. The temptation was hard to resist: the object-oriented paradigm provides a better way of manipulating structured objects, while logic and deduction offer the power and flexibility of ad hoc querying and reasoning. Thus, hybrid languages have the potential for becoming an ideal turf for cultivating the next generation of information systems. The approaches to integration of the two paradigms range from logicbased languages with unified declarative semantics, to message-passing prologs, to Prolog/C++ cocktails. In the past eight years, my colleagues and I have been developing a unified object-based logic intended to capture most of the essentials of the object-oriented paradigm. The overall plot here is that once the fundament...

Type Checking and Type Inferencing for Logic Programs with Subtypes and Parametric Polymorphism

by Gregor Meyer - 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.fernuni-hagen.de/pi8/typical/?. It is complemented by a report "On the Use of Types in Logic Programming" [Mey96]. Research supported by ...

The Completion of Typed Logic Programs and SLDNF-Resolution

by P.M. Hill , 1993
"... We consider logic programming languages with a parametric type system, first described by Mycroft and O'Keefe, that allows generic polymorphism. It is well known that provided certain conditions hold typed definite logic programs do not go wrong under SLD-resolution. Previous work has looked at ..."
Abstract - Cited by 5 (1 self) - Add to MetaCart
We consider logic programming languages with a parametric type system, first described by Mycroft and O'Keefe, that allows generic polymorphism. It is well known that provided certain conditions hold typed definite logic programs do not go wrong under SLD-resolution. Previous work has looked at how these conditions may be avoided by adding run-time type checking to the SLD-resolution. However, only definite programs have been considered and the program's theory was assumed to be given by the statements of the program and not its completion. This paper establishes results showing that the conditions are also necessary for almost all typed logic programs if the declarative semantics is the completion semantics and the procedural semantics is based on SLDNF-resolution. 1 Introduction The type system considered here is parametric. Parametric type systems have been described in a number of papers, including [2], [3], [6], [7], [8], [10], [11], and [13]. Such a type system is one...

Polymorphic Types in Higher-Order Logic Programming

by Weidong Chen, Michael Kifer , 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 higher-order logic programming language, HiLog [5], which is adequate in that sense. The proposed type system no ..."
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 higher-order 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 well-founded partial model) of a well-typed program are well-typed. 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 first-class 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...

On the Use of Types in Logic Programming

by Gregor Meyer , 1996
"... In procedural and functional languages it is rather clear what a type error is and the main purpose of typing is to detect programming errors automatically. Furthermore, in these languages the semantics of a program is usually independent of types. Type systems for logic programming languages differ ..."
Abstract - Cited by 4 (2 self) - Add to MetaCart
In procedural and functional languages it is rather clear what a type error is and the main purpose of typing is to detect programming errors automatically. Furthermore, in these languages the semantics of a program is usually independent of types. Type systems for logic programming languages differ considerably on these aspects. We will show that these differences lead to several theoretical and practical problems. The mixture of static type checking purposes on the one hand and computations with type constraints in the CLP(X) style on the other hand will be marked as the central source of problems. As a solution we propose a typing scheme which separates these issues. We distinguish three almost independent dimensions of types in logic programming: types as approximations, types as constraints and types for proving partial correctness. Based on the notion of useless expressions, we develop a method that allows static program analysis for finding type errors, which enables error detec...

Sorted HiLog: Sorts in Higher-Order Logic Data Languages

by Weidong Chen, Michael Kifer - 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 higher-order and meta-data constructs, complex objects, and schema browsing. Its distinctive feature, a higher-order syntax with a first-order 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 higher-order and meta-data constructs, complex objects, and schema browsing. Its distinctive feature, a higher-order syntax with a first-order 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 higher-order 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 higher-order syntax via a polymorphic and recursive sort structure, and it offers an easy and convenient mechanism to control the rules of well-formedness. By varying the sort structure we obtain ...

Constructive Negation Using Typed Existence Properties

by John Cleary, Lunjin Lu - Proceedings of PLILP/ALP98 , 1998
"... . A method for extracting positive information from negative goals is proposed. The method makes use of knowledge about the existence of solutions of predicates and about the types of variables. It strictly generalises earlier work in this area. It can be used as a construction rule or as a simplifi ..."
Abstract - Cited by 1 (1 self) - Add to MetaCart
. A method for extracting positive information from negative goals is proposed. The method makes use of knowledge about the existence of solutions of predicates and about the types of variables. It strictly generalises earlier work in this area. It can be used as a construction rule or as a simplification rule. As a construction rule it does not involve an SLD-derivation of the negated sub-goal and so is applicable during compilation. As a simplification rule it prunes unsatisfiable goals without doing an explicit satisfiability test. Keywords: constructive negation, existence properties, type system 1 Introduction The "negation by failure" rule, NAF for short, may lead to floundering when negative goals contain variables. The reason is that NAF doesn't allow negative goals to bind variables. To overcome this limitation, Chan introduces the "constructive negation" rule which allows non-ground negative goals to bind variables in the same way as positive ones [2, 3]. The basic idea i...
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University