Skip to main content

Enhancing software engineering capabilities of PROLOG by object-oriented concepts

  • Software Engineering and AI/ES
  • Conference paper
  • First Online:
  • 280 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 604))

Abstract

This paper presents some parts of the hybrid object-oriented language PPO. PPO extends PROLOG by a type concept and object-oriented features. These extensions are used to improve the software maintenance capabilities of PROLOG, which are very rudimentary.

We give a survey of the language and describe in detail the type system and the implementation of multiple inheritance. An example is used to demonstrate this language features and to motivate the estimated improvements of software maintenance capabilities of PPO compared with PROLOG.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Hans-Jürgen Appelrath, Armin B. Cremers, and Otthein Herzog, editors. The EUREKA Project PROTOS, Zürich, 1990.

    Google Scholar 

  2. Jean-Marc Andreoli and Remo Pareschi. Linear Objects: Logical Processes with Built-in Inheritance. In D.H.D. Warren and P. Szeredi, editors, 7th, International Conference on Logic Programmming, Jerusalem, June 1990.

    Google Scholar 

  3. Jean-Marc Andreoli and Remo Pareschi. LO and Behold! Concurrent Structured Processes. In OOPSLA '90, pages 44–56, October 1990.

    Google Scholar 

  4. Christoph Beierle, Stefan Böttcher, and Gregor Meyer. Draft Report of the Logic Programming Language PROTOS-L. IWBS Report 175, IBM German Science Center, Institute for Knowledge Based Systems, June 1991.

    Google Scholar 

  5. John S. Conery. Logical Objects. In Logic Programming. MIT Press, 1988.

    Google Scholar 

  6. Brad J. Cox. Object Oriented Programming — An Evolutionary Approach. Addison-Wesley, 1986.

    Google Scholar 

  7. Weidong Chen and David Scott Warren. C-Logic of Complex Objects. In Eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of Database Systems, 1989.

    Google Scholar 

  8. Mireille Ducasse and Anna-Maria Emde. OPIUM: A Debugging Environment for Prolog Development and Debugging Research. ACM Software Engineering Notes, 16(1):54–59, 1990.

    Google Scholar 

  9. Roland Dietrich and Frank Hagl. A Polymorphic Type System with Subtypes for Prolog. In H. Ganzinger, editor, 2nd European Symposium on Programming, LNCS 300. Springer, 1988.

    Google Scholar 

  10. N. Dershowitz and Z. Manna. Proving Termination with Multiset Orderings. Communications of the ACM, 22(8):465–476, 1979.

    Article  Google Scholar 

  11. Saumya K. Debray and David S. Warren. Automatic Mode Inference for Logic Programs. The Journal of Logic Programming, 5(3):207–229, 1988.

    Article  Google Scholar 

  12. Koichi Fukunaga and Shin-ichi Hirose. An Experience with a Prologbased Object-Oriented Language. In Norman Meyrowitz, editor, Proc. OOPSLA '86, Conference on Object-Oriented Programming Systems, Languages and Applications, Portland, OR, September 1986. ACM.

    Google Scholar 

  13. Herve Gallaire. Merging Objects and Logic Programming: Relational Semantics. In Proc. AAAI'86, 1986.

    Google Scholar 

  14. Michael Hanus. Horn Clause Specifications with Polymorphic Types. Dissertation, Universität Dortmund, 1989.

    Google Scholar 

  15. Martin Huber and Igor Varsek. EPOS — Extended Prolog with Order-Sorted Resolution. Interner Bericht 4, Universität Karlsruhe, 1987.

    Google Scholar 

  16. Michael Kifer and Georg Lausen. F-Logic: A Higer-Order Language for Reasoning about Objects, Inheritance, and Scheme. In SIGMOD, 1989.

    Google Scholar 

  17. Alan Mycroft and Richard A. O'Keefe. A Polymorphic Type System for Prolog. Artificial Intelligence, 23(3), 1984.

    Google Scholar 

  18. David A. Moon. Object-Oriented Programming with Flavors. In Norman Meyrowitz, editor, Proc. OOPSLA'86, Conference on Object-Oriented Programming Systems, Languages and Applications. ACM, 1986.

    Google Scholar 

  19. Larry Morlan. IBM PROLOG Language Workbench/VM (IPW), User's Manual, Release 1.0, 1990.

    Google Scholar 

  20. Chris Moss. An Introduction to Prolog++. Research Report DOC 90/10, Imperial College, 1990.

    Google Scholar 

  21. Bernd Müller. Design and Implementation of an Abstract Machine for order-sorted Logic Programms. Studienarbeit 711, Universität Stuttgart, Institut für Informatik, 1988. (in german).

    Google Scholar 

  22. Z. Palaskas, P. Loucopoulos, and F. Van Assche. AMORE — Object Oriented Extensions to Prolog. In TOOLS '89, 1989.

    Google Scholar 

  23. Lutz Plümer. Termination Proofs for Logic Programs. LNCS (LNAI) 446. Springer, 1990.

    Google Scholar 

  24. Lutz Plümer. Termination Proofs for Logic Programs based on Predicate Inequalities. In Seventh International Conference on Logic Programming, Jerusalem, 1990.

    Google Scholar 

  25. Jens Palsberg and Michael I. Schwartzbach. What is Type-Safe Code Reuse ? In Pierre America, editor, Proc. ECOOP'91, European Conference on Object-Oriented Programming, LNCS 512, pages 235–341, Geneva, July 1991. Springer.

    Google Scholar 

  26. Quintus Computer Systems Inc. Quintus Prolog Development Environment, 1990. Release 3.0.

    Google Scholar 

  27. Uday S. Reddy and T.K. Lakshman. Typed Prolog: A Semantic Reconstruction of the Mycroft-O'Keefe Type System. In ILPS, 1991.

    Google Scholar 

  28. A. Schmidt and F. Belli. An Extension of PROLOG for Object-Oriented Programming in Logic. In The Third International Conference on Industrial & Engineering Applications of Artificial Intelligence & Expert Systems, 1990.

    Google Scholar 

  29. Roger S. Scowen. PROLOG Draft for Working Draft 4.0, N64. ISO/IEC JTC1 SC22 WG17, International Organization for Standardization, September 1990.

    Google Scholar 

  30. Gert Smolka. Logic Programming over Polymorphically Order-Sorted Types. Dissertation 386, Universität Kaiserslautern, Fachbereich Informatik, 1989.

    Google Scholar 

  31. Alan Snyder. Encapsulation and Inheritance in Object-Oriented Programming Languages. In Norman Meyrowitz, editor, Proc. OOPSLA '86, Conference on Object-Oriented Programming Systems, Languages and Applications, Portland, OR, September 1986. ACM.

    Google Scholar 

  32. Ehud Shapiro and Akikazu Takeuchi. Concurrent Prolog, chapter Chapter 29, Object Oriented Programming in Concurrent Prolog. MIT Press, 1987.

    Google Scholar 

  33. Bjarne Stroustrup. Data Abstraction in C. AT&T Bell Laboratories Tech. Journal, 63(8), 1984.

    Google Scholar 

  34. Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, 1986.

    Google Scholar 

  35. Christoph Walther. A Many-Sorted Calculus based on resolution and paramodulation. In 8th Internation Joint Conference on Artificial Intelligence, pages 882–891, Karlsruhe, 1983. Morgan Kaufmann.

    Google Scholar 

  36. Peter Wegner. Dimensions of Object-Based Language Design. In Norman Meyrowitz, editor, Proc. OOPSLA'87, Conference on Object-Oriented Programming Systems, Languages and Applications, Orlando, Florida, October 1987.

    Google Scholar 

  37. Eyal Yardena and Ehud Shapiro. A Type System for Logic Programms. The Journal of Logic Programming, 10(2), February 1991. also in [ST87].

    Google Scholar 

  38. Carlo Zaniolo. Object-Oriented Programming in Prolog. In IEEE Symposium on Logic Programming, 1984.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Fevzi Belli Franz Josef Radermacher

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Müller, B. (1992). Enhancing software engineering capabilities of PROLOG by object-oriented concepts. In: Belli, F., Radermacher, F.J. (eds) Industrial and Engineering Applications of Artificial Intelligence and Expert Systems. IEA/AIE 1992. Lecture Notes in Computer Science, vol 604. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0024964

Download citation

  • DOI: https://doi.org/10.1007/BFb0024964

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55601-5

  • Online ISBN: 978-3-540-47251-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics