The ability to read and understand a computer program is a critical skill for the software developer, yet this skill is seldom developed in any systeamtic way in the education or training of software progressionals. These materials discuss the importance of program reading, and review what is known about reading strategies and other factors affecting comprehension. These materials also include reading exercises for a modest Ada program and discuss how educators can structure additional exercises to enhance program reading skills.
PDI is the modest Ada program mentioned in the abstract.
The source files are also available as one combined file from the SEI.
There is a related set of WWW pages on formal technical review processes. Formal technical review processes are related because comprehending a program (to some degree) is an important prerequisite to reviewing it.
The HTML files to make PDI easier to access were developed by David A. Wheeler (firstname.lastname@example.org). More help has been intentionally omitted, since a major purpose of this sample program is to teach program comprehension. For example, the table of contents is simply a list of filenames instead of more specific identification, by intent.
I suggested including this Ada program as an example because it's small enough to be easily understood and well-commented, yet uses many Ada constructs (it creates abstract types and uses tasking).
David A. Wheeler (email@example.com)