Preface |
|
v | |
|
The Language for a Complex World |
|
|
1 | (12) |
|
Programming or software engineering? |
|
|
1 | (1) |
|
Reliable software engineering |
|
|
1 | (1) |
|
Programming languages for software engineering |
|
|
2 | (1) |
|
Ada for software engineering |
|
|
3 | (1) |
|
|
3 | (3) |
|
|
6 | (5) |
|
|
11 | (2) |
|
|
13 | (18) |
|
Case study: country of origin |
|
|
13 | (2) |
|
Library units and context clauses |
|
|
15 | (1) |
|
|
15 | (1) |
|
Attributes for string conversion |
|
|
15 | (1) |
|
|
16 | (2) |
|
|
18 | (1) |
|
|
19 | (4) |
|
|
23 | (1) |
|
|
23 | (2) |
|
|
25 | (3) |
|
|
28 | (3) |
|
|
31 | (10) |
|
|
32 | (2) |
|
|
34 | (2) |
|
Parameter associations and default expressions |
|
|
36 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
39 | (2) |
|
|
41 | (18) |
|
Case study: fill and justify text |
|
|
41 | (5) |
|
|
46 | (8) |
|
Constrained array subtypes and objects |
|
|
54 | (1) |
|
Type conversion for arrays |
|
|
55 | (1) |
|
Operations on one-dimensional arrays |
|
|
55 | (1) |
|
The context of array aggregates |
|
|
56 | (3) |
|
Elementary Data Structures |
|
|
59 | (14) |
|
Case study: array priority queue |
|
|
59 | (3) |
|
|
62 | (1) |
|
Case study: tree priority queue |
|
|
63 | (3) |
|
|
66 | (7) |
|
Packages and Abstract Data Types |
|
|
73 | (26) |
|
|
73 | (1) |
|
Case study: priority queue package---version 1 |
|
|
74 | (5) |
|
Case study: priority queue package---version 2 |
|
|
79 | (2) |
|
Case study: priority queue package---version 3 |
|
|
81 | (1) |
|
Case study: priority queue package---version 4 |
|
|
82 | (4) |
|
Case study: priority queue package---version 5 |
|
|
86 | (2) |
|
Case study: priority queue package---version 6 |
|
|
88 | (1) |
|
|
89 | (5) |
|
Limited types that are not private |
|
|
94 | (1) |
|
Initialization of limited types |
|
|
95 | (4) |
|
Type Extension and Inheritance |
|
|
99 | (26) |
|
Case study: discrete event simulation |
|
|
100 | (1) |
|
|
101 | (4) |
|
|
105 | (1) |
|
|
106 | (1) |
|
The package bodies of the case study |
|
|
107 | (2) |
|
|
109 | (4) |
|
|
113 | (4) |
|
|
117 | (1) |
|
Encapsulation and child packages |
|
|
118 | (7) |
|
Type Extension and Inheritance (Continued) |
|
|
125 | (18) |
|
Designated receiver syntax |
|
|
125 | (1) |
|
|
126 | (1) |
|
|
127 | (2) |
|
|
129 | (1) |
|
|
130 | (2) |
|
|
132 | (1) |
|
Objects of class-wide type |
|
|
133 | (1) |
|
View conversion and redispatching |
|
|
134 | (1) |
|
Multiple controlling operands |
|
|
135 | (1) |
|
Dispatching on the function result |
|
|
136 | (2) |
|
|
138 | (1) |
|
|
138 | (1) |
|
Implementation of dispatching |
|
|
139 | (4) |
|
|
143 | (28) |
|
Generic declaration and instantiation |
|
|
144 | (2) |
|
|
146 | (2) |
|
Generic formal subprogram parameters |
|
|
148 | (2) |
|
Generic formal array types |
|
|
150 | (2) |
|
|
152 | (1) |
|
|
153 | (1) |
|
Indefinite type parameters |
|
|
154 | (1) |
|
Formal package parameters |
|
|
155 | (7) |
|
|
162 | (1) |
|
The fine print in the contract model |
|
|
163 | (8) |
|
Exceptions and Run-Time Checks |
|
|
171 | (18) |
|
Declaring and raising exceptions |
|
|
171 | (2) |
|
|
173 | (1) |
|
|
174 | (2) |
|
|
176 | (2) |
|
|
178 | (3) |
|
|
181 | (3) |
|
|
184 | (2) |
|
|
186 | (3) |
|
|
189 | (28) |
|
|
189 | (1) |
|
Multibyte characters and strings |
|
|
190 | (3) |
|
|
193 | (9) |
|
|
202 | (2) |
|
|
204 | (3) |
|
|
207 | (1) |
|
Discriminants of private types |
|
|
208 | (1) |
|
|
209 | (2) |
|
|
211 | (1) |
|
Untagged derived types and discriminants |
|
|
212 | (5) |
|
|
217 | (28) |
|
|
217 | (2) |
|
Access-to-subprogram types |
|
|
219 | (2) |
|
|
221 | (2) |
|
|
223 | (2) |
|
|
225 | (1) |
|
|
226 | (4) |
|
|
230 | (2) |
|
|
232 | (1) |
|
|
232 | (4) |
|
|
236 | (9) |
|
|
245 | (32) |
|
|
245 | (3) |
|
|
248 | (1) |
|
|
249 | (1) |
|
|
250 | (3) |
|
|
253 | (1) |
|
|
254 | (3) |
|
Ordinary fixed point types |
|
|
257 | (1) |
|
Decimal fixed point types |
|
|
258 | (4) |
|
Fixed point multiplication and division |
|
|
262 | (1) |
|
|
263 | (4) |
|
|
267 | (10) |
|
|
277 | (10) |
|
Libraries for input-output |
|
|
277 | (2) |
|
Interface with the operation system |
|
|
279 | (1) |
|
|
279 | (4) |
|
Generic dispatching constructors |
|
|
283 | (4) |
|
|
287 | (20) |
|
Compilation and execution |
|
|
287 | (1) |
|
Compilation and the environment of compilation |
|
|
288 | (1) |
|
|
289 | (3) |
|
|
292 | (1) |
|
|
292 | (3) |
|
|
295 | (2) |
|
|
297 | (1) |
|
|
298 | (3) |
|
|
301 | (6) |
|
|
307 | (16) |
|
|
308 | (4) |
|
|
312 | (1) |
|
|
313 | (1) |
|
|
314 | (3) |
|
|
317 | (1) |
|
|
318 | (5) |
|
Interfaces and Multiple Inheritance |
|
|
323 | (22) |
|
|
324 | (2) |
|
Case study: displayable events |
|
|
326 | (3) |
|
Case study: storable interface |
|
|
329 | (7) |
|
|
336 | (3) |
|
Generic formal tagged private types |
|
|
339 | (2) |
|
Generic formal derived types |
|
|
341 | (4) |
|
|
345 | (30) |
|
Tasks and protected objects |
|
|
346 | (6) |
|
|
352 | (5) |
|
Implementation of entry calls |
|
|
357 | (1) |
|
Case study: synchronization with rendezvous and protected objects |
|
|
358 | (5) |
|
|
363 | (1) |
|
|
364 | (1) |
|
|
364 | (3) |
|
Additional rules for protected types |
|
|
367 | (8) |
|
|
375 | (26) |
|
Activation and termination |
|
|
375 | (4) |
|
|
379 | (1) |
|
|
380 | (2) |
|
Time formatting and time zones |
|
|
382 | (1) |
|
Representation of Time and Duration |
|
|
383 | (1) |
|
Timed and conditional entry calls |
|
|
384 | (3) |
|
Asynchronous transfer of control |
|
|
387 | (2) |
|
Alternatives for selective accept |
|
|
389 | (1) |
|
Case study: concurrent simulation |
|
|
389 | (4) |
|
Tasks as access discriminants |
|
|
393 | (8) |
|
|
401 | (22) |
|
Implementation dependences |
|
|
401 | (1) |
|
|
402 | (2) |
|
Interfaces to other languages |
|
|
404 | (5) |
|
Annex C Systems Programming |
|
|
409 | (1) |
|
|
410 | (1) |
|
|
411 | (2) |
|
|
413 | (1) |
|
Task identification and attributes |
|
|
414 | (3) |
|
Detecting task termination |
|
|
417 | (6) |
|
|
423 | (28) |
|
Annex D Real-Time Systems |
|
|
423 | (1) |
|
Scheduling and priorities |
|
|
423 | (2) |
|
Task dispatching policies |
|
|
425 | (3) |
|
Base and active priorities |
|
|
428 | (2) |
|
|
430 | (1) |
|
|
431 | (1) |
|
|
431 | (2) |
|
|
433 | (2) |
|
|
435 | (2) |
|
|
437 | (1) |
|
|
438 | (1) |
|
Asynchronous task control |
|
|
438 | (1) |
|
|
438 | (1) |
|
|
439 | (12) |
|
Distributed and High Integrity Systems |
|
|
451 | (8) |
|
|
451 | (5) |
|
|
456 | (3) |
Glossary of ARM Terms |
|
459 | (18) |
Hints |
|
477 | (2) |
Answers |
|
479 | (8) |
References |
|
487 | (2) |
Index of ARM Sections |
|
489 | (6) |
Subject Index |
|
495 | |