Generalising the BETA type system

  • SØren Brandt
  • JØrgen Lindskov Knudsen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1098)


The type system of object-oriented programming languages should enable the description of models that originate from object-oriented analysis and design. In this paper, the BETA type system is generalised, resulting in direct language support for a number of new modelling aspects. The increased expressive power is obtained from a synergy between general block structure and the generalised type hierarchy, and not from syntactic additions to the language.

The type hierarchy described in this paper is a superset of the class hierarchy. In order to regain an orthogonal and internally consistent language, we investigate the impact of the new type hierarchy on other parts of the language. The resulting increase in expressive power serves to further narrow the gap between statically and dynamically typed languages, adding among other things more general generics, immutable references, and attributes with types not known until runtime.


language design type systems object-oriented modelling constraints BETA 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Agesen 95]
    O. Agesen. The Cartesian Product Algorithm: Simple and Precise Type Inference of Parametric Polymorphism. In Proceedings of the Ninth European Conference on Object-Oriented Programming (ECOOP'95), Aarhus, Denmark, August 1995.Google Scholar
  2. [Agesen et al. 89]
    O. Agesen, S. FrØlund, and M. Olsen. Persistent and Shared Objects in BETA. Master's thesis, Department of Computer Science, University of Aarhus, April 1989.Google Scholar
  3. [Black et al. 87]
    A. Black, N. Hutchinson, E. Jul, H. Levy, and L. Carter. Distribution and Abstract Types in Emerald. IEEE Transactions on Software Engineering, 13(1), January 1987.Google Scholar
  4. [Brandt & Schmidt 96]
    S. Brandt and R. W. Schmidt. The Design of a Meta-Level Architecture for the BETA Language. In C. Zimmermann, editor, Advances in Object-Oriented Metalevel Architectures and Reflection. CRC Press Inc, Boca Raton, Florida, 1996.Google Scholar
  5. [Chambers & Ungar 90]
    C. Chambers and D. Ungar. Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs. In Proceedings of the SIGPLAN'90 Conference on Programming Language Design and Implementation, White Plains, NY, June 1990.Google Scholar
  6. [Dahl et al. 84]
    O. Dahl, B. Myrhaug, and K. Nygaard. Simula 67 Common Base Language. Pub. 725, Norwegian Computing Center, Oslo, 1984.Google Scholar
  7. [Madsen & MØller-Pedersen 89]
    O. L. Madsen and B. MØller-Pedersen. Virtual Classes — A Powerful Mechanism in Object-Oriented Programming. In Proceedings of the Fourth Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '89), volume 24 of Sigplan Notices, October 1989.Google Scholar
  8. [Madsen et al. 93a]
    O. Madsen, B.Magnusson, and B. Pedersen. Strong typing of Object-Oriented Languages Revisited. In J. Knudsen, O. Madsen, B. Magnusson, and M. Löfgren, editors, Object-Oriented Environments. Prentice Hall, September 1993.Google Scholar
  9. [Madsen et al. 93b]
    O. L. Madsen, B. MØller-Pedersen, and K. Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison Wesley, Reading, MA, June 1993.Google Scholar
  10. [Meyer 92]
    B. Meyer. Eiffel, The Language. Prentice Hall, 1992.Google Scholar
  11. [Omohundro 93]
    S. Omohundro. The Sather Programming Language. Doctor Dobb's Journal, pages 42–48, October 1993.Google Scholar
  12. [OxhØj et al. 92]
    N. OxhØj, J. Palsberg, and M. I. Schwartzbach. Making type inference practical. In Proceedings of the Sixth European Conference on Object-Oriented Programming (ECOOP'92), Utrecht, The Netherlands, June 1992.Google Scholar
  13. [Plevyak & Chien 95]
    J. B. Plevyak and A. A. Chien. Precise Concrete Type Inference for Object-Oriented Languages. In Proceedings of the Ninth Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '94), Portland, OR, October 1995.Google Scholar
  14. [Shang 95]
    D. L. Shang. Covariant Deep Subtyping Reconsidered. ACM SIGPLAN Notices, 30(5):21–28, May 1995.CrossRefMathSciNetGoogle Scholar
  15. [Stroustrup 93]
    B. Stroustrup. The C++ Programming Language. Addison Wesley, 1993.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • SØren Brandt
    • 1
  • JØrgen Lindskov Knudsen
    • 1
  1. 1.Department of Computer ScienceUniversity of AarhusAarhus CDenmark

Personalised recommendations