Books
Design
of multithreaded software: The entity-life modeling approach
IEEE Computer Society Press/Wiley 2011
ISBN-13: 9780470876596
This book is intended for designers and programmers of
multitask software. While it contains an overview of the tasking/threading
support in Ada and Java, it is really intended for architects, designers and
programmers who understand tasking/threading. It introduces entity-life
modeling, an intuitive design approach. With entity-life modeling, you pattern
tasks on event threads in the problem domain much as an object-oriented program
is patterned on objects in the problem domain. With multiprocessors and cores
becoming commonplace, we should stop regarding concurrency as a pragmatic
engineering device and view it as another way to model the problem structure in
the software.
The book is more Ada oriented than the title suggests.
Most examples are in Ada. Earlier versions of the manuscript have been
available on the Web for some time under the title Multithreading.
Contents:
I. Foundations
1. Introduction
2. Support for multithreading (Ada, Java and Real-Time Java, and Pthreads)
3. State modeling
II The ELM way
4. Entity-life modeling
5. Design patterns based on event threads
6. Event-thread patterns for resource sharing
7. Simultaneous exclusive access to multiple resources
III Background and discussion
8. Real-time software architectures and data-flow design approaches
9. The origins of entity-life modeling
Author: Bo Sandén (Colorado Technical University)
Keywords: Ada 2005; reactive software; embedded software; real-time
systems programming; object-oriented programming; software design; software
architecture; multithreading; multitasking; thread architecture
Link to the publisher's server
Concurrent
and Real-Time Programming in Ada 2005
Cambridge University Press, 2007
ISBN-13: 9780521866972
Ada is the only ISO-standard, object-oriented,
concurrent, real-time programming language. It is intended for use in large,
long-lived applications where reliability and efficiency are essential,
particularly real-time and embedded systems. In this book, Alan Burns and Andy
Wellings give a thorough, self-contained account of how the Ada tasking model
can be used to construct a wide range of concurrent and real-time systems. This
is the only book that focuses on an in-depth discussion of the Ada tasking
model. Following on from the authors' earlier title Concurrency in Ada, this
book brings the discussion up to date to include the new Ada 2005 language and
the recent advances in real-time programming techniques. It will be of value to
software professionals and advanced students of programming alike: indeed every
Ada programmer will find it essential reading and a primary reference work that
will sit alongside the language reference manual.
Authors: Alan Burns & Andy Wellings (University of York)
Keywords: Ada 2005; real-time systems programming; object-oriented
programming; book
Link to the publisher server
Ada
Plus Data Structures: An Object-Oriented Approach, Second Edition
Jones and Bartlett Publishers, 2007
This is the most up-to-date, student-friendly Ada text
available. Using the newly updated Ada 2005, the text introduces and discusses
such familiar topics as strings, sets, stacks, queues, lists, trees, graphs,
and much more. The recurring theme throughout the text is modeling with levels
of abstraction, presenting each class from three different perspectives: their
specification, their abstraction, and their implementation. Using this
approach, the authors stress computer science theory and software engineering
principles including information hiding, data encapsulation, data abstraction,
stepwise refinement, and visual aids. With its Object-Oriented presentation,
real-world applications, and traditional Dale Pedagogy, Ada Plus Data
Structures is a pleasure to read and learn from.
Authors: Nell Dale and John McCormick
Keywords: Ada 2005; Programming; book
Link to the publisher server
Programming
in Ada 2005
Addison Wesley, 2006
ISBN13: 9780321340788, ISBN10: 0321340787
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.
Author: John Barnes
Keywords: Ada 2005; GNAT, SPARK, programming; book
Link to the publisher server (10% discount)
Ada
Distilled: An Introduction to Ada Programming for Experienced Computer
Programmers
Copyright AdaWorks Software Engineering,
2002
This book is aimed at experienced programmers who want
to learn Ada at the programming level. It is not a "...for dummies" book, nor is it intended as a program
design book. Instead, we highlight some key features of the Ada language, with
coded examples, that are essential for getting started as an Ada programmer.
This book emphasizes syntax, control structures, subprogram rules, and how-to
coding issues rather than design issues. There are other really fine books
available that deal with design. Also, this is not a comprehensive treatment of
the Ada language. The bibliography lists some books that can help you once you
have finished the material in this book. Think of this a quick-start book, one
that enables you, the experienced programmer, to get into the Ada language
quickly and easily. The examples use text-oriented programs for simplicity of
learning. If you prefer to do the exercises for a GUI environment, check out
the sites listed for compilers and tools so you can download bindings for
programming in a variety of windowing environments, including Wintel, Linux,
and Unix. Of particular interest to those wanting to explore Window style
programming are GtkAda, CLAW, GWindows, and JEWL.
Author: Richard Riehle
Keywords: Programming, Ada 95; book
License: Public Edition. Permission to copy if AdaWorks is acknowledged
in copies.
Version: July 2003
Ada_Distilled.PDF
Examples.ZIP
Programming
and Problem Solving with Ada 95, Second
Edition
Jones and Bartlett Publishers, 2000.
ISBN: 0763707929
Programming and Problem Solving with Ada 95 provides a
solid introduction to programming while introducing the capabilities of Ada 95
and its syntax without overwhelming the student. The book focuses on the
development of good programming habits. This text offers superior pedagogy that
has long defined computer science education, including problem solving case
studies, testing and debugging sections, quick checks, exam preparation,
programming warm-up exercises, and programming problems.
Authors: Nell Dale, Chip Weems, John W. McCormick
Keywords: Ada 95; Programming; book
Link to the publisher server
Ada
for Software Engineers
John Wiley & Sons, 1998, ISBN
0-471-97912-0
This book teaches the language as it is used in
practice through relatively large case-studies such as a discrete event
simulation. The presentation emphasizes the features for object-oriented and
systems programming that were introduced in Ada 95.
Author: M. Ben-Ari
Keywords: Software Engineering, Ada 95; book
License: Copyright 2005 by M. Ben-Ari. You may download, display and
print one copy for your personal use in non-commercial academic research and
teaching. Instructors in non-commerical academic institutions may make one
copy for each student in his/her class. All other rights reserved. In
particular, posting this document on web sites is prohibited without the
express permission of the author.
Link to the download server
Ada95:
the Craft of Object-Oriented Programming
Prentice Hall Europe, 1996 (ISBN 0-13-230350-7)
This text teachs Ada by concentrating on a relatively
small number of examples which are capable of improvement and to refine them
throughout the book. The result is that the order of topics is primarily
example driven; new topics are introduced by adding extra 'bells and whistles'
to existing examples. The examples start with the traditional 'Hello world'
program and gradually get more and more elaborate, culminating in two
reasonably sized examples: an electronic diary and a spreadsheet. Although
these are only about a thousand lines of code each in their final versions,
they nevertheless show the sort of maintenance problems that arise in 'real
world' applications and illustrate how careful design can alleviate such
problems.
Author: John English
Keywords: Software Engineering, Ada 95; book
License: Permission is given to redistribute this work for non-profit
educational use only, provided that all the constituent files are distributed
unchanged and without charge.
Link to the download server
GNAT:
The GNU Ada Compiler
Free book that documents the internals of the GNAT
compiler.
Authors: Javier Miranda and Edmond Schonberg
Keywords: book; compilation; gnat
License: GNU Free Documentation License
HTML
PDF
PostScript
ZIP (contains
HTML, PostScript and PDF).
Teaching
Ada by Examples
Prof. Ted Baker teaches Ada as one of the parts of a
general programming languages course. He found that running through a catalog
of Ada features in class would take too much time, so he decided to try
teaching Ada by examples, introducing various Ada language features in the
examples that he uses for illustration of language implementation concepts (so
far, mainly scanning and recursive descent parsing). For example he uses
exception handling for error recovery, and explains how Ada does it as he walks
through the code of the parser. In addition he starts with fully qualified
names, and then introduce renaming declarations in the examples to shorten the
code to fit better on the web pages. This web server provides his collection of
examples but also some introductory material to the Ada language (documents
originally writen by Robert Dewar and Ed Schonberg and slightly extended by Ted
Baker).
Author: Ted Baker
Keywords: Programming languages, Ada; examples
Link to the download server
Course
on Compilers Construction (Slides)
This course covers the following items: architecture
of a modern compiler (GNAT), lexical scanning, parsing, automatic parser
construction, semantic analysis, type checking, run-time organization, intermediate
code generation, code generation, and optimization techniques.
Author: Edmond Schonberg
Keywords: Compiler construction, GNAT; slides
Link to the download server
Ada 95
Distributed Systems Annex (Slides)
These slides are used to teach Ada distributed systems
at ENST.
Author: Laurent Pautet; Franco Gasperoni
Keywords: teaching material; distributed systems
Compatible with GAP version: all (checked by Thomas Quinot)
License: GNU Free Documentation License
PDF
The
GNAT-on-Mindstorms project
Authors: AdaCore
Description: The GNAT-on-Mindstorms project aims at porting the GNAT
technology to the Lego Mindstorms NXT. The final goal of the project is to
provide an ideal platform to aswer the industrial need for education in
High-Integrity Embedded Systems development.
PDF Slides
Real-Time
Embedded Systems Lab (Model Train Laboratory)
Authors: John W. McCormick Team
Address: Computer Science Department. University of Northern Iowa.
Description: Describes how to mount a model train laboratory that allows
your students to experiment with real-time concepts in a nice environment.
Link to the Main Page
Direct
link to the video
Run-Time
System for GAP compilers based on MaRTE OS
This run-time for x86-Linux is based on MaRTE OS
acting as a threads-library. Since it does not rely on Linux threads (as the
other run-times for x86-Linux do) it allows Ada programs to have a behaviour
that follows the Real-Time Systems Annex (proper use of priorities and
FIFO_Within_Priorities scheduling policy) without super-user privileges.
Authors: Mario Aldea Rivas and Michael Gonzalez Harbour
Keywords: Run-Time System; Real-Time Ada; GNAT.
Compatible with GAP version: GAP 2005a
License: GPL
Index page on U. Cantabria site.
MARTE
OS: Real-Time kernel
Real-time kernel for embedded applications that
follows the Minimal Real-Time POSIX.13 subset. Most of its code is written in
Ada with some C and assembler parts. Although originally intended for embedded
systems, MaRTE OS has been also adapted to behave as a POSIX-threads library
for the Linux operating system. The current version incorporates the ability to
run a MaRTE OS program as a linux process.
Authors: Mario Aldea Rivas and Michael Gonzalez Harbour
Keywords: Operating System; Real-Time; POSIX.
Compatible with GAP version: all (checked by Javier Miranda)
License: GPL
Index page on U. Cantabria site.
Win_IO:
A Set of Packages for Simple Graphical Input and Output
Win_IO is a set of packages for graphical input and
output. It is designed specially for students or Ada users who do not want to
spend their time learning a complex graphical user interface, but who are
"tired" of the old-fashioned text-oriented input and output.
Author: Michael Gonzalez Harbour
Keywords: GUI; Windows; portable
Compatible with GAP
License: GPL
Index page on U. Cantabria site.
Cheddar
Authors: The LISYC Team (mainly by Frank Singhoff)
Keywords: Real-time Ada scheduling tools; queuing system;
License: GPL
Copyright owners: University of Brest, Frank Singhoff, Alain Plantec
Description: Cheddar is a real time scheduling Ada framework designed for
prototyping of real time schedulers and for educational purpose. The Cheddar
framework is a set of Ada packages which aims at performing performance
analysis of real time architectures. It includes analytical scheduling tools
and most of classical scheduling simulation algorithms. The Cheddar framework
also offers a domain specific language and a set of tools (eg. interpreters,
compilers) for the design and the analysis of schedulers which are not already
implemented into the framework.
Main
page in the University of Brest.
GNATREG
Author: Martin C. Carlisle.
Address: US Air Force Academy. Department of Computer Science.
Keywords: GAP tools; utilities
License: Public Domain
Description: Allows user to easily add remove libraries from GNAT GAP
gnatreg.adb
GVD
Author: Martin C. Carlisle.
Address: US Air Force Academy. Department of Computer Science.
Keywords: GAP tools; utilities
License: Public Domain
Description: Wrapper that opens exe and source file in GAP debugger
gvd.adb
USAFA
Utilities
Miscellaneous Ada utilities from US Air Force Academy
Keywords: .NET; A#; programming tools; utilities
Compatible with GAP. License: see distribution
Index
page on the USAFA site.