Download PDF version of this article PDF

Concurrent and Real-time Programming in Ada (3rd edition)
Alan Burns, Andy Wellings, Cambridge University Press, 2007, $75.00,
ISBN: 9780521866972

Ada is one of the few imperative programming languages with concurrency built into the design of the language itself. With the increase of multicore processors in commodity hardware, this new and revised edition of a comprehensive overview of concurrent and realtime programming in Ada arrived just at the right time.

Concurrent and Real-time Programming in Ada starts with three chapters of an introductory nature explaining the basic focus areas of the book, the nature of concurrent programming, and the problems and pitfalls of interprocess communication. The following four chapters explain Ada's language construct for dealing with concurrent behavior and interprocess communication, Ada's basic rendezvous model, the select statement, and protected objects. Advanced issues of concurrent programming are addressed in the next four chapters. From here, chapters 12 to 16 switch to realtime issues, starting with tasking and systems programming, followed by an explanation of features defined in the realtime systems annex to Ada. The next chapter presents the Ravenscar profile. Finally, the concluding chapter briefly lists the language features relevant to concurrency and realtime and the features new to Ada 2005, and gives an overview of issues still not adequately solved in the current Ada standard.

The book is clearly written and highly structured. Every feature is motivated by a clear and understandable problem; then the authors present the source code for the solution, followed by a short explanation about how this code makes use of the language features introduced and why the code solves the problem. Each chapter ends with a crisp and relevant summary. The book is self-contained, and a reader need not be too familiar with the Ada language to enjoy reading it. The behind-the-scenes workings of Ada are explained sufficiently enough that it should be possible to implement the basic idea of an Ada language feature in the programming language of your choice. —Markus Wolf

Practical API Design: Confessions of a Java Framework Architect (1st edition)
Jaroslav Tulach, Apress, 2008, $74.99,
ISBN: 9781430209737

Good software production requires good people who follow good practices and have good tools. Practical API Design is about good practices and the production of good tools.

Nowadays, very few software systems, especially object-oriented ones, are produced entirely from scratch. Most are built using tools provided by other software systems. These tools are often in the form of object methods for object-oriented systems or libraries of software calls for non-object-based systems. These methods or functions provide an interface for the programmer. All combined, the interface to these methods or functions forms an API. Many of us have spent frustrating hours trying to produce code with a poorly designed set of interfaces. Designing a good API in an object-oriented world is what this book is all about.

Author Jaroslav Tulach was the primary producer of the NetBeans APIs, so he has the experience of designing an API and listening to feedback from a large, diverse group of users. Unlike many books written by experts, this book is highly readable; however, it is not one that you can absorb in a short period of time.

The book is divided into three broad sections. The first, consisting of four chapters, covers the author's theory of design for an API. These chapters are not about how but about why the author designs as he does. The next eight chapters form a core set of design practices. Each chapter includes small snippets of code to illustrate the principle being presented. For anyone who creates software in an object-oriented language, there is a lot to learn here; it is especially true for Java, although there is a lot of just plain good advice about the construction of software systems. The third part of the book covers what is best described as a series of practical tips, some procedures to follow, and a few "tricks of the trade."

—J. Miller


Originally published in Queue vol. 6, no. 6
see this item in the ACM Digital Library


© ACM, Inc. All Rights Reserved.