- Paperback: 848 pages
- Publisher: Pearson (July 10, 2006)
- Language: English
- ISBN-10: 0321340787
- ISBN-13: 978-0321340788
- Product Dimensions: 6.8 x 1.8 x 9.2 inches
- Shipping Weight: 3.1 pounds (View shipping rates and policies)
- Average Customer Review: 8 customer reviews
- Amazon Best Sellers Rank: #1,701,018 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Programming in Ada 2005 with CD
Use the Amazon App to scan ISBNs and compare prices.
Customers who bought this item also bought
What other items do customers buy after viewing this item?
From the Back Cover
Programming in Ada 2005
This book is going to be a tremendous resource that will prove useful for many years. It combines a broad description of the entire language, including its predefined libraries, with an in-depth study of a number of areas of particular interest such as object-oriented techniques or concurrency. It includes extensive examples showing how the numerous features of Ada can be made to work together in practical situations.
~ Pascal Leroy, Chairman of the Ada Rapporteur Group.
Programming in Ada 2005 is the definitive tutorial and reference for a ground-breaking new version of Ada (Ada 2005), a significant revision of the language of choice for applications where safety, security and reliability are paramount.
The major changes from Ada 95 are:
Ø A new OO model to incorporate Java-style multiple inheritance and more rigorous error analysis prior to execution;
Ø Synchronized interfaces to unify the OO and concurrent domains a radical innovation in language design;
Ø More flexible but totally safe manipulation of pointers;
Ø An improved structure enabling large programs to be decomposed more easily;
Ø Many extensions to the Real-Time facilities, keeping Ada ahead of other languages for embedded applications;
Ø Improved interfacing to other systems and languages;
Ø Enhanced standard library support including containers.
John Barnes was a key member of the original Ada design team and has been a pivotal figure in its evolution ever since. Over 150,000 students and software engineers have learned Ada from previous editions widely praised for their witty and urbane style. He is also the author of High Integrity Software: The SPARK Approach to Safety and Security.
Top customer reviews
I want to know more about the proper syntax needed to craft a particular program or package, and less about the mathematical proofs behind that syntax. If I ever need to know why a particular construct works -- or doesn't work -- under the rules of Ada, I'll open up the Language Reference Manual and review the appropriate sections.
The copy I ordered and received as a "used" book was received with a great big "CS 407" label across the front, which marks it as a text for an upper-division computer science course. It's a very accurate label, and a very apt application. But since I'm still somewhere around the 206 level, this really wasn't the book for me. I'll keep it as a reference, but it won't be my primary text for learning Ada.
The book also explains the Ada standard library in part, although I wish there was more on it, but I think that would make for a complete new book. It would be good to have such a book though.
All in all a good book. I just ordered the realtime programming book since the concurrency part in this book explains all the necessary basics but there is just no room to go into the details of concurrency, it is an Ada introduction after all.
For all practical purposes, this textbook assumes that you already know a non-Ada2005 object-oriented imperative programming lanugage, and that you are interested in learning Ada as an additional OO imperative programming langugage beyond the ones that you already know, such as Ada83, Ada95, Java, C++, C#, Objective C, Python, or Smalltalk. (Conversely, this textbook rarely mentions non-Ada2005 programming languages other than Ada83 and Ada95.) Hence it is not for true beginners who do not already know basic imperative or OO concepts, because practically no introduction of or justification of such basics is provided. Although, regarding the readers for whom syntax and semantics that generally correspond to other OO imperative programming languages is their primary interest, they will be exhilarated by Barnes' illumination of the orthogonality, tunability, and flexibility that Ada's syntax permits to go from highly-efficient hardware device drivers up through quite-sophisticated abstractions & enforcements (including now, in Ada2012, declaration of Eiffel-style invariants, which of course are absent in this Ada2005 textbook) when compared to nearly any other programming language: OO or imperative or generic or pure-functional or otherwise.
Conversely, this textbook (and the reason that I deducted one star) provides very few details regarding how the Ada run-time checks operate and only partially covers how the Ada compile-time checks operate. When writing programs in Ada, one must not only be thinking of the syntax, but of a more-elaborate semantics than is present in nearly any other programming language, because few other programming languages attempt to perform mostly a priori as elaborate of a proof-by-mathematical-induction of the correctness of the lifetime of memory allocation as Ada does. 1) A priori design of strong- versus weak-links in otherwise a posteriori smart-pointer synchronous garbage destruction in C++, 2) Ada's largely a priori proof-construction mostly at compile time for the compiler or runtime to overtly/synchronously know when the end-of-life occurs, and 3) the various flavors of asynchronous automatic garbage collection (AGC) in many programming lanugages are 3 competing schools of thought, where it is largely C++ versus Ada versus the rest of the imperative-programming world, so it is no trivial matter in learning Ada. Multiple times in this textbook, Barnes touches on this memory-allocation end-of-life topic with an it-just-works attitude without enumerating all the nontrivial subtleties (as the LRM and AARM do) that can precipitate the situation where the Ada compiler can emit a vast variety of compile-time errors that inform the programmer that the code's malformedness or sloppiness a) blocks incremental formation of the mathematical proof and b) hence likely has at least one bug.
On this topic of determining memory allocations' end of life, I do sympathize with the reviewer who instructed us all in effect: go read the freely-available-for-download _Ada Reference Manual_ (LRM) or better yet the freely-available-for-download _Annotated Ada Reference Manual_ (AARM) and to a lesser degree the freely-available-for-download _Ada Rationale_ to learn about how this proof-by-mathematical-induction is constructed. Although even in those references, the information is highly scattered piecemeal. I hope that the author will add a lengthy chapter on this topic in the next edition, because it *definitely* needs more illumination (without a programmer needing to slog through the 1,220-page AARM to interpret all the subtle nuances) for a programmer to understand all the compile-time errors regarding why the program is being rejected due to the compiler's incremental formation of this mathematical proof followed by the runtime's enforcement a posteriori of what the compiler could not accomplish a priori.
The importance of readability is something you have to judge for yourself. The first few chapters of Barnes give a decent overview of Ada, but for a thorough tutorial you should look at Naiditch's _Rendezvous with Ada 95_.
When the book was updated to cover Ada 2005, the main changes were a complete revsion of Ch. 19 "Object Oriented Techniques" and the addition of Ch. 20 "Tasking Techniques" and Ch. 22 "Container Library". The new Ch. 20 covers some of what is in Burns & Wellings' _Concurrent and Real-Time Programming in Ada_. Other changes were no more than a few pages here and there. Read the freely downloadable _Ada 2005 Rationale_ to see what changed from Ada 95.
Main gripe is that, like so much of the Ada community, the author seems loathed to use pictures, instead preferring detailed text. Perhaps this culture comes from the Ada LRM. But it's very well written detailed text !