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