Rather than simply presenting a numbered list of references I have decided to annotate the list and group it by primary language, starting with the set of Ada related books.
1 | International Organisation for Standardisation. Information technology - Programming Languages - Ada. Ada Reference Manual. ISO/IEC 8652.1995(E). |
2 | Annotated Ada95 Reference Manual, Version 6.0. Intermetrics Inc., 1995. |
3 | Ada95 Rationale. Intermetrics Inc., 1995. |
4 | Software Productivity Consortium. Ada Quality and Style: Guidelines for professional programmers (Working Draft). SPC-94093-CMC, 1995. |
5 | J.G.P.Barnes. Programming in Ada (3rd Edition). Addison Wesley, 1989. |
6 | J.G.Barnes. Programming in Ada95. Addison Wesley, 1995. |
7 | Alan Burns, Andy Wellings. Concurrency in Ada. Cambridge University Press, 1995. |
8 | Michael B. Feldman, Elliot B. Koffman. Ada 95 Problem Solving and Program Design. Addison Wesley, 1996. |
9 | Michael B. Feldman. Software Construction and Data Structures with Ada. Addison Wesley, 1996. |
The first 3 texts above are standards documents and as such are the most vital reference material for all Ada programmers. It is important that if you do not have access to these documents then the companion CD contains either on-line or printable versions of these documents and they are also available on the Internet.
The fourth document is also found on many professional Ada programmers book shelf, it outlines good programming practice and is often used by organisations as their standard programming style guide.
The books by John Barnes are highly recommended reading, John's books where amongst the first texts available on Ada and have continued as one of the foremost teaching texts on the language. Many critics of the books point at the lack of large examples as a weakness but the book is aimed at first-time programmers or people with little background and as such large complex examples may seem daunting. I would recommend a copy of the new Programming in Ada95 as the best thing to keep next to any machine you are developing Ada programs on.
The Burns and Wellings book is a very specialised and in-depth cover of one of the more complex and difficult areas in Ada, that of tasking. The book expects a degree of familiarity with the language but is very readable and does have good, clear and concise examples. If you expect to programming highly concurrent or real-time systems then you should have a copy of this book.
Finally in this section the two books by Michael Feldman are essential reading for those new to Ada or Ada 95. The first is the best computer science text book I have ever read, bar none. Both books work in a step-wise fashion and are easy to read, full of excellent well described examples and above all teach not only Ada programming but good technique as well.
10 | Bjarne Stroustrup. The C++ Programming Language (2nd Edition). Addison Wesley, 1991. |
11 | Bjarne Stroustrup. Design and evolution of C++. Addison Wesley, 1994. |
12 | Margaret Ellis, Bjarne Stroustrup. The annotated C++ reference manual. Addison Wesley, 1991. |
13 | American National Standards Institute. Working Paper for Draft Proposed International Standard for Information Systems - Programming Language C++. X3J16/95-0087 WG21/N0687. 1995. |
14 | James O. Coplien. Advanced C++, programming styles and idioms. Addison Wesley, 1993. |
15 | David R. Musser, Atul Saini. STL Tutorial and Reference Guide. Addison Wesley, 1996. |
16 | Roger Sessions. Reusable data structures for C. Prentice Hall, 1989. |
Reference 10 is the C++ programmers bible, it contains Stroustup's own discussion of the language and contains a copy of the language reference manual. For a more in-depth look at the language-lawyer issues then the annotated C++ reference manual (or ARM as it is commonly known) is currently the best published material. Currently the new C++ standard is only available in draft form but is already a very weighty document covering both the language and the new extended library (including STL). I know this draft can be quite difficult to track down but I don't know many C++ programmers without access to [10] or [12].
James Coplien's book [14] is a very hard read, the examples are frequently complex and often take two reads before they sink in, however the book is entitled Advanced C++ and so expects a high level of C++ knowledge and if read with this in mind can be a very useful text. [13] is a somewhat dated text and although good in its day has been largely superseded. It is useful though to compare the style and content with more modern texts to see how the use of encapsulation techniques make a difference to the safety of software systems.
Last and not least [11] is a great book which although does not introduce new features or new techniques to the professional programmer does give an insight into the way the language has evolved. For anyone who is working on a large project the information can be useful in evaluating language features and their performance/safety trade-offs. To Ada programmers it is roughly equivalent to [3] the language Rationale.
17 | Martin Reiser, Niklaus Wirth. Programming in Oberon - steps beyond Pascal and Modula. Addison Wesley, 1992. |
18 | Samuel P. Harbison. Modula-3. Prentice Hall, 1992. |
19 | Tim Ritchey. Java!. New Riders, 1995. |
These 3 texts cover other programming languages other than C++ and Ada. I have introduced a reference to what I consider to be a good book for each of these languages when I mention them in this book. It is frequently the case that books on other programming languages contain new or different examples and ideas and so always have a quick look when in the book store to see what someone else has written.
20 | James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen. Object-Oriented Modeling and Design. Prentice Hall, 1991. |
This text describes the OMT method for object oriented modeling. This technique has been used in my book where class hierarchies have been described.
21 | Ada Programmers Frequently Asked Questions (FAQ). |
The last set of references are to on-line resources and published papers. [20] is always changing and if you have Internet access is available from the web site shown. As this document is constantly updated it covers many problems new Ada programmers find and is therefore worth checking.
22 | Magnus Kempe. Abstract Data Types Are Under Full Control with Ada9X. First published in the proceedings of TRI-Ada '94 (ACM Press). |
23 | Stephane Barbey. Working With Ada9X Classes. First published in the proceedings of TRI-Ada '94 (ACM Press). |
These and other papers are linked to the same Internet site as [20] and make interesting reading even though their target audience is expected to be already Ada aware.
24 | David Wheeler. Lovelace Ada95 tutorial. |
This Internet site contains an interactive tutorial which takes you step by step through a structured learning process. Try it, hopefully this book will have taught you enough to work through the pages with success and confidence.
25 | Cyrille Comar, Franco Gasperoni, Edmond Schonberg. The GNAT Project: A GNU Ada9X Compiler. |
This paper describes the GNAT compiler and might make interesting reading for those familiar with the GNU GCC C/C++ compiler or are thinking of using the GNAT compilers on the companion CD.
26 | Ulfar Erlingson, Alexander V. Konstantinou. Implementing the C++ Standard Template Library in Ada95. Rensselaer Polytechnic Institute, 1996. |
This last paper is an attempt to implement a subset of the C++ STL[13,15] in Ada95. The subset is small enough to make the paper readable, yet large enough to cover many of the issues. It does highlight some of the features used within the STL which are either unavailable in Ada95 or are implemented in a different manner. On the FTP site there is also the Ada source of the work done so far.
Copyright © 1996 Simon
Johnston &
Addison Wesley Longman