319 research outputs found
Programming Languages for Distributed Computing Systems
When distributed systems first appeared, they were programmed in traditional sequential languages, usually with the addition of a few library procedures for sending and receiving messages. As distributed applications became more commonplace and more sophisticated, this ad hoc approach became less satisfactory. Researchers all over the world began designing new programming languages specifically for implementing distributed applications. These languages and their history, their underlying principles, their design, and their use are the subject of this paper. We begin by giving our view of what a distributed system is, illustrating with examples to avoid confusion on this important and controversial point. We then describe the three main characteristics that distinguish distributed programming languages from traditional sequential languages, namely, how they deal with parallelism, communication, and partial failures. Finally, we discuss 15 representative distributed languages to give the flavor of each. These examples include languages based on message passing, rendezvous, remote procedure call, objects, and atomic transactions, as well as functional languages, logic languages, and distributed data structure languages. The paper concludes with a comprehensive bibliography listing over 200 papers on nearly 100 distributed programming languages
dbProlog: a Prolog/relational database interface
dbProlog is a prototype system that provides a C-Prolog user access to data in an external relational database via both loose and tight coupling. To the application programmer, dbProlog is a group of six built-in Prolog predicates that effect communication between a C-Prolog process and a database management system process. Prolog application program statements may be written using the six predicates to make the interface transparent to an end-user. The system is based on a driver process that must be customized to the interfaced DBMS and whose primary function is the translation of requests and replies between C-Prolog and the DBMS. dbProlog supports Prolog\u27s depth-first search on database retrievals by producing the next record when the retrieval predicate is encountered upon backtracking. dbProlog also supports multiple active database retrievals, as may be required by a Prolog rule that references two or more database retrievals, or by a recursive rule
A Resolution Based Automated Theorem Proving System Using Concurrent Processing Approach
Semenjak pembangunan sistem pembuktian teorem automatik berdasarkan
resolusi yang pertama di pertengahan 1960an, terdapat penyelidikan yang berterusan di
dalam bidang ini untuk mempertingkatkan proses penyelesaian masalah di dalam sistemsistem
pembuktian teorem. Penyelidikan pada masa kini di dalam bidang ini adalah
tertumpu kepada penggunaan kaedah-kaedah pengideksan pangkalan data dan
pemprosesan selari untuk mempertingkatkan kecekapan sistem-sistem tersebut. Apa yang
dimaksudkan tentang kecekapan sistem adalah tertumpu kepada kelajuan pedaksanaan
sistem di dalam pembuktian teorem oleh suatu sistem pembuktian teorem automatik.
Ever since the first resolution based automated theorem proving system was
developed on a computer in the mid 1960s, there has been constant research in this area
on enhancing the problem solving process of the theorem provers. The recent trend in
this area is towards exploiting database indexing and parallel processing in increasing the
efficiency of these systems, in particular the execution speed of the theorem prover in
proving a theorem
Logic programming for real-time control of telecommunication switching systems
AbstractAn experiment using logic programming in the specification and implementation of a telecommunication switching system is reported, and one of the main modules in the system, a telephone-line controller, is described in detail as an illustrative example. The system is described in terms of transition relations in a labeled transition system. The programming language used is a variant of the parallel logic language PARLOG augmented with annotations to express timing constraints. The operational model of PARLOG is modified to handle time by allowing each goal-reduction process in a query to maintain its own logical clock, which can be read and set by the goal-reduction process itself. A metainterpreter is given to describe the operational behavior and an implementation scheme for the language
Logic programming in the context of multiparadigm programming: the Oz experience
Oz is a multiparadigm language that supports logic programming as one of its
major paradigms. A multiparadigm language is designed to support different
programming paradigms (logic, functional, constraint, object-oriented,
sequential, concurrent, etc.) with equal ease. This article has two goals: to
give a tutorial of logic programming in Oz and to show how logic programming
fits naturally into the wider context of multiparadigm programming. Our
experience shows that there are two classes of problems, which we call
algorithmic and search problems, for which logic programming can help formulate
practical solutions. Algorithmic problems have known efficient algorithms.
Search problems do not have known efficient algorithms but can be solved with
search. The Oz support for logic programming targets these two problem classes
specifically, using the concepts needed for each. This is in contrast to the
Prolog approach, which targets both classes with one set of concepts, which
results in less than optimal support for each class. To explain the essential
difference between algorithmic and search programs, we define the Oz execution
model. This model subsumes both concurrent logic programming
(committed-choice-style) and search-based logic programming (Prolog-style).
Instead of Horn clause syntax, Oz has a simple, fully compositional,
higher-order syntax that accommodates the abilities of the language. We
conclude with lessons learned from this work, a brief history of Oz, and many
entry points into the Oz literature.Comment: 48 pages, to appear in the journal "Theory and Practice of Logic
Programming
A debugger for Modula-2 on the UNIX PC
Call number: LD2668 .R4 CMSC 1987 A23Master of ScienceComputing and Information Science
- …