314 research outputs found

    The design and implementation of a relational programming system.

    Get PDF
    The declarative class of computer languages consists mainly of two paradigms - the logic and the functional. Much research has been devoted in recent years to the integration of the two with the aim of securing the advantages of both without retaining their disadvantages. To date this research has, arguably, been less fruitful than initially hoped. A large number of composite functional/logical languages have been proposed but have generally been marred by the lack of a firm, cohesive, mathematical basis. More recently new declarative paradigms, equational and constraint languages, have been advocated. These however do not fully encompass those features we perceive as being central to functional and logic languages. The crucial functional features are higher-order definitions, static polymorphic typing, applicative expressions and laziness. The crucial logic features are ability to reason about both functional and non-functional relationships and to handle computations involving search. This thesis advocates a new declarative paradigm which lies midway between functional and logic languages - the so-called relational paradigm. In a relationallanguage program and data alike are denoted by relations. All expressions are relations constructed from simpler expressions using operators which form a relational algebra. The impetus for use of relations in a declarative language comes from observations concerning their connection to functional and logic programming. Relations are mathematically more general than functions modelling non-functional as well as functional relationships. They also form the basis of many logic languages, for example, Prolog. This thesis proposes a new relational language based entirely on binary relations, named Drusilla. We demonstrate the functional and logic aspects of Drusilla. It retains the higher-order objects and polymorphism found in modern functional languages but handles non-determinism and models relationships between objects in the manner of a logic language with notion of algorithm being composed of logic and control elements. Different programming styles - functional, logic and relational- are illustrated. However, such expressive power does not come for free; it has associated with it a high cost of implementation. Two main techniques are used in the necessarily complex language interpreter. A type inference system checks programs to ensure they are meaningful and simultaneously performs automatic representation selection for relations. A symbolic manipulation system transforms programs to improve. efficiency of expressions and to increase the number of possible representations for relations while preserving program meaning

    Parallelism in declarative languages

    Get PDF
    Imperative programming languages were initially built for uniprocessor systems that evolved out of the Von Neumann machine model. This model of storage oriented computation blocks parallelism and increases the cost of parallel program development and porting. Declarative languages based on mathematical models of computation, seem more suitable for the development of parallel programs. In the first part of this thesis we examine different language families under the declarative paradigm: functional, logic, and constraint languages. Functional languages are based on the abstract model of functions and (lamda)-calculus. They were initially developed for symbolic computation, but today they are commonly used in numerical analysis and many other application areas. Pure lisp is a widely known member of this class. Logic languages are based on first order predicate calculus. Although they were initially developed for theorem proving, fifth generation operating systems are written in them. Most logic languages are descendants or distant relatives of Prolog. Constraint languages are related to logic languages. In a constraint language you define a program object by placing constraints on its structure and its behavior. They were initially used in graphics applications, but today researchers work on using them in parallel computation. Here we will compare and contrast the language classes above, locate advantages and deficiencies, and explain different choices made by language implementors. In the second part of thesis we describe a front end for the CONSUL, a prototype constraint language for programming multiprocessors. The most important features of the front end are compact representation of constraints, type definitions, functional use of relations, and the ability to split programs into multiple files

    A predicated network formalism for commonsense reasoning.

    Get PDF
    Chiu, Yiu Man Edmund.Thesis submitted in: December 1999.Thesis (M.Phil.)--Chinese University of Hong Kong, 2000.Includes bibliographical references (leaves 269-248).Abstracts in English and Chinese.Abstract --- p.iAcknowledgments --- p.iiiChapter 1 --- Introduction --- p.1Chapter 1.1 --- The Beginning Story --- p.2Chapter 1.2 --- Background --- p.3Chapter 1.2.1 --- History of Nonmonotonic Reasoning --- p.3Chapter 1.2.2 --- Formalizations of Nonmonotonic Reasoning --- p.6Chapter 1.2.3 --- Belief Revision --- p.13Chapter 1.2.4 --- Network Representation of Knowledge --- p.17Chapter 1.2.5 --- Reference from Logic Programming --- p.21Chapter 1.2.6 --- Recent Work on Network-type Automatic Reasoning Sys- tems --- p.22Chapter 1.3 --- A Novel Inference Network Approach --- p.23Chapter 1.4 --- Objectives --- p.23Chapter 1.5 --- Organization of the Thesis --- p.24Chapter 2 --- The Predicate Inference Network PIN --- p.25Chapter 2.1 --- Preliminary Terms --- p.26Chapter 2.2 --- Overall Structure --- p.27Chapter 2.3 --- Object Layer --- p.29Chapter 2.3.1 --- Virtual Object --- p.31Chapter 2.4 --- Predicate Layer --- p.33Chapter 2.4.1 --- Node Values --- p.34Chapter 2.4.2 --- Information Source --- p.35Chapter 2.4.3 --- Belief State --- p.36Chapter 2.4.4 --- Predicates --- p.37Chapter 2.4.5 --- Prototypical Predicates --- p.37Chapter 2.4.6 --- Multiple Inputs for a Single Belief --- p.39Chapter 2.4.7 --- External Program Call --- p.39Chapter 2.5 --- Variable Layer --- p.40Chapter 2.6 --- Inter-Layer Links --- p.42Chapter 2.7 --- Chapter Summary --- p.43Chapter 3 --- Computation for PIN --- p.44Chapter 3.1 --- Computation Functions for Propagation --- p.45Chapter 3.1.1 --- Computational Functions for Combinative Links --- p.45Chapter 3.1.2 --- Computational Functions for Alternative Links --- p.49Chapter 3.2 --- Applying the Computation Functions --- p.52Chapter 3.3 --- Relations Represented in PIN --- p.55Chapter 3.3.1 --- Relations Represented by Combinative Links --- p.56Chapter 3.3.2 --- Relations Represented by Alternative Links --- p.59Chapter 3.4 --- Chapter Summary --- p.61Chapter 4 --- Dynamic Knowledge Update --- p.62Chapter 4.1 --- Operations for Knowledge Update --- p.63Chapter 4.2 --- Logical Expression --- p.63Chapter 4.3 --- Applicability of Operators --- p.64Chapter 4.4 --- Add Operation --- p.65Chapter 4.4.1 --- Add a fully instantiated single predicate proposition with no virtual object --- p.66Chapter 4.4.2 --- Add a fully instantiated pure disjunction --- p.68Chapter 4.4.3 --- Add a fully instantiated expression which is a conjunction --- p.71Chapter 4.4.4 --- Add a human biased relation --- p.74Chapter 4.4.5 --- Add a single predicate expression with virtual objects --- p.76Chapter 4.4.6 --- Add a IF-THEN rule --- p.80Chapter 4.5 --- Remove Operation --- p.88Chapter 4.5.1 --- Remove a Belief --- p.88Chapter 4.5.2 --- Remove a Rule --- p.91Chapter 4.6 --- Revise Operation --- p.94Chapter 4.6.1 --- Revise a Belief --- p.94Chapter 4.6.2 --- Revise a Rule --- p.96Chapter 4.7 --- Consistency Maintenance --- p.97Chapter 4.7.1 --- Logical Suppression --- p.98Chapter 4.7.2 --- Example on Handling Inconsistent Information --- p.99Chapter 4.8 --- Chapter Summary --- p.102Chapter 5 --- Knowledge Query --- p.103Chapter 5.1 --- Domains of Quantification --- p.104Chapter 5.2 --- Reasoning through Recursive Rules --- p.109Chapter 5.2.1 --- Infinite Looping Control --- p.110Chapter 5.2.2 --- Proof of the finite termination of recursive rules --- p.111Chapter 5.3 --- Query Functions --- p.117Chapter 5.4 --- Type I Queries --- p.119Chapter 5.4.1 --- Querying a Simple Single Predicate Proposition (Type I) --- p.122Chapter 5.4.2 --- Querying a Belief with Logical Connective(s) (Type I) --- p.128Chapter 5.5 --- Type II Queries --- p.132Chapter 5.5.1 --- Querying Single Predicate Expressions (Type II) --- p.134Chapter 5.5.2 --- Querying an Expression with Logical Connectives (Type II) --- p.143Chapter 5.6 --- Querying an Expression with Virtual Objects --- p.152Chapter 5.6.1 --- Type I Queries Involving Virtual Object --- p.152Chapter 5.6.2 --- Type II Queries involving Virtual Objects --- p.156Chapter 5.7 --- Chapter Summary --- p.157Chapter 6 --- Uniqueness and Finite Termination --- p.159Chapter 6.1 --- Proof Structure --- p.160Chapter 6.2 --- Proof for Completeness and Finite Termination of Domain Search- ing Procedure --- p.161Chapter 6.3 --- Proofs for Type I Queries --- p.167Chapter 6.3.1 --- Proof for Single Predicate Expressions --- p.167Chapter 6.3.2 --- Proof of Type I Queries on Expressions with Logical Con- nectives --- p.172Chapter 6.3.3 --- General Proof for Type I Queries --- p.174Chapter 6.4 --- Proofs for Type II Queries --- p.175Chapter 6.4.1 --- Proof for Type II Queries on Single Predicate Expressions --- p.176Chapter 6.4.2 --- Proof for Type II Queries on Disjunctions --- p.178Chapter 6.4.3 --- Proof for Type II Queries on Conjunctions --- p.179Chapter 6.4.4 --- General Proof for Type II Queries --- p.181Chapter 6.5 --- Proof for Queries Involving Virtual Objects --- p.182Chapter 6.6 --- Uniqueness and Finite Termination of PIN Queries --- p.183Chapter 6.7 --- Chapter Summary --- p.184Chapter 7 --- Lifschitz's Benchmark Problems --- p.185Chapter 7.1 --- Structure --- p.186Chapter 7.2 --- Default Reasoning --- p.186Chapter 7.2.1 --- Basic Default Reasoning --- p.186Chapter 7.2.2 --- Default Reasoning with Irrelevant Information --- p.187Chapter 7.2.3 --- Default Reasoning with Several Defaults --- p.188Chapter 7.2.4 --- Default Reasoning with a Disabled Default --- p.190Chapter 7.2.5 --- Default Reasoning in Open Domain --- p.191Chapter 7.2.6 --- Reasoning about Unknown Exceptions I --- p.193Chapter 7.2.7 --- Reasoning about Unknown Exceptions II --- p.194Chapter 7.2.8 --- Reasoning about Unknown Exceptions III --- p.196Chapter 7.2.9 --- Priorities between Defaults --- p.198Chapter 7.2.10 --- Priorities between Instances of a Default --- p.199Chapter 7.2.11 --- Reasoning about Priorities --- p.199Chapter 7.3 --- Inheritance --- p.200Chapter 7.3.1 --- Linear Inheritance --- p.200Chapter 7.3.2 --- Tree-Structured Inheritance --- p.202Chapter 7.3.3 --- One-Step Multiple Inheritance --- p.203Chapter 7.3.4 --- Multiple Inheritance --- p.204Chapter 7.4 --- Uniqueness of Names --- p.205Chapter 7.4.1 --- Unique Names Hypothesis for Objects --- p.205Chapter 7.4.2 --- Unique Names Hypothesis for Functions --- p.206Chapter 7.5 --- Reasoning about Action --- p.206Chapter 7.6 --- Autoepistemic Reasoning --- p.206Chapter 7.6.1 --- Basic Autoepistemic Reasoning --- p.206Chapter 7.6.2 --- Autoepistemic Reasoning with Incomplete Information --- p.207Chapter 7.6.3 --- Autoepistemic Reasoning with Open Domain --- p.207Chapter 7.6.4 --- Autoepistemic Default Reasoning --- p.208Chapter 8 --- Comparison with PROLOG --- p.214Chapter 8.1 --- Introduction of PROLOG --- p.215Chapter 8.1.1 --- Brief History --- p.215Chapter 8.1.2 --- Structure and Inference --- p.215Chapter 8.1.3 --- Why Compare PIN with Prolog --- p.216Chapter 8.2 --- Representation Power --- p.216Chapter 8.2.1 --- Close World Assumption and Negation as Failure --- p.216Chapter 8.2.2 --- Horn Clauses --- p.217Chapter 8.2.3 --- Quantification --- p.218Chapter 8.2.4 --- Build-in Functions --- p.219Chapter 8.2.5 --- Other Representation Issues --- p.220Chapter 8.3 --- Inference and Query Processing --- p.220Chapter 8.3.1 --- Unification --- p.221Chapter 8.3.2 --- Resolution --- p.222Chapter 8.3.3 --- Computation Efficiency --- p.225Chapter 8.4 --- Knowledge Updating and Consistency Issues --- p.227Chapter 8.4.1 --- PIN and AGM Logic --- p.228Chapter 8.4.2 --- Knowledge Merging --- p.229Chapter 8.5 --- Chapter Summary --- p.229Chapter 9 --- Conclusion and Discussion --- p.230Chapter 9.1 --- Conclusion --- p.231Chapter 9.1.1 --- General Structure --- p.231Chapter 9.1.2 --- Representation Power --- p.231Chapter 9.1.3 --- Inference --- p.232Chapter 9.1.4 --- Dynamic Update and Consistency --- p.233Chapter 9.1.5 --- Soundness and Completeness Versus Efficiency --- p.233Chapter 9.2 --- Discussion --- p.234Chapter 9.2.1 --- Different Selection Criteria --- p.234Chapter 9.2.2 --- Link Order --- p.235Chapter 9.2.3 --- Inheritance Reasoning --- p.236Chapter 9.3 --- Future Work --- p.237Chapter 9.3.1 --- Implementation --- p.237Chapter 9.3.2 --- Application --- p.237Chapter 9.3.3 --- Probabilistic and Fuzzy PIN --- p.238Chapter 9.3.4 --- Temporal Reasoning --- p.238Bibliography --- p.23
    • …
    corecore