skip to main content
10.1145/74877.74919acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article
Free Access

Virtual classes: a powerful mechanism in object-oriented programming

Authors Info & Claims
Published:01 September 1989Publication History

ABSTRACT

The notions of class, subclass and virtual procedure are fairly well understood and recognized as some of the key concepts in object-oriented programming. The possibility of modifying a virtual procedure in a subclass is a powerful technique for specializing the general properties of the superclass.

In most object-oriented languages, the attributes of an object may be references to objects and (virtual) procedures. In Simula and BETA it is also possible to have class attributes. The power of class attributes has not yet been widely recognized. In BETA a class may also have virtual class attributes. This makes it possible to defer part of the specification of a class attribute to a subclass. In this sense virtual classes are analogous to virtual procedures. Virtual classes are mainly interesting within strongly typed languages where they provide a mechanism for defining general parameterized classes such as set, vector and list. In this sense they provide an alternative to generics.

Although the notion of virtual class originates from BETA, it is presented as a general language mechanism.

References

  1. 1.Ada Reference Manual: Proposed Standexd Document. United States Department of Defense, July i980.Google ScholarGoogle Scholar
  2. 2.P. America: Inheritance and Subtyping in a Pexallel Object-Oriented Language. ECO OP '87, European Conference on Object-Oriented Programming, Lecture Note8 in Computer Science, Vol. Y276, Springer Verlag, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.A.H. Borning, D.tt. Ingalls: A Type Declaration and Infereace System for Smalltalk. University of Washington, August 1981.Google ScholarGoogle Scholar
  4. 4.O.J. Dahl, B. Myrhaug, K. Nygaard: SIMULA 67 Common Base. Norwegian Computing Center, O slo, 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.H.P. DaMe, M. Lefgren, B. Magnusson, O.L. Madsen: The Mj~lner Project. Software Tools 1987, Wembley, June 1987.Google ScholarGoogle Scholar
  6. 6.A. Goldberg, D. Robson: Smalltalk-80: The Language and its Implementation. Addison Wesley, Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.B.B. Kristensen, O.L. Madsen, B. M~Uer-Pede~sen, K. Nygaard: Abstraction Mechanisms in the BETA Programming Language. Proceedings of the Tenth A CM Symposium on Principles of Programming Languages, January ¿-126 1983, Austin, Tezas. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.B.B. Kristensen, O.L. Madsen, B. M~ller-Pedersen, K. Nygaard: The BETA Programming Language. In: B.D. Shriver, P. Wegner (eel.), Kesearch Directions in Object Oriented Programm~g, MIT Press, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.B.B. Kristensen, O.L, Madsen, B. M~ller-Pedersen, K. Nygaard: Classification of Actions or Inheritance also for Methods. ECOOP'87, European Conference on Object.Oriented Programming, Lecture Notes in Computer Science, Vol. ~76, Springer Verlag, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.O.L. Madsen: Block Structure and Object Oriented Languages. In: B.D. Shriver, P. Wegner (ed.): Research Directions in Object Oriented Programming, MIT Press, 1987). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.O.L. Madsen, C. Nergaard: An Object-Oriented Metaprogramming System. Hawaii International Conference on System Sciences - 121, January 5-8, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.B. Meyer: Genericity versus Inheritance. Languages and Applications, Sigplan Notices, September 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.B. Meyer: Object-oriented Software Constrttction. Prentice Hall, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.P. Nau~ (ed.): Revised Report on The Algoritmic Language ALGOL 60. Regnecentralen. Copenhagen, 196~.Google ScholarGoogle Scholar
  15. 15.C. Nergaard, E. Sandvad: Reusability and Tailorability in the Mj~lner BETA System. Computer Science Department, Aarhus University, Draft March 1989.Google ScholarGoogle Scholar
  16. 16.B. Stroustrup: The C+-t- Programming Language. Addison- Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.B. Stroustrup: Possible Directions fox C++. Proc. USENIX C++ Workshop Nov 1987.Google ScholarGoogle Scholar
  18. 18.P. Wegner, S. Zdonik: Inheritance as an Incremental Modification Mechanism oz What Like Is and Isn't Like. ECOOP'88, European Conference on Object. Oriented Programming, Lecture Notes in Computer Science, Vol. 3~12, Springer Verlag, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Virtual classes: a powerful mechanism in object-oriented programming

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      OOPSLA '89: Conference proceedings on Object-oriented programming systems, languages and applications
      September 1989
      528 pages
      ISBN:0897913337
      DOI:10.1145/74877
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 24, Issue 10
        Special issue: Proceedings of the 1989 ACM OOPSLA conference on object-oriented programming
        Oct. 1989
        446 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/74878
        Issue’s Table of Contents

      Copyright © 1989 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 September 1989

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate268of1,244submissions,22%

      Upcoming Conference

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader