* Ada FAQ: comp.lang.ada (part 2 of 2)
@ 1994-09-09 19:38 Magnus Kempe
0 siblings, 0 replies; only message in thread
From: Magnus Kempe @ 1994-09-09 19:38 UTC (permalink / raw)
Archive-name: Ada/comp-lang-ada/part2
Posting-Frequency: monthly
Last-modified: 9 September 1994
Last-posted: 1 June 1994
COMP.LANG.ADA
FREQUENTLY ASKED QUESTIONS (FAQ)
This is part 2 of a 2-part posting. Part 2 begins with question 6.2.
Part 1 should be the previous posting in this thread.
6.2: Are there versions of lex and yacc that generate Ada code?
The Arcadia project produced the tools aflex and ayacc, both written
in Ada and producing Ada code. They can be found in
ftp://liege.ics.uci.edu/pub/irus/ (Internet address: 128.195.1.5,
128.195.13.1).
6.3: Where can I get a yacc/ayacc grammar to read Ada code?
A yacc and lex grammar for Ada 83 is available via FTP from the
comp.compiler archives at primost.cs.wisc.edu and via e-mail from the
compilers server at compilers-server@iecc.cambridge.ma.us .
A yacc grammar for Ada 9X is available in
ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x/grammar9x.y
and a lex grammar for Ada 9X is available in
ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x/lexer9x.l.
6.4: What is Anna, and where can I get it?
Anna is a language for formally specifying Ada programs. It extends
Ada with various different kinds of specification constructs from ones
as simple as assertions, to as complex as algebraic specifications. A
whole lot of tools have been implemented for Anna, including:
1. The standard DIANA extension packages, parsers, pretty-printers.
2. Semantic checker (very similar to standard semantic checkers for
programming languages).
3. Specification analyzer -- this is a tool used to test a
specification for correctness before a program based on the
specification is written.
4. Annotation transformer -- this transforms Anna specification
constructs into checks on the Ada program that is developed based
on the specification. This tool is currently in the process of
being enhanced so that it can handle at least all the legal Ada
programs in the ACVC test-suite.
5. Runtime debugger -- The instrumented program output by the
annotation transormer can be run with a special debugger that
allows program debugging based on formal specifications.
All tools have been developed in Ada and are therefore extremely
portable. Anna has been ported to many platforms, details of which can
be obtained from the person who handles Anna releases. You can send
e-mail to anna-request@anna.stanford.edu for answers to such
questions. Actually, there is also a mailing list --
anna-users@anna.stanford.edu. Send e-mail to the earlier address if
you want to get on this list.
One could view Anna and its toolset as a *very* significant
enhancement of assertions that are provided in languages such as C
(using the assert statement). The enhancements are in the form of both
(1) many more high level specification constructs; and (2) more
sophisticated tool support.
However, there are those who would not even wish to compare Anna with
C assertions! :-)
The Anna tools may be found in ftp://anna.stanford.edu/pub/anna.
6.5: What is DRAGOON, and where can I get it?
DRAGOON is a language, implemented as an Ada preprocessor (i.e., it
generates pure Ada). DRAGOON is truly object-oriented, including
complete support for multiple inheritance. A very nice feature of
DRAGOON not found in many OO languages is the concept of "behavioral"
inheritance. This allows you to keep the concurrent behavior of object
separated from the object class hierarchy.
The book by Colin Atkinson, "Object-Oriented Reuse, Concurrency and
Distribution: An Ada-Based Approach" (ACM Press, 1991, ISBN:
0201565277), is very well written and describes the language
succinctly and completely.
For a copy of the preprocessor, contact:
Mr. Andrea Di Maio
TXT Ingegneria Informatica S.p.A.
Via Socrate, 41
20128 Milan, ITALY
phone: + 39-2-2700 1001
6.6: Where can I get language translators?
The AdaIC maintains a Products and Tools Database on its bulletin
board (703/614-0215), and one of the categories is translators. (The
list of products should not be considered exhaustive; if you wish to
suggest additions, please contact the AdaIC.) Besides access to the
database via the bulletin board, you can also call the AdaIC
(800-AdaIC-11 or 703/685-1477) and ask for a customized search.
Should I?
In addition to all the usual caveats, however, it should also be noted
that translation itself is a controversial issue.
When a project makes the transition to Ada from some other language,
one question that arises is whether to translate older code into Ada.
Among the immediate considerations are how much of the code can in
fact be translated by a program intended for that purpose, versus how
much will still require re-coding by hand. And will the translated
code suffer a significant loss in speed of execution? Further, a
project must consider whether the translated code will reflect sound
software engineering and be readily understandable and modifiable. Or
will the translated code be merely "Fortranized Ada" or "Cobolized
Ada", or the like, possibly retaining limitations present in the
earlier code? Portability is also a problem.
The resolution of such issues will require an understanding of the
earlier code, an appreciation of the similarities and differences
between its language and Ada, and an evaluation of the translation
program under consideration.
6.7: What is ASIS?
The Ada Semantic Interface Specification is a layered
vendor-independent open architecture. ASIS queries and services
provide a consistent interface to information within the Ada Program
Library created at compile time. Clients of ASIS are shielded and free
from the implementation details of each Ada compiler vendor's
proprietary library and intermediate representation.
ASIS Version 1.1.0 is the latest version of the ASIS83 1.1 (Ada 83) de
facto industry standard. It differs from the previous ASIS83 Version
1.1 in errata, clarifications, and two new functions in
Asis.Declarations (Implicit_Components and
Implicit_Variant_Components).
ASIS Version 2.0.0 is the Ada 9x version of ASIS, called ASIS9X. As
errors, misunderstandings, and clarifications are discovered, the ASIS
Working Group will release new edited versions of the specification.
The latest working draft for ASIS is ASIS 1.1.0, dated July 1993.
Your comments are welcome, if you wish to see replies to your
comments, please join the e-mail discussion group (discussed below)
first.
6.7.1: How can I find out more about ASIS?
Can I take part in its development? The following electronic mail
forums now exist for the ASISWG.
asiswg-technical@ajpo.sei.cmu.edu
technical discussions
asiswg@ajpo.sei.cmu.edu
high-level non-technical discussions
To have your email address added to these forums, send e-mail to:
asiswg-technical-request@ajpo.sei.cmu.edu
asiswg-request@ajpo.sei.cmu.edu
Include your preferred e-mail address, name, telephone number, and
surface mail address.
6.7.2: How can I get hold of ASIS?
ASIS 2.0.0, 1.1.1, and 1.1.0 (along with the earlier version 1.1) are
available from ftp://ajpo.sei.cmu.edu/public/asis/.
If you do not have Internet FTP access, the AJPO host provides
mail-server capabilities. To get more information about the
mail-server, send e-mail to "ftpmail@ajpo.sei.cmu.edu", and address
your message as:
To: ftpmail@ajpo.sei.cmu.edu
Subject: help
To get a copy of the /public/asis/README file, address your e-mail as:
To: ftpmail@ajpo.sei.cmu.edu
Subject: file-request asis/README
To get a "directory" listing of /public/asis/v1.1.0, address your
e-mail as:
To: ftpmail@ajpo.sei.cmu.edu
Subject: directory asis
To get any of the various files, e.g.,
/public/asis/v1.1.1/asis_1.1.1.asc.ps, address your e-mail as:
To: ftpmail@ajpo.sei.cmu.edu
Subject: file-request asis/v1.1.1/asis_1.1.1.asc.ps
The filename pattern may include the "*" wildcard.
Files have been compressed into .zip files. On Unix hosts, you can
uncompress with unzip, and under DOS with PKUNZIP (at least version
2.04).
_________________________________________________________________
7: Bindings
7.1: General
The AdaIC (see question 5.2, above) has a report on "Available Ada
Bindings". It can be ordered in hardcopy as flyer T82, and it can be
downloaded from the AdaIC Bulletin Board (703/604-4624) as
bindings.txt. It is also available by anonymous FTP on the AJPO host
in ftp://ajpo.sei.cmu.edu/public/dev-tool/bindings.txt.
7.2: POSIX/Ada
7.2.1: What is the status of the POSIX/Ada work?
The IEEE approved IEEE Standard 1003.5-1992 in June 1992. This is the
Ada Binding to the facilities defined in ISO 9945-1:1989/IEEE
1003.1-1990, the POSIX System Services.
IEEE Standards Committee P1003.5 is now working on Ada bindings to
IEEE draft standards 1003.4, Real-Time Extensions and 1003.4a, Threads
Extensions. Current plans call for an IEEE ballot in October 1993,
with IEEE approval in September 1995. For more information, contact
the P1003.5 Chairman, Jim Lonjers (lonjers@vfl.paramax.com,
805/987-9457).
7.2.2: How can I get a copy of POSIX/Ada?
You can buy a copy of the standard from the IEEE. The order number is
"SH 15354", and the mailing address is "IEEE Service Center, 445 Hoes
Lane, Piscataway, NJ 08855-1331". They will accept credit-card orders
at 1-800/678-4333. The cost is $62.50 + $5.00 s/h ($43.75 + $4.00 s/h
for IEEE Members).
7.2.3: Is it available via FTP?
Current IEEE policy prohibits electronic distribution of IEEE
standards. Proceeds from the sale of IEEE standards help support the
IEEE standards program. However, The POSIX P1003.5 committee has been
able to work out an arrangement with the IEEE to make the POSIX/Ada
package specifications available for distribution via e-mail and
anonymous FTP from ftp://ajpo.sei.cmu.edu/public/dev-tool/POSIX/. The
AJPO files are also mirrored at the PAL.
7.3: How do I interface X Window System with Ada?
This question turns out to be pretty darn hard to answer easily.
There are at least three variables that need to be filled:
1. platform where you are going to be running.
2. compiler you would like to use.
3. level/flavor of X you would like to run (e.g., just need bindings
to Xlib, want Openlook as opposed to Motif, etc).
Once you fill all three of the above, then you can start to get
answers. In order to keep the answer brief, companies that offer such
products are simply listed, along with locations where free versions
are available.
Before giving you the list, a little history is in order. The first
Xlib bindings that were publically available were done by SAIC for
STARS. This implementation had many bugs, but it was there, and it was
free. This version was eventually withdrawn from the STARS repository,
and has now been replaced with a better one. In addition, SAIC has
done an Xt implementation based on these Xlib bindings (also for
STARS). NOTE: the above description may well be inaccurate,
corrections are welcome.
Now, for the list:
First off, there is a pretty complete list of available bindings
for X as well as other stuff at the AdaIC.
FTP Location:
ftp://ajpo.sei.cmu.edu/public/dev-tool/bindings.txt
Free versions:
STARS: bindings to Xlib and Xt. Available on
source.asset.com.
Note: the ASSET host no longer takes anonymous FTP. To
request an account, contact: info@source.asset.com
Non-free versions:
SERC: bindings to Xlib/Xt/Motif
contact: well!sercmail@apple.com (Scott Cleveland)
Verdix: bindings to Xlib/Xt/Motif
(Note that bindings to Xview are included with the SunAda Sun4 compiler)
contact: moskow@verdix.com (Paul Moskowitz)
ATC: bindings to Xlib/Xt/Motif
contact: ???
TeleSoft (now part of Alsys): bindings to Xlib/Xt/Motif
(TeleWindows)
(Note that bindings to Xview are included with the TeleSoft Sun4 compiler)
contact: philippe@telesoft.com
X-based GUI (Graphical User Interface) Builders:
Objective (OIS): Screen Machine
contact: Phil Carrasco (703/264-1900)
TeleSoft (now part of Alsys): TeleUSE
contact: philippe@telesoft.com
EVB Software Engineering, Inc. : GRAMMI
contact : info@evb.com
or info_server@evb.com with subject "send grammi"
Sun Microsystems: DevGuide
contact: ???
SERC: UIL-to-Ada code generator
(not really a GUI-builder, but works with several builders to
generate Ada instead of other languages).
contact: well!sercmail@apple.com (Scott Cleveland)
_________________________________________________________________
8: Is there a list of good Ada books?
Just for a list of texts, etc. (no evaluations or recommendations),
you might take a look at
ftp://ajpo.sei.cmu.edu/public/ed-train/adabooks.txt.
A real-time book:
Real Time Systems and Their Programming Languages
by A. Burns and A. Wellings
Prentice-Hall
The book uses Ada, Modula-2 and Occam2 as examples, though Ada
is clearly the language of choice and gets more coverage than
either of the other two. IMHO, it's a good book -- a wide
coverage of real-time issues with good examples in all the
languages. It covers Ada real-time excellently, including the
use of CIFO etc. Thoroughly recommended!
Books for use in class (and others):
(from mfeldman@seas.gwu.edu (Michael B. Feldman))
As co-chair of the SIGAda Education Committee, and a denizen of
the Internet newsgroups, I am often asked to give references for
"Ada textbooks." This list responds to these many queries. It
is far from exhaustive, merely a selected list of 26 books being
used successfully in undergraduate computer science courses.
The six books in the Group 1 are written especially for students
without programming experience, who are learning Ada as their
first language. Most of these can also cover at least part of a
typical CS2-level course. The seven books in Group 2 use Ada as
their language of discourse but are "subject-oriented:" data
structures, file structures, compilers, comparative languages.
The thirteen books in Group 3 are either "Ada books" focusing on
the language features or more general books that use Ada, at
least in part, but do not fit obviously into a standard
curriculum "pigeonhole."
I invite you to add to the list. Please write your annotated
entry in the form I have used here and write or e-mail it to me.
I will include it in my next version and credit you as a
co-compiler of the list.
Disclaimers: I wrote two of the texts listed here; I hope the
annotations are impartial enough. And any annotated
bibliography is selective and opinionated. Your mileage may
vary.
Group 1: Books Suitable for a First Course in Programming
Bover, D.C.C., K.J. Maciuas, and M.J. Oudshoorn.
Ada: A First Course in Programming and Software Engineering.
Addison-Wesley, 1992.
This work is, to our knowledge, the first Ada book to emerge
from Australia, from a group of authors with much collective
experience in teaching Ada to first-year students. A number of
interesting examples are presented, for example, an Othello
game. The book is full of gentle humor, a definite advantage in
a world of dry and serious texts. In the book's favor is the
large number of complete programs. On the other hand, it is
rather "European" in its terseness; American teachers may miss
the pedagogical apparatus and "hand-holding" typically found in
today's CS1 books. Generic units are hardly mentioned.
Culwin, F.
Ada: a Developmental Approach.
Prentice-Hall, 1992.
This work introduces Ada along with a good first-year approach
to software development methodology. Much attention is paid to
program design, documentation, and testing. Enough material is
present in data structures and algorithm analysis is present to
carry a CS2 course. A drawback of the book is that the first
third is quite "Pascal-like" in its presentation order:
procedures, including nested ones, are presented rather early,
and packages are deferred until nearly the middle of the book.
This is certainly not a fatal flaw, but it will frustrate
teachers wishing a more package-oriented presentation. The
programs and solutions are apparently available from the author.
Feldman, M.B., and E.B. Koffman.
Ada: Problem Solving and Program Design.
Addison-Wesley, 1991.
This work combines the successful material from Koffman's CS1
pedagogy with a software-engineering-oriented Ada presentation
order. Packages are introduced early and emphasized heavily;
chapters on abstract data types, unconstrained arrays, generics,
recursion, and dynamic data structures appear later. The last
five chapters, combined with some language-independent algorithm
theory, can serve as the basis of a CS2 course. A diskette with
all the fully-worked packages and examples (about 180) is
included; the instructor's manual contains a diskette with
project solutions.
Savitch, W.J. and C.G. Petersen.
Ada: an Introduction to the Art and Science of Programming.
Benjamin/Cummings, 1992.
This is a straightforward adaptation of the well-known Savitch
Pascal books. Ada is introduced in a Pascal-like order, with
subtypes and packages introduced halfway through the book. This
is purely a CS1 book. The final chapter covers dynamic data
structures. There is no coverage of unconstrained array types;
generics are introduced at the halfway point to explain Text_IO,
then dropped until the final chapter. The authors intended this
book to provide a painless transition to Ada for teachers of
Pascal; one wishes they had taken advantage of the chance to
show some of the interesting Ada concepts as well. Program
examples from the text are available on disk, but only as part
of the instructor's manual; a solutions disk is available for a
fee from the authors.
Skansholm, J.
Ada from the Beginning.
Addison Wesley, 1988.
This book was one of the first to use Ada with CS1-style
pedagogy. There are excellent sections on the idiosyncracies of
interactive I/O (a problem in all languages), and a sufficient
number of fully-worked examples to satisfy students. Generics,
linked lists and recursion are covered at the end; there is no
tasking coverage, but one would not expect this at CS1-level.
Volper, D., and M. Katz.
Introduction to Programming Using Ada.
Prentice-Hall, 1990.
This book uses a heavily "spiraled" approach to Ada, and is
designed for a 2-semester course, covering nearly all of Ada
eventually. There are lots of fully-coded examples, and good
pedagogical sections on testing, coding style, etc. If you like
spiraling, you'll like this. The down side is that you can't
find all you need on a given subject in one place. It's at the
other end of the scale from the "Ada books" that follow the Ada
Language Reference Manual (LRM) order.
Group 2: Other Books Intended for Undergraduate Courses
Ben-Ari, M.
Principles of Concurrent and Distributed Programming.
Prentice-Hall 1990. (OS/concurrency)
In my opinion, this is the best introduction to concurrency on
the market. Ada notation is used for everything, but the focus
is on concurrency and not on Ada constructs per se. I liked the
CoPascal notation of the first edition better, but this book is
still great. A software disk is promised in the preface; I had
to work quite hard to get it from the publisher, which finally
had to express-ship it from England. The software comes with a
tiny Ada-ish interpreter, complete with Pascal source code,
adapted from Wirth's Pascal/S via CoPascal. There are also some
real Ada programs, most of which I've tested and found correct
and portable.
Feldman, M.B.
Data Structures with Ada.
Prentice Hall, 1985 (now distributed by Addison-Wesley).
(CS2/data structures)
This book is a reasonable approximation to a modern CS2 book:
"big O" analysis, linked lists, queues and stacks, graphs,
trees, hash methods, and sorting, are all covered. The Ada is a
bit old-fashioned, especially the lack of generics; the book was
published before compilers could handle generics. The packages
and other programs are available free from the author. The book
is currently under revision with Addison-Wesley and should
appear in 1993.
Fischer, C., and R. LeBlanc.
Crafting a Compiler.
Benjamin Cummings, 1988. (compilers)
This book uses Ada as its language of discourse and Ada/CS, a
usefully large Ada subset, as the language being compiled. If
you can get the "plain Pascal" tool software by FTP from the
authors, you'll have a good translator-writing toolset. Skip
the Turbo Pascal diskette version, which is missing too many
pieces to be useful. I've used the book since it came out with
both undergrad and graduate compiler courses; it embodies a good
blend of theory and "how it's really done" coding. Students
like it. The authors have recently published a second version,
which uses C as its coding language but retains Ada/CS as the
language being compiled.
Lomuto, N.
Problem-Solving Methods with Examples in Ada.
Prentice-Hall, 1987. (algorithms)
Inspired by Polya's classic How to Solve It, this book can make
a nice addition to an Ada-oriented algorithms course. It makes
too many assumptions about students' programming background to
use as a CS1 book, and doesn't teach enough Ada to be an "Ada
book." But it makes nice reading for students sophisticated
enough to handle it. I'd classify it as similar to Bentley's
Programming Pearls.
Miller, N.E. and C.G. Petersen.
File Structures with Ada.
Benjamin/Cummings, 1990. (file structures)
Designed for a straightforward ACM-curriculum file structures
course, this book succeeds at what it does. There are good
discussions of ISAM and B-tree organizations. The software can
be purchased a low cost from the authors; it seems to
approximate in Ada all those C-based file packages advertised in
programmer-oriented trade publications.
Schneider, G.M., and S.C. Bruell.
Concepts in Data Structures and Software Development (with Ada
Supplement by P. Texel).
West, 1991. (CS2/data structures)
This work is not, strictly speaking, an Ada book; rather, it is
a solid, language-independent approach to modern CS2. The
language of discourse in the book is a Pascal-like ADT language
rather like Modula-2 in style; some examples are coded in legal
Pascal. The Ada supplement makes it usable in an Ada-based
course, but the supplement is rather too terse (100 pages of
large type) for my taste, and insufficiently well keyed to the
book chapters. The supplement's effectiveness would be greatly
enhanced by full translations to Ada of a large number of the
book's examples.
Sebesta, R.W.
Concepts of Programming Languages.
Benjamin Cummings, 1989. (comparative languages)
If you've been around for a while, you might remember the late
Mark Elson's 1975 book by the same title. This is similar: a
concept-by-concept presentation, with -- in each chapter --
examples taken from several languages. There is a nice
impartial presentation of Ada along with the others. I
especially like the chapters on abstraction and exception
handling. The book covers -- comparatively, of course -- most
of the lanuages you'd like to see, including C, Lisp, Smalltalk,
etc., with nice historical chapters as well. The book is
readable; my students like it. Our undergraduate and graduate
courses both use it as a base text.
Group 3: A Selection of Other Ada-Related Books
Barnes, J.
Programming in Ada. (3rd edition)
Addison Wesley, 1989.
Barnes' work has been one of the most popular "Ada books." Some
students find it hard to see how the pieces fit together from
Barnes' often fragmentary examples; it is difficult to find
complete, fully-worked out, compilable programs. A version is
available with the entire Ada Language Reference Manual bound in
as an appendix.
Booch, G.
Object-Oriented Design, with Applications.
Benjamin Cummings, 1991.
This is a good comparative introduction to the "object-oriented
(OO)" concept. The first half gives a balanced presentation of
the issues in OO Design; the second half gives nontrivial
examples from Ada, Smalltalk, C++, CLOS, and Object Pascal. The
author tries to sort out the difference between object-based
(weak inheritance, like Ada) and object-oriented (like C++)
languages. My only real complaint is that Booch should have
worked out at least some of his case studies using several
different languages, to highlight the similarities and
differences in the language structures. As it is, each case
study is done in only a single language. The good news is that
the book is remarkably free of the hyperbolic claims one
sometimes finds in the OO literature. I think this book could
be used successfully in a second- level comparative languages
course.
Booch, G.
Software Components with Ada.
Benjamin Cummings, 1987.
This work is an encyclopedic presentation of data structure
packages from Booch's OOD point of view. It is great for those
who love taxonomies. It's not for the faint-hearted, because
the volume of material can be overwhelming. It could serve as a
text for an advanced data structures course, but it's thin in
"big O" analysis and other algorithm-theory matters. The book
is keyed to the (purchasable) Booch Components.
Booch, G.
Software Engineering with Ada. (2nd edition)
Benjamin Cummings 1987.
Another of the classical "Ada books." Introduces Booch's OOD
ideas. Not for use to introduce Ada to novices, in my opinion;
there are some nice fully-worked case studies but they begin too
far into the book, after long sections on design, philosophy,
and language elements. The earlier chapters contain too much
fragmentary code, a common flaw in books that follow the LRM
order.
Bryan, D.L., and G.O. Mendal.
Exploring Ada, Volumes 1 and 2.
Prentice-Hall, 1990 and 1992 respectively.
This is an excellent study of some of the interesting nooks and
crannies of Ada; it sometimes gets tricky and
"language-lawyerly." Volume 2 takes up tasking, generics,
exceptions, derived types, scope and visibility; Volume 1 covers
everything else. The programs are short and narrowly focused on
specific language issues. If you like Bryan's "Dear Ada" column
in Ada Letters, you'll like this book. It is certainly not a
book for beginners, but great fun for those who know Ada already
and wish to explore.
Burns, A.
Concurrent Programming in Ada.
Cambridge University Press, 1985.
I used this book for years in my concurrency course. It's
roughly equivalent to Gehani's book, but its age is showing.
Cambridge Press is not always easy to get books from, especially
in the US.
Cohen, N.
Ada as a Second Language.
McGraw Hill, 1986.
This book is a quite comprehensive exploration of Ada which
follows the LRM in its presentation order. My graduate students
like it because it is more detailed and complete than
alternative texts. It's an excellent book for students who know
their languages and want to study all of Ada. There are good
discussions of "why's and wherefore's" and many long,
fully-worked examples.
Gauthier, M.
Ada: Un Apprentissage (in French).
Dunod, 1989.
I found this an especially interesting, almost philosophical
approach to Ada. The first section presents Ada in the context
of more general laguage principles: types, genericity,
reusability. The second section introduces testing and
documentation concerns, as well as tasking; the third considers
generics and variant records in the more general context of
polymorphism. For mature Ada students in the French-speaking
world, and others who can follow technical French, this book can
serve as a different slant on the conventional presentations of
the language. An English translation would be a real
contribution to the Ada literature.
Gehani, N.
Ada: an Advanced Introduction (2nd edition).
Prentice-Hall, 1989.
I've always liked Gehani's literate writing style; he knows his
languages and treats Ada in an interesting, mature, and balanced
fashion. This book comes with a diskette sealed in the back of
the book, which is advantageous because the book has numerous
nontrivial, fully-worked examples.
Gehani, N.
Ada: Concurrent Programming (2nd edition).
Silicon Press, 1991.
This is a less formal, more Ada-oriented presentation of
concurrency than the Ben-Ari work. I use both books in my
concurrency course; its real strength is the large number of
nontrivial, fully worked examples. Gehani offers a nice
critique of the tasking model from the point of view of an OS
person. The preface promises the availability of a software
disk from the publisher.
Nyberg, K.
The Annotated Ada Reference Manual. (2nd edition)
Grebyn Corporation, 1991.
This is the definitive work on Ada legalities, because it
presents not only the full text of the LRM but also the official
Ada Interpretations. These commentaries, interleaved with the
LRM text, have been approved and promulgated by the Ada Board
and the various standards organizations, and are binding upon
compiler developers. I recommend this book as an essential
volume in the library of every serious Ada enthusiast.
Shumate, K.
Understanding Ada. (2nd edition)
John Wiley, 1989.
This would make a CS1 book if it included more overall pedagogy,
independent of language constructs. Otherwise it is a nice
introduction to Ada in fairly gentle steps. Lots of completely
worked examples, right from the start. Doesn't follow the LRM
order, which is great.
Watt, D.A., B.A. Wichmann, and W. Findlay.
Ada Language and Methodology.
Prentice-Hall, 1987.
This work presents some interesting programming projects, and
the coverage of design and testing--at the level of a first-year
student--is quite good. The first third of the book
concentrates heavily on classical control and data structures,
leaving exceptions and packages until the "programming in the
large" material in the second third. CS2 teachers will find too
little concentration on algorithm analysis. On the other hand,
tasking and machine-dependent programming are covered. Like the
Shumate work, this book would make a suitable introduction to
Ada for students with a semester or so of programming
experience; it "jumps in" too quickly to satisfy the needs of
neophytes and is not well-tailored to CS1 or CS2 needs.
_________________________________________________________________
9: Resources
9.1: What FTP sites exist that contain information about Ada or Ada source?
Public Ada Library (formerly Ada Software Repository)
wuarchive.wustl.edu (Internet address: 128.252.135.4)
Mirror: ftp.cdrom.com
European mirror: ftp.cnam.fr (Internet address: 192.33.159.6)
AJPO and AdaIC
ajpo.sei.cmu.edu [mirrored by the PAL, listed above] (Internet
address: 192.58.107.159)
ASSET / STARS (Software Technology for Adaptable, Reliable Systems):
source.asset.com (Internet Address: 192.131.125.10)
Note: the ASSET host no longer takes anonymous FTP. To request
a free account, contact: info@source.asset.com
9.2: The AJPO host has many Ada information files available for downloading by
anonymous FTP. But I don't have FTP service on the host where I have an
account. Is there any way I can get those files?
The AJPO host, ajpo.sei.cmu.edu, will provide mail-server
capabilities on an experimental basis. The available services provided
by this automatic mail server are: services, Re, help, info, man,
directory, and file-request. To request a service, send e-mail to
"ftpmail@ajpo.sei.cmu.edu" and place its name in the Subject line of
the mail message, followed by any needed parameters. The mail server
will respond to your request with either the information you requested
or an error message.
The following are common examples on how to request services from the
AJPO host mail server:
----------------------------------------------------------------
1) To get "help" --
To: ftpmail@ajpo.sei.cmu.edu
Subject: help
----------------------------------------------------------------
2) To get "man" pages of a particular service, such as
"directory" --
To: ftpmail@ajpo.sei.cmu.edu
Subject: man directory
This service takes as a parameter the name of a service, and
returns a manual page on that service.
----------------------------------------------------------------
3) To get a "directory" listing of the AJPO anonymous FTP area
(/public) --
To: ftpmail@ajpo.sei.cmu.edu
Subject: directory
The "directory" service takes as an optional parameter a file or
directory name, and returns the results of an "ls -l" on that
parameter. For example, to get a listing of the
/public/compiler directory you would submit a message with the
Subject of:
Subject: directory compiler
The filename pattern may include wildcards as defined by the C
shell. For example, to get a listing of the /public directories
beginning with "p" you would submit a message with the Subject
of:
Subject: directory p*
----------------------------------------------------------------
4) Use "file-request" to get /public/README file --
To: ftpmail@ajpo.sei.cmu.edu
Subject: file-request README
The "file-request" service takes as an optional parameter a
filename, and will return the contents of the file. Text files
are returned verbatim, while binary files are encoded via the
Unix "uuencode" command. Large files (greater than 1000 lines
long) will be split into multiple mail messages. For example,
to get the file "README" in the /public/compiler directory you
would submit a message with the Subject of:
Subject: file-request compiler/README
----------------------------------------------------------------
Below is a sample response to a "help" request.
From: FTP Mail Server
Message-Id:
To: adainfo@ajpo.sei.cmu.edu
Subject: Re: help
In-Reply-To:
Content-Type: text/plain; charset=us-ascii
You have sent electronic mail to the Ada Joint Programs Office
automatic mail server. This server is based on the
ServiceMail(tm) Toolkit from Enterprise Integration Technologies.
In general, you may request a service by placing its name in the
Subject line of a mail message, followed by any needed
parameters. The mail server will respond to your request with
either the information you requested or an error message.
Here is a brief description of the available services:
services: This service returns a list of the available
services.
Re: This service discards all messages with "Re:" in
the subject line. This is to prevent mail
loops.
help: This service returns this help message.
info: This service returns this help message.
man: This service takes as a parameter the name of a
service, and returns a manual page on that
service.
directory: This service takes as an optional parameter a
file or directory name, and returns the results
of an "ls -l" on that parameter. The root of
the file structure is the AJPO anonymous FTP
area.
file-request: This service takes as an optional parameter a
file name, and will return the contents of the
file. The root of the file structure is the
AJPO anonymous FTP area. Text files are
returned verbatim, while binary files are
encoded via the Unix "uuencode" command. Large
files (greater than 1000 lines long) will be
split into multiple mail messages.
Try 'man ' to get more information on a particular
service. Please report bugs and other problems to
ftpmail-request@ajpo.sei.cmu.edu.
9.3: Reuse
9.3.1: Are there any free, public-domain, or other general-access software
repositories that contain Ada source code and information on reuse?
There are a number of them, among them PAL (the Public Ada Library)
and ELSA, described below.
Public Ada Library (formerly Ada Software Repository)
Formerly the Ada Software Repository (ASR), the Public Ada Library
(PAL) is a collection of programs, components, tools, general
information, and educational materials; taking up hundreds of
megabytes, it contains the source code for hundreds of distinct items
as documented in its Master Index. Previously housed on the SIMTEL20
host computer, it is now located at Washington University at St.
Louis's host (wuarchive.wustl.edu -- which had been a mirror site for
the ASR). The PAL is available for anonymous FTP:
ftp://wuarchive.wustl.edu/pub/languages/ada/,
The PAL has its own FAQ, a copy of which is stored in
ftp://rtfm.mit.edu/pub/usenet-by-group/comp.lang.ada/, which stores
the FAQ files posted to news.answers.
ELSA (previously AdaNet)
ELSA is a component of the Repository Based Software Engineering
(RBSE) Program sponsored by NASA's Technology Utilization Division. It
is a public-domain reuse library containing value-added software from
ASR (PAL), STARS, JPL, many educational institutions, and various
other sources. The non-software information includes relevant research
papers, standards, and technical reports.
ELSA also distributes components on floppy disks. All of its services
are free of charge.
For more information, contact ELSA Client Service at 1-800/444-1458 or
lacey@rbse.mountain.net.
9.3.2: Is there some sort of database of re-usable Ada software
components?
You might want to join ACM SigAda (see question 5.3) in order to
subscribe to Ada Letters. They publish a list of reusable components
on an annual basis. The most recent list was in the March/April 1994
issue (XIV.2). In fact, it is more of a list of lists, in that it
mentions places that have sets of reusable components. The maintainer
of the Ada Letters "master list" is levine@sun490.fdu.edu (also
levine@vax.fdu.edu).
To our knowledge this list is NOT available online. Check also the
software repositories, mentioned above (question 9.3.1).
9.4: Where can I get Ada benchmark programs?
In addition to the information below, you may also wish to look at
the AdaIC flyer "How to Obtain Benchmark Performance Test Suites and
Results", flyer C15, file benchmrk.txt on the AJPO host
(ajpo.sei.cmu.edu). (For more on the AdaIC and downloading files, see
questions 5.2, 9.1, and 9.2.)
The Ada Evaluation System
The Ada Evaluation System (AES) may be obtained from the British
Standards Institute at the following address:
Software Product Services
Software Engineering Department
BSIQA
P.O. Box 375
Milton Keynes MK14 6LL
United Kingdom
Tel: 0908 220908
UUCP: sed@bsiqa.uucp
(Internet: bsiqa!sed@uunet.uu.net)
As of February 1993, the current version is the DIY-MAPSE-01 version.
It is available at a cost of 3,000 pounds sterling. BSI also offers a
validation service at a cost of 24,000 pounds sterling. Principal
documents are a User's Manual, a Reference Manual, and a Test
Description Document.
The Ada Evaluation System (AES) was merged with the Ada Compiler
Evaluation Capability (ACEC) under a joint agreement between the
Ministry of Defence of the United Kingdom and the Department of
Defense of the United States that was signed in June of 1991. The
merged product has been released as the Ada Compiler Evaluation System
(ACES), which is the latest version of the ACEC.
The Ada Compiler Evaluation Capability/Ada Compiler Evaluation System
The Ada Compiler Evaluation System (ACES) may be obtained from:
Data and Analysis Center for Software (DACS)
Attn: Document Dataset Ordering
Kamen Sciences Corporation
P.O. Box 120
Utica, NY 13503-0120
Tel: 315/734-3696; Fax: 315/734-3699
Internet: dacs@kaman.com
There are three documents: the User's Guide, the Reader's Guide, and
the Version Description Document. The total cost for the software (on
6250-bpi 9-track VMS Backup tape) and documentation is 100 US dollars.
ACES is also available for downloading via anonymous FTP from the AJPO
host computer, where it can be found in the /public/aces directory. It
can also be downloaded from the Public Ada Library (PAL -- see
question 9.3.1).
Hartstone Benchmarks
Electronic-mail requests for Hartstone should be sent to the following
Internet address: hartstone-info@sei.cmu.edu .
The reply message will contain full details of how to obtain source
code and documentation by various means, including anonymous FTP.
There is no charge for the Hartstone source code.
For people without Internet access, the address to send requests to
is:
REST Transition Services
Software Engineering Institute
Carnegie Mellon University
Pittsburgh, PA 15213-3890
Phone: 412/268-7787
Hartstone source code may also be retrieved from the PIWG bulletin
board. (See below.)
The PIWG Benchmarks
The ACM Performance Issues Working Group (PIWG) benchmarks may be
obtained in one of three ways:
1. Via anonymous FTP from the ajpo.sei.cmu.edu machine. Users should
issue the command "ftp ajpo.sei.cmu.edu" and log in using the word
"anonymous" as the login name and an identifying string (e.g., the
user's e-mail address) as password. Change directory ("cd"
command) to the "public/piwg/piwg_11_92" directory and use the FTP
file-transfer commands to retrieve the files. The README file
contains information about using the benchmarks.
2. Via the PIWG bulletin board. Ideally, users should access this
from a PC (rather than a dumb terminal) using a modem capable of
sending and receiving at 1200 baud or higher. The number of the
bulletin board is 412/268-7020. Once connected to the bulletin
board, users will be able to navigate their way around the system
using simple menus that the system provides. The point of contact
for this service is Gene Rindels, 412/268-6728.
3. Via a written request or telephone request to the following
service:
PIWG Distribution
Software Engineering Institute
Carnegie Mellon University
Pittsburgh, PA 15213-3890
Tel: 412/268-7787
As of February 1993, the current release of the PIWG suite is the one
dated 11/92. There is no charge for the PIWG benchmarks.
Documentation for the PIWG benchmarks consists principally of the
READ.ME file distributed with the suite and comments in the
individual test programs and command files. There is also
additional information about the PIWG suite in the Winter 1990
special edition of Ada Letters (Vol. X, No. 3, special edition on
Ada Performance Issues).
9.5: Are there any dial-up BBS systems that deal with Ada?
AdaIC BBS: (US) 703/604-4624 AUTOVON: 664-4624
AdaNet BBS: This is a free service that maintains e-mail connections
for people not on the Internet, an Ada source code repository, and a
selection of other on-line Ada-related documents. It is sponsored by
NASA. Call 800/444-1458 to register for access.
(Caveat: Telephone numbers can change without notice. If we find out a
number doesn't work, we'll note that, but leave the entry in until
we're sure the service has actually been discontinued. If you are
aware of a better number, please let us know.)
Naval Computer Telecommunications Command
Tel: 804/444-7841 (DSN 564-7841)
Air Force Software Technology Support Center (STSC) BBS
Tel: 801/774-6509
Baud: 2400, 1200, 300
Bits: 8
Parity: None
Stop Bits: 1
ACM SIGAda Performance Issues Working Group
PIWG Ada Benchmarks BBS
Tel: 412/268-7020
Embedded Systems Programming Magazine BBS
Tel: 415/905-2689
_________________________________________________________________
10: Credits
The following persons have contributed (directly or indirectly
through e.g. comp.lang.ada) to the information gathered in this FAQ:
the Ada Information Clearinghouse--AdaIC [I know, it's not a person;
still, they managed the FAQ for about one year], Heddy Boubaker, Susan
Carlson, Cyrille Comar, Robert Dewar, Patrick Donohoe, Dave Emery, Don
Erway, Michael Feldman, John Goodenough, Drew Johnson, Michele L. Kee,
Mathew Lodge, "tjmesler", Gary Morris, Pascal Obry, Kurt Olender,
Margie Price, Richard Riehle, Tucker Taft, and the maintainer has
simply :-) organized, polished, or added some information for your
satisfaction. The general HTML structure of this FAQ was inspired by
the WWW FAQ.
_________________________________________________________________
11: Copying this FAQ
This FAQ is copyright 1994 by Magnus Kempe. It may be freely
redistributed as long as it is completely unmodified and that no
attempt is made to restrict any recipient from redistributing it on
the same terms. It may not be sold or incorporated into commercial
documents without the explicit written permission of the copyright
holder.
Permission is granted for this document to be made available under the
same conditions for file transfer from sites offering unrestricted
file transfer on the Internet and from Forums on e.g. Compuserve and
Bix.
This document is provided as is, without any warranty.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~1994-09-09 19:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1994-09-09 19:38 Ada FAQ: comp.lang.ada (part 2 of 2) Magnus Kempe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox