Logic programming is based on formal mathematical concepts of first order predicate logic. A logic program is a static description of the problem in the form of normalized logic statements (Horn clauses). The execution of a logic program relies on automated theorem proving. In contrast to conventional procedural languages, in which the sequence of computation is specified explicitly by control structures, in logic programs information is provided only about “what” is to be solved, not “how” it is to be solved. Hence, logic programs represent executable specifications and are well suited for fast prototyping.
The concepts of logic programming have not yet been fully realized, because of the large requirements on memory and execution time of conventional computers. The programming language Prolog is based on logic programming, but employs various additional logical features in order to be a practical programming language. Recent advances in compilation and hardware design are continuously improving the feasibility of logic-based programming languages for industrial applications.
At the BBC Research Center, the system Modula--Prolog is being used for fast prototyping and knowledge engineering. Modula--Prolog permits the arbitrary combination of Modula-2 and Prolog programs and hence utilizes the advantages of both procedural and logic programming. Modula--Prolog has been applied to the development of knowledge-based expert systems for the configuration and diagnosis of technical systems.
KeywordsLogic Program Logic Programming Conveyor Belt Analog Circuit Horn Clause
Unable to display preview. Download preview PDF.
- 1.Arnoldi, M., “Integration of the Grid File System in the Programming Language Prolog,” Diploma Thesis, Federal Institute of Technology, Zurich, Switzerland, August 1985.Google Scholar
- 2.Biagioni, E.S., Hinrichs, K., Muller, C., and Nievergelt, J., “Interactive Deductive Data Management - the Smart Data Integration Package,” Proc. Gl- Kongress 1985, Wissensbasierte Systeme, Munich, October 1985, Informatik Fachberichte, Vol. 112, W. Brauer and B. Rudig, eds., Springer-Verlag, Berlin, 1985, pp. 208–220.Google Scholar
- 3.Boyer, R.S., and Moore, J.S., “The Sharing of Structure in Theorem-Proving Programs,” in Machine Intelligence, Vol. 7, B. Meitzer and D. Michie, eds., Edinburgh Univ. Press, 1972, pp. 101–116.Google Scholar
- 4.Clocksin, W.F., and Mellish, C.S., Programming in Logic, 2nd ed., Springer- Verlag, Berlin, 1984, p. 250.Google Scholar
- 5.Colmerauer, A., Kanoui, H., Roussel, P., and Pasero, R., “Un Systeme de Communication Homme-Machine en Français,” Groupe de Recherche en Intelligence Artificielle, Université d’Aix-Marseille, 1973.Google Scholar
- 7.Davis, R., Shrobe, H., Hamscher, W., Wieckert, K., Shirley, M., and Polit, S., “Diagnosis Based on Description of Structure and Function,” Proc. National Conf. on Artificial Intelligence, AAAI-82, 1982, pp. 137–142.Google Scholar
- 8.Hammond, P., “Representation of DHSS Regulations as a Logic Program,” Technical Report 82/26, Department of Computing, Imperial College, London, 1983.Google Scholar
- 9.Hammond, P., and Sergot, M., “A Prolog Shell for Logic Based Expert Systems, ” Proc. 3rd BCS Expert System Conf., 1983, pp. 95 - 104.Google Scholar
- 10.ICOT, “Outline of Research and Development Plans for Fifth Generation Computer Systems,” Project Report, Institute for New Generation Computer Technology, Tokyo, May 1982.Google Scholar
- 11.Kowalski, R.A., “Predicate Logic as Programming Language,” Proc. IFIP 74, North-Holland, 1974, pp. 569–574.Google Scholar
- 12.Kowalski, R.A., “Algorithm = Logic + Control,” Commun. ACM, Vol. 22, No. 7, 1979, pp. 424-436.Google Scholar
- 13.Kowalski, R.A., “Logic Programming,” Proc. IFlP 83, R.E.A. Mason, ed., North-Holland, Amsterdam, 1983, pp. 133–145.Google Scholar
- 15.Merry, M., “APEX3: An Expert System Shell for Fault Diagnosis,” The GEC Journal of Research, Vol. 1, No. 1, 1983, pp. 39–47.Google Scholar
- 16.Muller, C., “A Prolog Front End to the Grid File,” Diploma Thesis, Institute for Informatics, Federal Institute of Technology, Zurich, 1984.Google Scholar
- 17.Muller, C., “Modula-Prolog User Manual,” Report Brown Boveri Research Center, KLR 85-107 C. Also: Report 63, Institute for Informatics, Federal Institute of Technology, Zurich, 1985.Google Scholar
- 18.Nievergelt, J., Hinterberger, H., and Sevcik, K.C., “The Grid File: An Adaptable, Symmetric Multi-Key File Structure,”QC Technical Report 46, Institute for Informatics, Federal Institute of Technology, Zurich, 1981. Also: ACM Trans. Database Syst., Vol. 9, No. 1, 1984, pp. 38–71.Google Scholar
- 20.Robinson, J.A., “Computational Logic: The Unification Computation,”C in Machine Intelligence, Vol. 6, B. Meitzer and D. Michie, eds., Edinburgh Univ. Press, 1971, pp. 63–72.Google Scholar
- 21.Roussel, P., “Prolog: Manuel de Reference et d’Utilization,” Groupe de Recherche en Intelligence Artificielle, Université d’Aîx-Marseille, 1975.Google Scholar
- 22.Sergot, M., “A Query-the-User Facility for Logic Programming,” in integrated Interactive Computing Systems, P. Degano and E. Sandewall, eds., North-Holland, Amsterdam, 1983, pp. 27–41.Google Scholar
- 23.Shapiro,E.Y., “A Subset of Concurrent Prolog and Its Interpreter,” I COT, Technical Report TR-003, Tokyo, 1983.Google Scholar
- 24.Sugaya, H., “Some Improvements to the Unification Algorithm of ETH-Prolog,” Technical Memo, Brown Boveri Research Center, 1985.Google Scholar
- 25.Sugaya, H., “Prolog-Modula-2 Interface,” Technical Memo, Brown Boveri Research Center, 1985.Google Scholar
- 26.Takei, K., Chikayama, T., and Takagi, S., “ESP - Extended Self-Contained Prolog - An Object Oriented Logic Programming Language,” Technical Memo, TM-0075, Institute for New Generation Computing Technology, Tokyo, 1984.Google Scholar
- 27.Wirth, N., “Modula-2,” Technical Report 36, Institute for Informatics, Federal Institute of Technology, Zurich, 1980.Google Scholar