The concurrent language, Shared Prolog

Shared Prolog is a new concurrent logic language. A Shared Prolog system is composed of a set of parallel agents that are Prolog programs extended by a guard mechanism. The programmer controls the granularity of parallelism, coordinating communication and synchronization of the agents via a centralized data structure. The communication mechanism is inherited from the blackboard model of problem solving. Intuitively, the granularity of the logic processes to be elaborated in parallel is large, while the resources shared on the blackboard can be very fined grained. An operational semantics for Shared Prolog is given in terms of a distributed model. Through an abstract notion of computation, the kinds of parallelism supported by the language, as well as properties of infinite computations, such as local deadlocks, are studied. The expressiveness of the language is shown with respect to the specification of two classes of applications: metaprogramming and blackboard systems.

[1]  Ian T. Foster,et al.  Logic Operating System: Design Issues , 1987, International Conference on Logic Programming.

[2]  Robert Balzer,et al.  Living in the Next-Generation Operating System , 1987, IEEE Softw..

[3]  Keith L. Clark,et al.  Negation as Failure , 1987, Logic and Data Bases.

[4]  Vijay A. Saraswat,et al.  GHC: Operational Semantics, Problems, and Relationships with CP(|, |) , 1987, SLP.

[5]  Robert Balzer Living in the Next Generation Operating System (Invited Paper) , 1986, IFIP Congress.

[6]  Ehud Shapiro,et al.  A subset of Concurrent Prolog and its interpreter , 1988 .

[7]  John Lloyd,et al.  Foundation of logic programming , 1983 .

[8]  Randal E. Bryant,et al.  Concurrent programming , 1980, Operating Systems Engineering.

[9]  Keith L. Clark,et al.  PARLOG and PROLOG United , 1987, ICLP.

[10]  J. W. Lloyd,et al.  Foundations of logic programming; (2nd extended ed.) , 1987 .

[11]  Akikazu Takeuchi,et al.  Parallel Logic Programming Languages , 1986, ICLP.

[12]  Robin Milner,et al.  A proposal for standard ML , 1984, LFP '84.

[13]  David Gelernter,et al.  Multiple Tuple Spaces in Linda , 1989, PARLE.

[14]  H. Penny Nii,et al.  Blackboard Systems, Part One: The Blackboard Model of Problem Solving and the Evolution of Blackboard Architectures , 1986, AI Mag..

[15]  Victor R. Lesser,et al.  The Hearsay-II Speech-Understanding System: Integrating Knowledge to Resolve Uncertainty , 1980, CSUR.

[16]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[17]  Kazunori Ueda,et al.  Guarded Horn Clauses , 1986, LP.

[18]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[19]  Ugo Montanari,et al.  Concurrent Histories: A Basis for Observing Distributed Systems , 1987, J. Comput. Syst. Sci..

[20]  Isabelle Attali,et al.  Inference system environment for Ada , 1987 .

[21]  Keith L. Clark,et al.  PARLOG: parallel programming in logic , 1986, ACM Trans. Program. Lang. Syst..

[22]  Raj Reddy,et al.  The HEARSAY Speech Understanding System , 1974 .

[23]  Michael Codish,et al.  Fully abstract denotational semantics for concurrent Prolog , 1987 .

[24]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[25]  Penny Nii The blackboard model of problem solving , 1986 .

[26]  Michael Codish,et al.  Fully abstract denotational semantics for flat Concurrent Prolog , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[27]  Vijay A. Saraswat,et al.  The concurrent logic programming language CP: Definition and operational semantics , 1987, POPL '87.

[28]  Alessandro Forin,et al.  Multilanguage Parallel Programming of Heterogeneous Machines , 1988, IEEE Trans. Computers.

[29]  Antonio Brogi,et al.  A Distributed, Net Oriented Semantics for Delta Prolog , 1989, TAPSOFT, Vol.1.

[30]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[31]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[32]  Glenn Shafer,et al.  A Mathematical Theory of Evidence , 2020, A Mathematical Theory of Evidence.

[33]  Philippe Jorrand Term Rewriting as a Basis for the Design of a Functional and Parallel Programming Language. A case study: the language FP2 , 1985, Advanced Course: Fundamentals of Artificial Intelligence.

[34]  Paolo Ciancarini,et al.  Towards innovative software engineering environments , 1991, J. Syst. Softw..

[35]  D. Corkill Blackboard Systems , 1991 .

[36]  Dennis F. Kibler,et al.  Parallel interpretation of logic programs , 1981, FPCA '81.