Generalising the BETA type system
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.
Keywordslanguage design type systems object-oriented modelling constraints BETA
Unable to display preview. Download preview PDF.
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [Meyer 92]B. Meyer. Eiffel, The Language. Prentice Hall, 1992.Google Scholar
- [Omohundro 93]S. Omohundro. The Sather Programming Language. Doctor Dobb's Journal, pages 42–48, October 1993.Google Scholar
- [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
- [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
- [Shang 95]
- [Stroustrup 93]B. Stroustrup. The C++ Programming Language. Addison Wesley, 1993.Google Scholar