Extending the object-orientedness of Ada 95

  • Bernd Holzmüller
The Ada 95 Programming Language
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1088)


In the object-oriented extension of Ada 95 some constructs and connected type rules have been introduced that restrict the flexibility in using the whole set of features the object-oriented paradigm provides. Especially the introduction of tagged types leads to a loss of potential reuse if efficiency is of concern while the rules connected with dispatching disable full static type checking for subprogram calls. A closer investigation of these constructs and constraints reveals that some of them are completely unnecessary and some could be relaxed with minor changes of the language. With corresponding modifications, the language gains additional flexibility and becomes easier to use, while, through the introduction of multi-methods, the language regains the property of being statically type-safe.


object-oriented languages flexible type concepts tagged types polymorphism dispatching multi-methods Ada 95 language evaluation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Ada Reference Manual, Version 6.0, Intermetrics, Inc., 1995.Google Scholar
  2. [2]
    Rakesh Agrawal, Linda G. DeMichiel, and Bruce G. Lindsay. Static Type Checking of Multi-Methods. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems and Languages, pages 113–128, 1991.Google Scholar
  3. [3]
    Eric Amiel, Olivier Gruber, and Eric Simon. Optimizing Multi-Method Dispatch Using Compressed Dispatch Tables. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems and Languages, pages 244–258, 1994.Google Scholar
  4. [4]
    Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya Keene, Gregor Kiczales, and David A. Moon. Common Lisp Object System Specification. SIGPLAN Notices, 23, September 1988.Google Scholar
  5. [5]
    Grady Booch. Object-Oriented Analysis and Design with Applications. 2nd edition, Benjamin-Cummings, 1994.Google Scholar
  6. [6]
    Giuseppe Castagna, Giorgio Ghelli, and Giuseppe Longo. A Calculus for Overloaded Functions with Subtyping. Information and Computation, 117(1):115–135, February 1995.Google Scholar
  7. [7]
    Craig Chambers. Object-Oriented Multi-Methods in Cecil. In European Conference on Object-Oriented Programming, 1992.Google Scholar
  8. [8]
    Craig Chambers and Gary T. Leavens. Typechecking and Modules for Multi-Methods. Technical Report UW CS&E TR 94-03-01, Dep. of Computer Science and Engineering, University of Washington, March 1992.Google Scholar
  9. [9]
    Dylan Interim Reference Manual, Apple, June 1994.Google Scholar
  10. [10]
    Daniel H.H. Ingalls. A Simple Technique for Handling Multiple Polymorphism. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems and Languages, pages 347–349, 1986.Google Scholar
  11. [11]
    Bertrand Meyer. Eiffel: the Language. Prentice Hall, 1992.Google Scholar
  12. [12]
    Bertrand Meyer. Beware of Polymorphic Catcalls. Unpublished Draft 5, October 1995.Google Scholar
  13. [13]
    Warwick B. Mugridge, John Hammer, and John G. Hosking. Multi-Methods in a Statically-Typed Programming Language. In European Conference on Object-Oriented Programming, pages 307–324, 1991.Google Scholar
  14. [14]
    Mats Weber. Proposals for Enhancement of the Ada Programming Language: A Software Engineering Perspective. PhD thesis, Software Engineering Lab, Swiss Federal Institute of Technology, November 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Bernd Holzmüller
    • 1
  1. 1.Computer Science DepartmentUniversity of StuttgartStuttgartGermany

Personalised recommendations