Ada 95: Contents

by
(initially revealed by Prentice Corridor, 1997)
Copyright © John
English 2001. All rights reserved.
Permission is given to redistribute this work for non-profit academic
use solely, offered that every one the constituent information are distributed unchanged
and with out cost.
This e-book, initially revealed by Prentice Corridor in 1996, was taken out
of print in 2001 and the rights to the e-book had been subsequently returned to
me by Pearson (the successor firm to Prentice Corridor). I’ve determined to
make it accessible on-line in HTML format, and on the identical time I’ve corrected
a number of errata which had been current within the printed editions of the e-book.
Its completely attainable that I may need missed some, and even
launched some brand-new ones, as a part of the method of remodeling
the textual content into HTML. When you spot any errors, please
let me know so I can right the
grasp copy, which will be discovered at
http://www.it.bton.ac.uk/staff/je/adacraft/.
Downloadable copies can be found as
http://www.it.bton.ac.uk/staff/je/adacraft/bookhtml.zip
(in zip format for Home windows programs) or as
http://www.it.bton.ac.uk/staff/je/adacraft/bookhtml.tar.gz
(a gzipped tarball for Unix programs).
Every distribution additionally consists of the whole set of examples from the
e-book, each for Home windows (adacraft.zip)
and for Unix (adacraft.tar.gz).
Contents
- Preface
Part One: Fundamentals
- 1. Programming concepts
- 1.1 What’s a program?
1.2 Readability, maintainability, portability and reusability
1.3 Specs and implementations
1.4 Summary information varieties
1.5 Generics
1.6 Inheritance and polymorphism - 2. Fundamentals of Ada
- 2.1 Howdy, world!
2.2 Names in Ada
2.3 Program structure
2.4 Context clauses
2.5 Strings
2.6 A easy calculator
2.7 Process specs
Exercises - 3. Statements
- 3.1 If statements
3.2 Task statements
3.3 Compound situations
3.4 The case assertion
3.5 Vary checks
3.6 The null assertion
3.7 Loops
3.8 The calculator program revisited
3.9 Exception dealing with
Exercises - 4. Procedures, functions and packages
- 4.1 Zeller’s Congruence
4.2 Declaring procedures
4.3 Declaring features
4.4 Scope and lifelong
4.5 Separate compilation
4.6 Subprograms as library models
4.7 Packages
4.8 Baby packages
Exercises - 5. Defining new data types
- 5.1 Commonplace information varieties
5.2 Integers
5.3 Subtypes
5.4 Derived varieties
5.5 Modular integers
5.6 Actual varieties
5.7 Numeric literals
5.8 Constants
5.9 Enumerations
5.10 The sort Boolean
5.11 The sort Character
5.12 Renaming declarations
Exercises - 6. Composite data types
- 6.1 File varieties
6.2 Strings
6.3 Declaring array varieties
6.4 Unconstrained varieties
6.5 For loops revisited
6.6 A easy sorting process
6.7 Multidimensional arrays
6.8 Discriminants
6.9 Restricted varieties
6.10 Utilizing packages with information varieties
Exercises - 7. Exceptions
- 7.1 The significance of exception dealing with
7.2 Declaring exceptions
7.3 Re-raising exceptions
7.4 Getting details about exceptions
7.5 File enter/output
Exercises - 8. Program design and debugging
- 8.1 Stepwise refinement
8.2 Preliminary design
8.3 Diary package deal design
8.4 Debugging the principle program
8.5 Displaying the appointments
8.6 Including new appointments
8.7 Deleting appointments
8.8 Loading and saving
8.9 Assessing this system
Exercises -
Part Two: Abstract Data Types
- 9. Private types
- 9.1 The necessity for abstraction
9.2 Package deal design
9.3 Non-public varieties
9.4 Full and partial views
9.5 Deferred constants
9.6 The package deal physique
9.7 Overloaded operators
9.8 Use sort clauses
9.9 A phrase of warning
9.10 The package deal Ada.Calendar
Exercises - 10. Designing with abstract data types
- 10.1 The design course of revisited
10.2 Separating out the consumer interface
10.3 Designing the mannequin
10.4 Defining the view package deal
10.5 Implementing the ADT packages
10.6 Diary operations
10.7 Upkeep points
Exercises- 11. Dynamic memory allocation
- 11.1 Entry varieties
11.2 Linked lists
11.3 Doubly linked lists
11.4 Iterators
11.5 Deallocating reminiscence
11.6 Designing a linked listing diary
11.7 Implementing a linked listing diary
11.8 Normal entry varieties
11.9 Entry parameters and discriminants
Exercises- 12. Generics
- 12.1 Generic packages
12.2 Generic parameters
12.3 Revising the diary package deal
12.4 A generic sorting process
12.5 Generics and normal entry varieties
Exercises- 13. Building a calculator
- 13.1 Dealing with operator priority
13.2 A stack package deal
13.3 An improved calculator
13.4 Implementing the stack package deal
13.5 Opaque varieties
13.6 Formalising the syntax of expressions
13.7 A recursive descent parser
ExercisesPart Three: Designing extensible software
- 14. Tagged types
- 14.1 Extending present software program
14.2 Variant data
14.3 Tagged varieties
14.4 Inheriting primitive operations
14.5 A package deal for representing conferences
14.6 The hazards of inheritance
14.7 Inheritance or containment?
Exercises- 15. Polymorphism and dispatching
- 15.1 Class-wide varieties
15.2 Dispatching
15.3 Summary varieties
15.4 An object-oriented diary
15.5 Stream enter/output
15.6 Different diary operations
15.7 Extending the diary
Exercises- 16. Controlled types
- 16.1 Reminiscence leaks
16.2 Consumer-defined finalisation
16.3 Good pointers
16.4 Consumer-defined task
16.5 Testing managed varieties
Exercises- 17. An object-oriented calculator
- 17.1 Expression-handling objects
17.2 Tokens
17.3 Token extraction
17.4 Expression analysis
17.5 Was it price it?
Exercises- 18. Designing a spreadsheet
- 18.1 Spreadsheets
18.2 Defining this system
18.3 The spreadsheet class
18.4 Cell implementation
18.5 Formulation cells
18.6 Deriving a brand new expression sort
Exercises- 19. Multitasking
- 19.1 Energetic objects
19.2 Process varieties
19.3 Speaking with duties
19.4 Extra about choose statements
19.5 Transferring information throughout a rendezvous
19.6 Sharing information between duties
19.7 An energetic spreadsheet
Exercises- 20. Loose ends
- 20.1 Different options of Ada
20.2 Different sources of knowledgeAppendices
- A. Language summary
- A.1 Compilation models
A.2 Statements
A.3 Declarations
A.4 Sort declarations
A.5 Exceptions
A.6 Expressions
A.7 Generics
A.8 Multitasking options
A.9 The Ada sort hierarchy- B. Selected standard packages
- B.1 The hierarchy of the usual packages
B.2 The package deal Commonplace
B.3 The package deal Ada.Text_IO
B.4 The package deal Ada.Sequential_IO
B.5 The package deal Ada.Streams.Stream_IO
B.6 The package deal Ada.Characters.Dealing with
B.7 The package deal Ada.Characters.Latin_1- C. Language-defined attributes
- D. Package Listings
- D.1 JE
D.2 JE.Appointments
D.3 JE.Appointments.Conferences
D.4 JE.Appointments.Deadlines
D.5 JE.Diaries
D.6 JE.Expressions
D.7 JE.Expressions.Spreadsheet
D.8 JE.Lists
D.9 JE.Menus
D.10 JE.Pointers
D.11 JE.Spreadsheets
D.12 JE.Spreadsheets.Energetic
D.13 JE.Stacks
D.14 JE.Occasions- Glossary
- 10.1 The design course of revisited
Revision historical past
$Log: contents.htm,v $ Revision 1.2 2002/02/22 01:47:19 WouldBeRoot Up to date textbooks. Revision 1.3 2002/02/21 13:00:00 JE Minor corrections to chapters 2, 3, 13, 17 and 18, and to the examples for chapters 3, 13, 18 and 19: the British utilization of "full cease" as a substitute of "interval" has confused some American readers, so "semicolon" has been substituted all through to maintain issues language-independent. Revision 1.2 2001/11/17 12:00:00 JE An astonishing variety of errors in each the textual content and the formatting have now been mounted. I'm significantly indebted to Tad Ashlock and Jeffrey Cherry for sending me extraordinarily detailed lists of issues and corrections. Revision 1.1 2001/09/12 11:00:00 JE Preliminary revision