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.
Preview
Unable to display preview. Download preview PDF.
References
Hans-Jürgen Appelrath, Armin B. Cremers, and Otthein Herzog, editors. The EUREKA Project PROTOS, Zürich, 1990.
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.
Jean-Marc Andreoli and Remo Pareschi. LO and Behold! Concurrent Structured Processes. In OOPSLA '90, pages 44–56, October 1990.
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.
John S. Conery. Logical Objects. In Logic Programming. MIT Press, 1988.
Brad J. Cox. Object Oriented Programming — An Evolutionary Approach. Addison-Wesley, 1986.
Weidong Chen and David Scott Warren. C-Logic of Complex Objects. In Eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of Database Systems, 1989.
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.
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.
N. Dershowitz and Z. Manna. Proving Termination with Multiset Orderings. Communications of the ACM, 22(8):465–476, 1979.
Saumya K. Debray and David S. Warren. Automatic Mode Inference for Logic Programs. The Journal of Logic Programming, 5(3):207–229, 1988.
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.
Herve Gallaire. Merging Objects and Logic Programming: Relational Semantics. In Proc. AAAI'86, 1986.
Michael Hanus. Horn Clause Specifications with Polymorphic Types. Dissertation, Universität Dortmund, 1989.
Martin Huber and Igor Varsek. EPOS — Extended Prolog with Order-Sorted Resolution. Interner Bericht 4, Universität Karlsruhe, 1987.
Michael Kifer and Georg Lausen. F-Logic: A Higer-Order Language for Reasoning about Objects, Inheritance, and Scheme. In SIGMOD, 1989.
Alan Mycroft and Richard A. O'Keefe. A Polymorphic Type System for Prolog. Artificial Intelligence, 23(3), 1984.
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.
Larry Morlan. IBM PROLOG Language Workbench/VM (IPW), User's Manual, Release 1.0, 1990.
Chris Moss. An Introduction to Prolog++. Research Report DOC 90/10, Imperial College, 1990.
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).
Z. Palaskas, P. Loucopoulos, and F. Van Assche. AMORE — Object Oriented Extensions to Prolog. In TOOLS '89, 1989.
Lutz Plümer. Termination Proofs for Logic Programs. LNCS (LNAI) 446. Springer, 1990.
Lutz Plümer. Termination Proofs for Logic Programs based on Predicate Inequalities. In Seventh International Conference on Logic Programming, Jerusalem, 1990.
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.
Quintus Computer Systems Inc. Quintus Prolog Development Environment, 1990. Release 3.0.
Uday S. Reddy and T.K. Lakshman. Typed Prolog: A Semantic Reconstruction of the Mycroft-O'Keefe Type System. In ILPS, 1991.
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.
Roger S. Scowen. PROLOG Draft for Working Draft 4.0, N64. ISO/IEC JTC1 SC22 WG17, International Organization for Standardization, September 1990.
Gert Smolka. Logic Programming over Polymorphically Order-Sorted Types. Dissertation 386, Universität Kaiserslautern, Fachbereich Informatik, 1989.
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.
Ehud Shapiro and Akikazu Takeuchi. Concurrent Prolog, chapter Chapter 29, Object Oriented Programming in Concurrent Prolog. MIT Press, 1987.
Bjarne Stroustrup. Data Abstraction in C. AT&T Bell Laboratories Tech. Journal, 63(8), 1984.
Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, 1986.
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.
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.
Eyal Yardena and Ehud Shapiro. A Type System for Logic Programms. The Journal of Logic Programming, 10(2), February 1991. also in [ST87].
Carlo Zaniolo. Object-Oriented Programming in Prolog. In IEEE Symposium on Logic Programming, 1984.
Author information
Authors and Affiliations
Editor information
Rights 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