Programs as collections of communicating Prolog units

  • Paola Mello
  • Antonio Natali
Logic Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 213)


At the current state of the art, people are not encouraged to use logic programming languages for bulding large and complex software systems due to the difficulty of expressing concepts such as modularity, information hiding, data and process abstraction etc. In particular, it is impossible to build a system as a collection of different modules, independently designed and coded, with a lifetime extended till execution time.

This work is based on the fact that Prolog, the most used logical language, already has sufficient intrinsic power to express concepts of that kind.

Initially, a new mechanism is added to Prolog: the possibility to split a base of clauses into a set of different units. Subsequently, the distinction between object-level and meta-level units is introduced in order to express interactions between units. Finally, the possibility of specifying parallel flows of control within the same computation, is presented.

The main thesis of the work is that complex software systems can easily be built by fitting together a set of invariant Prolog units through a meta-level specification. Predicates can be viewed as communication channels statically or dynamically connected by meta programs. Such a methodology, which is suggested in quite a natural way by the declarative style of Prolog, could be fundamental also when units are written ‘in-the-small’ using other styles of languages.


  1. -.
    L.Aiello, G.Levi:" The uses of meta-knowledge in AI Systems", ECAI-84, Pisa, Sept. 1984.Google Scholar
  2. -.
    G.R.Andrewes, F.B.Schneider: "Concepts and Notations for Concurrent Programming", ACM Computing Surveys v.15,n.1, March 1983.Google Scholar
  3. -.
    J.Bendl, P.Koves, P.Szeredi:" The MPROLOG System", Proceedings of the Logic Programming Workshop, july 1982.Google Scholar
  4. -.
    K.Bowen, R.Kowalski: "Amalgamating language and metalanguage in logic programming", in Logic Programming, Academic Press, 1982.Google Scholar
  5. -.
    K.L.Clark:"Negation as failure", in "Logic and Databases", Gallaire and Minker eds., Nov.77.Google Scholar
  6. -.
    K.Clark, S.Gregory:" PARLOG: Parallel Programming in Logic", Research Report DOC 84/4, Imperial College, 1984.Google Scholar
  7. -.
    W.F. Clocksin, C.S. Mellish: " Programming in Prolog ", Springer-Verlag, New-York, 1981.Google Scholar
  8. -.
    R. Davis, D. Lenat:" Knowledge-Based Systems in Artificial Intelligence ", New York: McGraw-Hill, 1980.Google Scholar
  9. -.
    DOD: "Reference Manual for the Ada programming language", ANSI/MIL-std 1815-a, Jan.1983.Google Scholar
  10. -.
    R.E. Filman, D.P. Friedman: "Actors", in ‘Coordinated Computing', Prentice-Hall, 1984.Google Scholar
  11. -.
    K.Furukawa et alii: "Mandala: A Logic Based Knowledge Programming System", in International Conference On Fifth Generation Computer Systems 1984.Google Scholar
  12. -.
    A. Goldberg: " SMALLTALK-80: the Interactive Programming Environment", Addison-Wesley, 1984.Google Scholar
  13. -.
    A.Goldberg, D. Robson: "Smalltalk-80, The Language and its Implementation", Addison Wesley, 1983.Google Scholar
  14. -.
    C.Hewitt, P.De Jong:"Open Systems", Tech. Rep. MIT-AIM 691 Dec. 1981.Google Scholar
  15. -.
    C.A.R. Hoare: "Monitors: An Operating Systems Structuring Concept", Comm. of ACM, 17 (10): 549–557, 1974.Google Scholar
  16. -.
    Intel: "Introduction to the iAPX-432 Architecture", Intel on. 171821.Google Scholar
  17. -.
    A.K.Jones: "The Object Model: a Conceptual Tool for Structuring Software", in ‘Operating Systems', ed. by Bayes et al., Springer Verlag, n.60, 1978.Google Scholar
  18. -.
    M.Minsky: "A Framework for Representing Knowledge", in "The Psychology of Computer Vision" (ed. P.Winston), Mc Graw-Hill, 1975.Google Scholar
  19. -.
    L.Monteiro:" A Proposal for Distributed Programming in Logic", Tec. Rep. University of Lisbona, Jan. 1983.Google Scholar
  20. -.
    T. Moto-oka et al.: "Challenge for Knowledge Information Processing Systems (Preliminary Report on Fifth Generation Computer Systems)", Proc. of the International Conference on Fifth Generation Computer Systems, Tokyo, Japan, October 1981.Google Scholar
  21. -.
    D.Nau: "Expert Computer Systems", Computer, v.16, n.2 Feb. 1983.Google Scholar
  22. -.
    L.M.Pereira, R.Nasr: "Delta-Prolog: A Distributed Logic Programming Language", International Conference On Fifth Generation Computer Systems, November 1984.Google Scholar
  23. -.
    E.Y. Shapiro: "A subset of Concurrent PROLOG and its Interpreter" Technical Report ICOT n.3, Oct. '83.Google Scholar
  24. -.
    W. Teitelman, L.Masinter:" The INTERLISP Programming Environment", IEEE Computer, v.14, n.4, 1981.Google Scholar
  25. -.
    P. Wegner:"Capital Intensive Software Technology", IEEE Software, v.1, n.3, 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Paola Mello
    • 1
  • Antonio Natali
    • 1
  1. 1.D.E.I.S., Faculty of EngineeringUniversity of BolognaBolognaItaly

Personalised recommendations