Buy New

Sign in to turn on 1-Click ordering.
Buy Used
Used - Very Good See details
Price: £44.91

Trade in Yours
For a £20.90 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Image not available

Tell the Publisher!
I’d like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Programming in ADA 2005 (International Computer Science Series) [Paperback]

John Barnes
3.5 out of 5 stars  See all reviews (2 customer reviews)
Price: £56.99 & FREE Delivery in the UK. Details
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 2 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want it Tuesday, 22 April? Choose Express delivery at checkout. Details Trade-In Store
Did you know you can use your mobile to trade in your unwanted books for an Gift Card to spend on the things you want? Visit the Books Trade-In Store for more details or check out the Trade-In Amazon Mobile App Guidelines on how to trade in using a smartphone. Learn more.

Book Description

25 May 2006 0321340787 978-0321340788 1

Ada has carved itself a niche in the safety-critical/embedded/real-time areas. It is the language of choice in application areas where reliability, long term maintainability and similar features are very important. Typical of such areas are defence embedded systems, railway signalling, air traffic control and so on.

Note especially that SPARK which is very successful for critical systems is based on Ada. No other language really has a suitable underlying structure.

This latest edition of the highly successful 'Programming in Ada' has been fully updated to the latest version of the language: Ada 2005.

Product details

  • Paperback: 848 pages
  • Publisher: Addison Wesley; 1 edition (25 May 2006)
  • Language: English
  • ISBN-10: 0321340787
  • ISBN-13: 978-0321340788
  • Product Dimensions: 23.4 x 17.2 x 4.5 cm
  • Average Customer Review: 3.5 out of 5 stars  See all reviews (2 customer reviews)
  • Amazon Bestsellers Rank: 712,987 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Authors

Discover books, learn about writers, and more.

Product Description

From the Back Cover

Programming in Ada 2005


John Barnes


“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.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

4 star
3 star
1 star
3.5 out of 5 stars
3.5 out of 5 stars
Most Helpful Customer Reviews
1 of 1 people found the following review helpful
2.0 out of 5 stars Hopeless Textbook, For Reference Only 3 April 2012
This book should never be used as a text by Ada learners.

I say this because the author has not gathered his material coherently for beginners with Ada.
He writes off the point far too often -- e.g. on the "hidden" part of a package with a private type -- and often confuses the original objective of an Ada construct with one of its useful by-products.
There is also far too much polemics on computer languages in this book -- what's right in Java, what's not right in C, etc. No textbook ought have much of this.
The writing style is disagreeably quaint and quite show-off as well.
And worst of all - unforgivable in a textbook, really - is the lack of useful exercises to consolidate the contents of each section. Without these you never really learn in the true sense.
While fixing a book to one platform or compiler would not be desirable, I feel that making readers to run basic programs (e.g. on some free compiler and IDE) from the beginning would be the easiest way to give them confidence with Ada. These programs could then be adapted as further elements of Ada are acquired in subsequent sections. Some wholly new example programs from a variety of professional fields could also be added in as the reader goes through the book.
This would make the learning experience much more engaging and effective.

No good Ada 2005 textbooks being yet available, I can only advise readers to get a good Ada 95 text (John English's Ada : The Craft of Object Oriented Programming being my personal choice) and then learn (from Barnes or the ARM) how the Ada 2005 updates enhance it.
A reluctant 2 stars for this effort by Barnes, who seems more concerned with exhibiting his own virtuosity than in guiding readers through the elements of Ada, a truly useful modern computer language.
Comment | 
Was this review helpful to you?
1 of 5 people found the following review helpful
Great book!

In my opinion this book is best one for learning the Ada 2005 programming language.
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on (beta) 3.9 out of 5 stars  8 reviews
11 of 11 people found the following review helpful
5.0 out of 5 stars A definitive work 3 Jan 2007
By Chris - Published on
This is a definitive work by someone that clearly understands the history, culture and technical aspects of Ada. Thank you (once again) to John Barnes ! This is the Ada textbook you need.

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 !
6 of 6 people found the following review helpful
4.0 out of 5 stars Good Reference 10 Feb 2009
By K. Swanger - Published on
I agree that the book may not be for beginners but it is a good reference to have while coding. It is much easier to have this by your side than going and searching a document on the computer constantly. The book is a little vague on the topics but it is enough information to get you started in the right direction. If you are looking for a complete How-To guide for Ada then this is not the manual for you. If you are looking for a book that will give you some guidance on syntax and functions and only need a reference then this is the book for you.
5 of 5 people found the following review helpful
4.0 out of 5 stars a strictly intermediate textbook 23 April 2011
By Dan'l Miller - Published on
Excellent textbook whose main message could be summarized as: Ada2005 is not your father's Ada83. Or Ada83 corrected and done right. Or perhaps by unstated-by-Barnes implication: C++ and Java done right, assuming an Algol68/Pascal syntax instead of C syntax.

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.
3 of 3 people found the following review helpful
4.0 out of 5 stars Coverage of modern Ada 30 July 2012
By a reader - Published on
The most thorough text on Ada is Cohen's _Ada as a Second Language_. Barnes has two qualities to distinguish it from Cohen; it is a good deal more readable and it covers Ada 2005.

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.
3.0 out of 5 stars Not what I was hoping for 18 Jun 2013
By Alan Jump - Published on
Format:Paperback|Verified Purchase
While Barnes' text is an outstanding reference for those who want to understand the "whys" and "wherefores" of Ada, it's limited in value as a basic instructional text on the language, because Barnes DOES go so deeply into those "whys" and "wherefores".

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.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for similar items by category