DRL: A Distributed Real-Time Logic Language

This paper presents a new language that integrates the real-time and distributed paradigms within the framework of a concurrent logic language. Concurrent logic languages (CLLs) are capable of expressing concurrence, communication and nondeterminism in a natural way. That is, the intrinsic parallel semantics of the concurrent logic languages makes them well-suited for distributed programming. The proposed language is particularly suitable for loosely coupled systems and it contains mechanisms for distributed and real-time process control. A new execution model for concurrent logic languages is presented, which enables efficient distributed execution and real-time control. The model is introduced by giving an operational semantics for the language and the new model's implementation is discussed, including the definition of a new abstract machine and its implementation on a network of Unix workstations. Although the sequential core is not optimized, some previous results are discussed, showing the feasibility of the language's execution model for distributed real-time systems. The language is currently being used as the kernel language for a distributed simulation and validation tool for communication protocols.

[1]  Giancarlo Succi,et al.  Implementations of Logic Programming Systems , 2012, Springer US.

[2]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[3]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[4]  Joe L. Armstrong,et al.  The Phoning Philosopher's Problem or Logic Programming for Telecommunications Applications , 1986, SLP.

[5]  José M. Troya,et al.  A Declarative Environment for Distributed Programming , 1992, IFIP Congress.

[6]  Douglas Renaux,et al.  RTX-Parlog: Real-Time Extended Parlog , 1993, Fifth Euromicro Workshop on Real-Time Systems.

[7]  M. Nilsson Mobile robot control with concurrent logic languages , 1990, Proceedings. EUROMICRO '90 Workshop on Real Time.

[8]  Frank S. de Boer,et al.  Concurrent Logic Programming: Asynchronism and Language Comparison , 1990, NACLP.

[9]  Ian Foster,et al.  Strand: New Concepts in Parallel Programming , 1990 .

[10]  Henry G. Baker,et al.  List processing in real time on a serial computer , 1978, CACM.

[11]  Hiroyuki Sato,et al.  Overview of the Parallel Inference Machine Operating System (PIMOS) , 1988, FGCS.

[12]  José M. Troya,et al.  A parlog based real-time distributed logic environment , 1993, Future Gener. Comput. Syst..

[13]  José M. Troya,et al.  DROL: A Distributed and Real-Time Object-Oriented Logic Environment , 1994, Comput. J..

[14]  Kazuaki Rokusawa,et al.  Parallel and Distributed Implementation of Concurrent Logic Programming Language KL1 , 1992, FGCS.

[15]  Kenneth M. Kahn,et al.  Janus: A step towards distributed constraint programming , 1990, NACLP.

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

[17]  Stephen Taylor,et al.  Parallel logic programming techniques , 1989 .

[18]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[19]  Bogumil Hausman Turbo Erlang: Approaching the Speed of C , 1993, ICLP-Workshops on Implementation of Logic Programming Systems.

[20]  Ian T. Foster,et al.  Systems programming in parallel logic languages , 1990 .

[21]  A. J. M. van Gasteren,et al.  Derivation of a Termination Detection Algorithm for Distributed Computations , 1983, Inf. Process. Lett..

[22]  Kazunori Ueda,et al.  Design of the Kernel Language for the Parallel Inference Machine , 1990, Computer/law journal.