Abstract
A design and implementation of a declarative object-oriented language is presented. The language is strongly and mostly statically typed and supports software reuse techniques such as inheritance, subtype and parametric polymorphism. It differs significantly from the existing strongly typed object-oriented languages in its declarative constraint language which is based on a suitably extended logic programming paradigm. Behavioral subtyping and advanced polymorphic facilities (such as, for example, F-bounded polymorphism) now fit naturally into this general paradigm. The underlying implementation technique produces a powerful prototyping tool for object-oriented software development and generalizes logic programming architectures by an algebraic automata based model for representing object states and state transitions.
Preview
Unable to display preview. Download preview PDF.
References
S. Abiteboul, P. Kanellakis, and G. Grahne. On the representation and querying of sets of possible worlds. In Proceedings of the ACM-SIGMOD International Conference on Management of Data, pages 34–48, 1987.
S. Alagić. Object-Oriented Database Programming. Springer-Verlag, New York, 1989.
S. Alagić. Generic modules, kinds and polymorphism for Modula-2. In Proceedings of the 2nd International Modula-2 Conference, Loughborough, England, 1991.
S. Alagić. Persistent meta-objects. In A. Dearle, G.M. Shaw, and S.B. Zdonik, editors, Implementing Persistent Object Bases: Principles and Practice, pages 31–42. Morgan Kaufmann, 1991.
P. America. Designing an object-oriented programming language with behaviorial subtyping. In Foundations of Object-Oriented Languages, REX School/Workshop, Noordwijkerhout, The Netherlands, pages 60–90. Lecture Notes in Computer Science 489, Springer-Verlag, 1991.
K. R. Apt. Logic programming. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science: Volume B (Formal Models and Semantics). MIT Press, 1990.
K. R. Apt, H. A. Blair, and A. Walker. Towards a theory of declarative knowledge. In Jack Minker, editor, Foundations of Deductive Databases and Logic Programming, pages 89–148. Morgan Kaufmann, Los Altos, 1988.
R. Bagai, M. Bezem, and M. H. van Emden. On downward closure ordinals of logic programs. Fundamenta Informaticae, XIII(1), March 1990.
K. Bruce. Safe type checking in a statically typed object-oriented programming language. In Proceedings of POPL (Principles of Programming Languages), pages 285–298, 1993.
P. Canning, W. Cook, W. Hill, and W. Olthoff. Interfaces for strongly typed object-oriented programming. In Proceedings of the OOPSLA Conference, pages 457–467, 1989.
P. Canning, W. Cook, W. Hill, W. Olthoff, and J.C. Mitchell. F-bounded polymorphism for object-oriented programming. In Proceedings of the Conference on Functional Programming and Computer Architecture, pages 273–280, 1989.
L. Cardelli. A semantics of multiple inheritance. Information and Computation, 76:138–164, 1988.
L. Cardelli, J. Donahue, M. Jordan, B. Kalslow, and G. Nelson. The Modula-3 type system. In Conference Record, ACM Symposium on Principles of Programming Languages, pages 202–212, 1989.
K. L. Clark. Negation as failure. In H. Gallaire and J. Minker, editors, Logic and Databases. Plenum Press, NY, 1978.
W. Cook. A proposal for making Eiffel type safe. The Computer Journal, 32(4):305–311, 1989.
W. Cook, W. Hill, and P. Canning. Inheritance is not subtyping. In Proceedings of Principles of Programming Languages, pages 125–135. ACM Press, 1990.
M. Dalal. Some tractable classes of disjunctive logic programs. Technical Report, Department of Computer Science, Rutgers University, 1992.
M. Fay. First-order unification in an equational theory. In Proceedings of the 4th Workshop on Automated Deduction, pages 161–167, 1979.
J. Goguen and J. Meseguer. EQLOG: equality, types and generic modules for logic programming. In D. DeGroot and G. Lindstrom, editors, Logic Programming: Functions, Relations and Equations, pages 295–363. Prentice Hall, 1986.
J. Goguen and J. Meseguer. Unifying functional, object-oriented and relational programming with logical semantics. In B. Shriver and P. Wegner, editors, Research Directions in Object-Oriented Programming, pages 417–477. MIT Press, 1987.
P. Grogono. Issues in the design of an object-oriented programming language. Structured Programming, 12:1015, 1991.
J.-M. Hullot. Canonical forms and unification. In W. Bibel and R. Kowalski, editors, Proceedings of the 5th Conference on Automated Deduction, pages 318–334. Lecture Notes in Computer Science 87, Springer-Verlag, 1980.
T. Imielinski. Incomplete deductive databases. Annals of Mathematics and Artificial Intelligence, 3(2–4):259–293, 1991.
J. Jaffar, J.-L. Lassez, and M. J. Maher. A logic programming language scheme. In D. DeGroot and G. Lindstrom, editors, Logic Programming: Functions, Relations and Equations, pages 441–468. Prentice Hall, 1986.
Z. A. Khandaker, J. A. Fernandez, and J. Minker. A tractable class of disjunctive deductive databases. In Proceedings of the Joint International Conference and Symposium on Logic Programming, Washington D.C.,, 1992.
W. A. Kornfield. Equality for Prolog. In D. DeGroot and G. Lindstrom, editors, Logic Programming: Functions, Relations and Equations, pages 279–294. Prentice Hall, 1986.
G. Leavens and W.E. Wiehl. Reasoning about object-oriented programs that use subtypes. In Proceedings of ECOOP/OOPSLA-90, pages 212–223, 1990.
B. Liskov and J.M. Wing. A new definition of the subtype relation. In Proceedings of ECOOP-93, 1993.
J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, second edition, 1987.
D.B. MacQueen. An implementation of standard ml modules. In Proceedings of the ACM Conference on LISP and Functional Programming, pages 212–243, 1988.
J. McLean. A formal method for abstract specification of software. Journal of the ACM, 31(3):600–627, 1984.
J. Meseguer and X. Qian. A logical semantics for object-oriented databases. In Proceedings of ACM-SIGMOD Conference, 1993.
B. Meyer. Object-oriented Software Construction. Prentice Hall, 1988.
B. Meyer. Eiffel: The Language. Prentice Hall, 1992.
J. Mitchell, S. Meldaland, and N. Madhav. An extension of standard ML modules with subtyping and inheritance. In Proceedings of Principles of Programming Languages, pages 270–278, 1990.
A. Ohori and P. Buneman. Static type inference for parametric classes. In Proceedings of OOPSLA'89, pages 445–456, 1989.
J. Palsberg and M.I. Schwartzbach. Object-oriented type inference. In Proceedings of OOPSLA'91, pages 146–161, 1991.
G.D. Plotkin. Building in equational theories. In B. Meltzer and D. Michie, editors, Machine Intelligence, 7, pages 73–90. Halsted Press, 1972.
A. Snyder. Encapsulation and inheritance in object-oriented programming languages. In Proceedings of OOPSLA-86, pages 38–45, 1986.
B. Stroustrup. The C++ Programming Language. Addison-Wesley, second edition, 1993.
R. Sunderraman. Deductive databases with conditional facts. Lecture Notes in Computer Science, 696:162–175, 1993.
A. van Gelder, K. A. Ross, and J. S. Schlipf. The well-founded semantics for general logic programs. Journal of the ACM, 38(3):621–650, 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Alagić, S., Sunderraman, R., Bagai, R. (1994). Declarative object-oriented programming: Inheritance, subtyping and prototyping. In: Tokoro, M., Pareschi, R. (eds) Object-Oriented Programming. ECOOP 1994. Lecture Notes in Computer Science, vol 821. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0052186
Download citation
DOI: https://doi.org/10.1007/BFb0052186
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58202-1
Online ISBN: 978-3-540-48567-4
eBook Packages: Springer Book Archive