Parallel Execution of Logic Programs


Book Description

Logic programming refers to execution of programs written in Horn logic. Among the advantages of this style of programming are its simple declarativeand procedural semantics, high expressive power and inherent nondeterminism. The papers included in this volume were presented at the Workshop on Parallel Logic Programming held in Paris on June 24, 1991, as part of the 8th International Conference on Logic Programming. The papers represent the state of the art in parallel logic programming, and report the current research in this area, including many new results. The three essential issues in parallel execution of logic programs which the papers address are: - Which form(s) of parallelism (or-parallelism, and-parallelism, stream parallelism, data-parallelism, etc.) will be exploited? - Will parallelism be explicitly programmed by programmers, or will it be exploited implicitly without their help? - Which target parallel architecture will the logic program(s) run on?




Programming Language Implementation and Logic Programming


Book Description

This volume contains the papers which have been accepted for presentation atthe Third International Symposium on Programming Language Implementation andLogic Programming (PLILP '91) held in Passau, Germany, August 26-28, 1991. The aim of the symposium was to explore new declarative concepts, methods and techniques relevant for the implementation of all kinds of programming languages, whether algorithmic or declarative ones. The intention was to gather researchers from the fields of algorithmic programming languages as well as logic, functional and object-oriented programming. This volume contains the two invited talks given at the symposium by H. Ait-Kaci and D.B. MacQueen, 32 selected papers, and abstracts of several system demonstrations. The proceedings of PLILP '88 and PLILP '90 are available as Lecture Notes in Computer Science Volumes 348 and 456.




Parallel Execution of Logic Programs


Book Description

This book is an updated version of my Ph.D. dissertation, The AND/OR Process Model for Parallel Interpretation of Logic Programs. The three years since that paper was finished (or so I thought then) have seen quite a bit of work in the area of parallel execution models and programming languages for logic programs. A quick glance at the bibliography here shows roughly 50 papers on these topics, 40 of which were published after 1983. The main difference between the book and the dissertation is the updated survey of related work. One of the appendices in the dissertation was an overview of a Prolog implementation of an interpreter based on the AND/OR Process Model, a simulator I used to get some preliminary measurements of parallelism in logic programs. In the last three years I have been involved with three other implementations. One was written in C and is now being installed on a small multiprocessor at the University of Oregon. Most of the programming of this interpreter was done by Nitin More under my direction for his M.S. project. The other two, one written in Multilisp and the other in Modula-2, are more limited, intended to test ideas about implementing specific aspects of the model. Instead of an appendix describing one interpreter, this book has more detail about implementation included in Chapters 5 through 7, based on a combination of ideas from the four interpreters.




Computing with Logic


Book Description

Computing with logic / Maier, D., Warren, D.S.




Logic Programming


Book Description

Covers the latest research in areas such as theoretical foundations, constraints, concurrency and parallelism, deductive databases,language design and implementation, non-monotonic reasoning, and logicprogramming and the Internet. 8-12 July 1997, Leuven, Belgium The International Conference on Logic Programming is the main annual conference sponsored by the Association for Logic Programming. It covers the latest research in areas such as theoretical foundations, constraints, concurrency and parallelism, deductive databases, language design and implementation, non-monotonic reasoning, and logic programming and the Internet.




并行程序设计


Book Description

国外著名高等院校信息科学与技术优秀教材




Equational Logic as a Programming Language


Book Description

This book describes an ongoing equational programming project that started in 1975. Within the project an equational programming language interpreter has been designed and implemented. The first part of the text (Chapters 1-10) provides a user's manual for the current implementation. The remaining sections cover the following topics: programming techniques and applications, theoretical foundations, implementation issues. Giving a brief account of the project's history (Chapter 11), the author devotes a large part of the text to techniques of equational programming at different levels of abstraction. Chapter 12 discusses low-level techniques including the distinction of constructors and defined functions, the formulation of conditional expressions and error and exception handling. High-level techniques are treated in Chapter 15 by discussing concurrency, nondeterminism, the relationship to dataflow programs and the transformation of recursive programs called dynamic programming. In Chapter 16 the author shows how to efficiently implement common data structures by equational programs. Modularity is discussed in Chapter 14. Several applications are also presented in the book. The author demonstrates the versatility of equational programming style by implementing syntactic manipulation algorithms (Chapter 13). Theoretical foundations are introduced in Chapter 17 (term rewriting systems, herein called term reduction systems). In Chapter 19 the author raises the question of a universal equational machine language and discusses the suitability of different variants of the combinator calculus for this purpose. Implementation issues are covered in Chapters 18 and 20 focused around algorithms for efficient pattern matching, sequencing and reduction. Aspects of design and coordination of the syntactic processors are presented as well.




Logic Programming


Book Description

This text aims at promoting a convergence between the technical challenges of developing advanced software systems and the formal techniques, tools and features evolving from the logic programming paradigm. It provides contributions towards different apsects of logic programming.




Hybrid Parallel Execution Model for Logic-based Specification Languages


Book Description

Parallel processing is a very important technique for improving the performance of various software development and maintenance activities. The purpose of this book is to introduce important techniques for parallel executation of high-level specifications of software systems. These techniques are very useful for the construction, analysis, and transformation of reliable large-scale and complex software systems. Contents: Current Approaches; Overview of the New Approach; FRORL Requirements Specification Language and Its Decomposition; Rewriting and Data Dependency, Control Flow Analysis of a Logic-Based Specification; Hybrid and-or Parallelism Implementation; Efficiency Considerations and Experimental Results; Mode Information Support for Automatic Transformation System; Describing Non-Functional Requirements in FRORL. Readership: Graduate students, engineers and researchers in computer science.




Programming Massively Parallel Processors


Book Description

Programming Massively Parallel Processors: A Hands-on Approach, Second Edition, teaches students how to program massively parallel processors. It offers a detailed discussion of various techniques for constructing parallel programs. Case studies are used to demonstrate the development process, which begins with computational thinking and ends with effective and efficient parallel programs. This guide shows both student and professional alike the basic concepts of parallel programming and GPU architecture. Topics of performance, floating-point format, parallel patterns, and dynamic parallelism are covered in depth. This revised edition contains more parallel programming examples, commonly-used libraries such as Thrust, and explanations of the latest tools. It also provides new coverage of CUDA 5.0, improved performance, enhanced development tools, increased hardware support, and more; increased coverage of related technology, OpenCL and new material on algorithm patterns, GPU clusters, host programming, and data parallelism; and two new case studies (on MRI reconstruction and molecular visualization) that explore the latest applications of CUDA and GPUs for scientific research and high-performance computing. This book should be a valuable resource for advanced students, software engineers, programmers, and hardware engineers. - New coverage of CUDA 5.0, improved performance, enhanced development tools, increased hardware support, and more - Increased coverage of related technology, OpenCL and new material on algorithm patterns, GPU clusters, host programming, and data parallelism - Two new case studies (on MRI reconstruction and molecular visualization) explore the latest applications of CUDA and GPUs for scientific research and high-performance computing