Object Logic Integration: A Multiparadigm Design Methodology and a Programming Language

In the past decade, there has been much research effort dedicated to combine the object-oriented programming paradigm and the logic programming paradigm. Most of this effort sheds light upon the philosophy of multiparadigm programming as a near ideal mental model for a wide class of problem domains. In this paper we propose a scheme for object and logic integration-the OLI scheme. This scheme contributes to the multiparadigm programming philosophy by putting forward a multiparadigm design methodology and describing a multiparadigm programming language. Above all, the OLI scheme integrates the object-oriented and the logic programming paradigms at the design and language levels with a precise and well-balanced interface so that each paradigm shares an equal and cooperating partnership in problem analysis and problem solving. An important property of the OLI language is that programmers can program either in one of the paradigms alone or in a mixed paradigm without sacrificing expressiveness and efficiency. We give a formal definition of the OLI language and study its semantics both from the logical perspective and the object-oriented perspective. By viewing objects as an enrichment of the Herbrand universe, we define the declarative and operational semantics of OLI. We show that OLI's operational semantics, a generalized form of SLD-resolution, is sound and complete. From the object-oriented point of view, the logic part of OLI is simply an object with logic programs as states and methods for performing logical deduction.

[1]  Fred Mellender An integration of logic and object-oriented programming , 1988, SIGP.

[2]  R. Nigel Horspool,et al.  Translator-based multiparadigm programming , 1993, J. Syst. Softw..

[3]  Vladimir Alexiev,et al.  Mutable Object State for Object-Oriented Logic Programming: A Survey , 1993 .

[4]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[5]  Sverker Janson,et al.  AKL - A Multiparadigm Programming Language , 1994 .

[6]  Andreas Podelski,et al.  Towards a Meaning of LIFE , 1991, J. Log. Program..

[7]  Hassan Aït-Kaci,et al.  An Algebraic Semantics Approach to the Effective Resolution of Type Equations , 1986, Theor. Comput. Sci..

[8]  Andrew Davison A survey of logic programming-based object-oriented languages , 1993 .

[9]  Francis G. McCabe,et al.  Logic and objects , 1992, Prentice Hall International Series in Computer Science.

[10]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[11]  Leon Sterling,et al.  The Art of Prolog - Advanced Programming Techniques , 1986 .

[12]  H. Aït-Kaci A lattice theoretic approach to computation based on a calculus of partially ordered type structures (property inheritance, semantic nets, graph unification) , 1984 .

[13]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[14]  Hilary J. Kahn,et al.  A multiparadigm programming approach for developing knowledge-based systems , 1995, Proceedings Nineteenth Annual International Computer Software and Applications Conference (COMPSAC'95).

[15]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[16]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[17]  Yves Deville,et al.  Logic programming - systematic program development , 1990, International series in logic programming.

[18]  Mario Tokoro,et al.  A concurrent object-oriented knowledge representation language Orient84/K: its features and implementation , 1986, OOPSLA 1986.

[19]  John W. Lloyd,et al.  The Gödel programming language , 1994 .

[20]  Shaun-inn Wu,et al.  Integrating logic and object-oriented programming , 1991, OOPS.

[21]  P. K. C. Pun,et al.  Object Logic Integration: a Scheme for Multiparadigm Design and Programming , 1995 .

[22]  Robert A. Kowalski,et al.  Algorithm = logic + control , 1979, CACM.

[23]  Carlo Zaniolo,et al.  Object-Oriented Programming in Prolog , 1984, SLP.

[24]  Michael Kifer,et al.  Logical foundations of object-oriented and frame-based languages , 1995, JACM.

[25]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[26]  Chris Moss Prolog++ - the power of object-oriented and logic programming , 1994, International series in logic programming.

[27]  Vladimir Alexiev,et al.  Applications of Linear Logic to Computation: An Overview , 1994, Log. J. IGPL.

[28]  Jimmy Ho-Man Lee,et al.  An Overview of the OLI Multiparadigm Programming Language and Its Semantics , 1996, OOIS.

[29]  Verónica Dahl,et al.  Backtrackable State with Linear Assumptions, Continuations and Hidden Accumulator Grammars , 1995, ILPS.

[30]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[31]  William F. Clocksin,et al.  Programming in Prolog , 1987, Springer Berlin Heidelberg.