Advanced Journey With Ada: A Flight In Progress
Warning
This is work in progress!
Information in this document is subject to change at any time without prior notification.
Note
The code examples in this course use a 50-column limit, which
greatly improves the readability of the code on devices with a small
screen size. This constraint, however, leads to an unusual coding
style. For instance, instead of calling Put_Line
in a single
line, we have this:
Put_Line
(" is in the northeast quadrant");
or this:
Put_Line (" (X => "
& Integer'Image (P.X)
& ")");
Note that typical Ada code uses a limit of at least 79 columns. Therefore, please don't take the coding style from this course as a reference!
This course will teach you advanced topics of the Ada programming language. The Introduction to Ada course is a prerequisite for this course.
This document was written by Gustavo A. Hoffmann and Robert A. Duff, with contributions from Franco Gasperoni, Gary Dismukes, Patrick Rogers, and Robert Dewar.
This document was reviewed by Patrick Rogers and Tucker Taft.
CHANGELOG
Release 2023-05
First draft release including following parts:
Data Types
Control Flow
Modular Programming
- Data types
- Types
- Types and Representation
- Records
- Aggregates
- Arrays
- Strings
- Numerics
- Control Flow
- Expressions
- Statements
- Subprograms
- Exceptions
- Modular programming
- Resource Management
- Access Types
- Access types: Terminology
- Access types: Allocation
- Discriminants as Access Values
- Parameters as Access Values
- Self-reference
- Mutually dependent types using access types
- Dereferencing
- Ragged arrays
- Aliasing
- Accessibility Levels and Rules: An Introduction
- Unchecked Access
- Unchecked Deallocation
- Null & Not Null Access
- Design strategies for access types
- Access to subprograms
- Accessibility Rules and Access-To-Subprograms
- Access and Address
- Anonymous Access Types
- Named and Anonymous Access Types
- Anonymous Access-To-Object Types
- Access discriminants
- Self-reference
- Mutually dependent types using anonymous access types
- Access parameters
- User-Defined References
- Anonymous Access Types and Accessibility Rules
- Anonymous Access-To-Subprograms
- Accessibility Rules and Anonymous Access-To-Subprograms
- Access Types