|
ABSTRACT
Ada 9X refines the Ada 83 concept of class and introduces class-wide types to support run-time polymorphism. We study how the Ada definition of class compares to other definitions of this term. We examine how run-time polymorphism is introduced in Ada 9X, how it relates to the different concepts of subtype, and how it compares with other forms of polymorphism. We also discuss the different uses of class-wide types, mainly as a means for dynamic binding (dispatching). However, since Ada 9X has adhered to the philosophy of building blocks, class-wide entities can be used for other purposes than dispatching. These uses are idioms that every programmer should be aware of. Some of these idioms are presented here. We also examine how classes are integrated with generics.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Reference Manual of The Ada Programming Language. Washington, D.C.: Department of Defense, Ada Joint Program Office, Feb. 1983.
|
| |
2
|
Ada 9X Mapping~evision Team. Ada 9X Reference Manual (Draft Version 5.0). Intermetrics, Inc., 733 Concord Avenue, Cambridge, Massachusetts 02138, MA, USA, June 1994. IR-MA-1363-3.
|
 |
3
|
Stéphane Barbey , M. Kempe , A. Strohmeir, Advanced object-oriented features and programming in Ada 95, Tutorial proceedings on TRI-Ada '91: Ada's role in global markets: solutions for a changing complex world, p.359-489, November 05-10, 1995, Anaheim, California, United States
[doi> 10.1145/216591.216607]
|
| |
4
|
S. Barbey and A. Strohmeier, The problematics of testing object-oriented software. In M. Ross, C. Brebbia, G. Staples, and J. Stapleton, editors, SQM '94 Second Conference on Software Quality Management, volume 2, pages 411-426, Edinburgh, Scotland, UK, July 26-28 1994.
|
| |
5
|
J. Barnes, B. Brosgol, K. Dritz, O. Pazy, and B. Wichmann. Ada 9X Rationale (Draft Version 5. 0). intermetrics, inc., Cambridge, MA, USA, June 1994.
|
| |
6
|
|
| |
7
|
|
 |
8
|
|
 |
9
|
Luca Cardelli , James Donahue , Lucille Glassman , Mick Jordan , Bill Kalsow , Greg Nelson, Modula-3 language definition, ACM SIGPLAN Notices, v.27 n.8, p.15-42, Aug. 1992
[doi> 10.1145/142137.142141]
|
 |
10
|
|
 |
11
|
|
| |
12
|
|
| |
13
|
G. Dismukes and E. Ploedereder. Accidental overriding considered evil. Comment to the MRT 94-3955.a (ftp ajpo.sei.cmu.edu:/public/ada9x/mrtcommentsl 94.0302), Mar. 1992.
|
| |
14
|
G. Eckert. Types, classes and collections in objectoriented analysis. In ICRE '94 First International Conference on Requirements Engineering, pages 32- 39, Colorado Springs, Colorado, USA, Apr. 18-22 1994.
|
 |
15
|
Paul Hudak , Simon Peyton Jones , Philip Wadler , Brian Boutel , Jon Fairbairn , Joseph Fasel , María M. Guzmán , Kevin Hammond , John Hughes , Thomas Johnsson , Dick Kieburtz , Rishiyur Nikhil , Will Partain , John Peterson, Report on the programming language Haskell: a non-strict, purely functional language version 1.2, ACM SIGPLAN Notices, v.27 n.5, p.1-164, May 1992
[doi> 10.1145/130697.130699]
|
| |
16
|
|
| |
17
|
|
 |
18
|
|
 |
19
|
|
| |
20
|
|
| |
21
|
|
| |
22
|
|
| |
23
|
H. M6ssenb6ck and N. Wirth. The programming language Oberon-2. Technical report, Institut fur Compustersysteme, ETH Zurich, Jan. 1992.
|
 |
24
|
|
 |
25
|
|
| |
26
|
|
| |
27
|
|
|