comp.lang.ada
 help / color / mirror / Atom feed
* Ada FAQ: comp.lang.ada (part 2 of 3)
@ 1994-10-18 17:37 Magnus Kempe
  0 siblings, 0 replies; 7+ messages in thread
From: Magnus Kempe @ 1994-10-18 17:37 UTC (permalink / raw)


Archive-name: Ada/comp-lang-ada/part2
Comp-lang-ada-archive-name: comp-lang-ada/part2
Posting-Frequency: monthly
Last-modified: 10 October 1994
Last-posted: 9 September 1994


                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

This is part 2 of a 3-part posting.
Part 3 begin with question 9.2; it should be the next posting in this thread.
Parts 1 should be the previous posting in this thread.


5.3: Association of Computing Machinery's Special Interest Group on Ada (ACM
SIGAda)

   SIGAda's bimonthly publication is Ada Letters.
   
   Price for non-members: $55 (Annual ACM membership dues, $82; students,
   $25).
   
   Otherwise it costs $20 per year to ACM members; $10 per year to ACM
   student members.
   
   The address is:

Association for Computing Machinery, Inc.
1515 Broadway
New York, NY 10036
212/869-7440

   SIGAda also has a number of committees and working groups on a variety
   of topics.
   
   
5.4: ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9, WG9 for short)

   This is a working group that deals with Ada within the International
   Standardization Organization. Within WG-9, are several Rapporteur
   (rap) groups:
     * ARG: Ada Rapporteur Group -- Comments and Interpretations
     * CRG: Character Rapporteur Group -- International Character Sets
     * IRG: Information Systems Rapporteur Group -- Decimal Arithmetic
     * NRG: Numerics Rapporteur Group -- NUMWG packages
     * RRG: Real-Time Rapporteur Group -- ExTRA
     * SRG: SQL Interfaces Rapporteur Group -- SAMeDL
     * URG: Uniformity Rapporteur Group -- Portability through Uniformity
     * XRG: Ada 9X Rapporteur Group
       
   
   
   Ada Rapporteur Group (ARG):
          This is the group responsible for evaluating comments on the
          Ada standard. Officially, the group is only developing a
          technical report addressing comments and questions concerning
          the ISO standard for Ada. (Arcane ISO rules prevent the ARG or
          WG9 from issuing "official" interpretations of a standard.) In
          practice, when a response to a comment is approved by WG9, the
          response is taken into account by the Ada Validation Office and
          affects the test suite. The documents containing comments on
          the standard and ARG responses are called "Ada Commentaries"
          and are given numbers of the form AI-ddddd/vv, where vv is a
          version number.
          
          Comments and questions about the Ada standard should be sent to
          ada-comment@ajpo.sei.cmu.edu, using the format specified in the
          Ada standard. You can receive e-mail notification of an update
          to a commentary (optionally including the text of the
          commentary) by sending a request to
          ada-comment@ajpo.sei.cmu.edu. Commentaries are generally
          updated only a few times each year. The text of all
          commentaries is available by anonymous FTP from the AJPO site
          in the account public/ada-comment. A detailed discussion of ARG
          procedures and the format of commentaries can be found in the
          ada-comment account in the file arg-procedures.doc. A
          reformatted copy of the Reference Manual that includes
          WG9-approved commentaries is available from Karl Nyberg
          (karl@grebyn.com).
          
   Uniformity Rapporteur Group (URG)
          Responsible for evaluating Uniformity Issues (UIs). UIs
          specify/recommend specific choices for the compiler
          implementor, where the language permits implementation freedom.
          The "canonical example" is UI-8, on integer types. This UI
          recommends that integers be at least 32 bits, and provides
          names for the other predefined integer types. The goal of the
          URG and the UI's is to further Ada portability by providing
          uniform implementations of implementation-dependent features
          commonly used by Ada applications.
          
   
   
     _________________________________________________________________
   
   
   
6: Tools

   
   
6.1: Is there an Ada-mode for Emacs?

   There are, in fact, 4 Ada modes for Emacs!
     * the most recent one, available by FTP, is in
       ftp://cs.nyu.edu/pub/gnat/emacs-ada-mode.
       
       This is still work under development but it is already quite
       usable. The main features are:
          + TAB ---> indent (almost always correctly)
          + compile and parse the errors (with the cursor at the right
            line AND column)
          + highlight keywords and comments
          + create skeletons for all Ada constructs (both 83 and 9x)
          + goto next (previous) subprogram/package/task
          + goto beginning of syntactic construct
          + name completion (when it is a subprogram defined in the file)
          + untabify, remove trailing spaces automatically before saving
          + C-c TAB ---> format subprogram specs in GNAT style
          + and much more to come...
   The 2 main developers are Markus Heritsch (who works under the
       direction of Franco Gasperoni at ENST, Paris) and Rolf Ebert
       (Munich, Germany).
       
     * a simple ada-mode shipped as part of the emacs distribution (note:
       it seems it doesn't work correctly);
       
     * a more elaborate one from Steven D. Litvintchouk of Mitre Corp
       called electric-ada (available from?--NO INFORMATION); and
       
     * gnu-ada mode. Here is a small description of the features of this
       mode:
       
        Compile programs within emacs
                Run compiler as inferior of Emacs, and parse its error
                messages. NOTE: I believe that this feature will only
                work with VADS, but it might have been tailored to work
                with other compilers.
                
        Ada dired
                It supplies a form of dired that helps manage the VADS
                environment, and it adds ADA vads commands into ada mode.
                Unlike a previous dired-ada implementation, this version
                uses the existing dired mode functions except where there
                is unresolvable conflict. Thus, this is more like a minor
                mode to dired. Very important because on actual version
                of emacs 19(beta), in fact lemacs (lucid emacs), dired
                has changed and we can no longer use gnu-ada mode :-(
                
        you can consult the Ada Language Reference Manual (*) during
                parsing error message.
                (*)You can get one in e.g. the Public Ada Library.
                
        smart indentation
                Tries hard to do all the indenting automatically.
                Emphasizes correct insertion of new code using smart
                templates.
                
        Smart template commands (bnf)
                This is essentially a bnf processor/language-sensitive
                editor. The next message will give you an ada bnf file
                that you can use within ada-mode to expand nonterminals.
                But you can roll your own grammars (e.g., your design
                grammar or an ADL) and put them in *.bnf files ... The
                BNF rule set is stored as a list of rules.
                
        debugging Ada programs within emacs
                A facility is provided for the simultaneous display of
                the source code in one window, while using a.db to step
                through a function in the other. A small arrow "=>" in
                the source window, indicates the current line.
                
        Move from procedure to procedure or package to package
                
        tags Ada
                
        and other things ...
                
   
   
   You can find the gnu-ada mode in
   ftp://ajpo.sei.cmu.edu/public/infoada/gnu/ as well as in the PAL,
   under
   ftp://wuarchive.wustl.edu/pub/languages/ada/swtools/emacs/adamode/.
   
   
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: marketng@alsys.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.
   

An Annotated Sampling of Ada-Oriented Textbooks

September 1994

Michael B. Feldman
Department of Electrical Engineering and Computer Science
The George Washington University
Washington, DC 20052
(202) 994-5919 (voice)
(202) 994-0227 (fax)
mfeldman@seas.gwu.edu

(with contributions from Jack Beidler, Duane Jarc, Suzanne Pawlan Levy,
Mathew Lodge, and David Weller, as indicated by their initials following
their reviews)

As chair of the SIGAda Education Working Group, and a denizen of the
Internet newsgroups, I am often asked to give references for "Ada
textbooks." This list responds to these many queries.

The textbooks 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 books in Group 2 use Ada as their language of
discourse but are "subject-oriented:" data structures, file structures,
compilers, comparative languages. The remaining 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. Maciunas, 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.

Dale, N., D. Weems, and J. McCormick.
Programming and Problem Solving with Ada. D. C. Heath, 1994.
  This book is inspired by Dale and Weems' very successful Introduction to
Pascal and Structured Design, but it is not simply an Ada version.  Ada's
more advanced capabilities such as exceptions, packages and generic units
are included in this text.  In addition, more than half of the material is
completely new, and the order of the topics is signficantly different.  It
also has more of a software engineering focus than the Pascal version. The
only Ada topics not included in this text are tasks and access types.
Procedures and packages are introduced early.  Each chapter includes case
studies, testing and debugging hints and excellent non-programming exercises
and programming problems.  The text comes with a program disk containing all
the programs given in the book.  In addition, a validated Meridian Ada
compiler with complete documentation is available at low cost to students
using this book. (S. P. L.)

DeLillo, N. J.
A First Course in Computer Science with Ada.
Irwin, 1993.
  This book is a first in the Ada literature: a version comes with an
Ada compiler, the AETech-IntegrAda version of Janus Ada. Author, publisher,
and software supplier are to be commended for their courage in this.
The book itself covers all the usual CS1 topics. In my opinion, the order
of presentation is a bit too Pascal-like, with functions and procedures
introduced in Chapter 5 (of 15) and no sign of packages (other than Text_IO)
until Chapter 10. Unconstrained arrays and generics are, however, done
nicely for this level, and Chapter 13 is entirely devoted to a single
nontrivial case study, a statistical package. I wish there were more
complete programs in the early chapters, to put the (otherwise good)
discussion of control and data structures in better context.

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 minimal coverage
of unconstrained array types; generics are introduced at the halfway
point to explain Text_IO, then continued only in 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. (2nd ed.)
Addison Wesley, 1994.
  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. A very interesting addition is the new
Chapter 14, in which OOP in both Ada 83 and Ada 94 is discussed.
This is an especially lucid explanation of OOP in Ada, and makes a real
contribution because it doesn't just discuss tagged types as a "feature"
of Ada 94, but shows very nicely what is possible in Ada 83 (instead
of just what is _not_ possible), and shows how Ada 94 adds functionality.

Smith, James F., and Thomas S. Frank
Introduction to Programming Concepts and Methods with Ada
McGraw-Hill, Inc., 1994
  This is a well written and easy to use text.  The book takes a spiraled
approach to CS 1.  The authors do an excellent job integrating Ada into
the book.  They take a very direct approach, especially with an early
introduction to the package concept and the traditional Text_IO package.
Faculty who have taught CS 1 with Pascal should like this book. Instead
of making a big fanfare about Ada features, they simply introduce them
as good support for software development concepts. The authors have
carefully chosen the Ada topics they decided to cover in this book in
order to strike a balance between staying true to the CS 1 course while
presenting enough of the programming language. If you teach CS 1 you
might at least want to get a copy of this text just to look at two
chapters, Chapter 7 and Chapter 14. Seven covers program correctness and
run-time event (exception handling) and fourteen is a beautiful presentation
and example of generic packaging.  Both presentations are done in an
appropriate manner for CS 1. (J. B.)

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.
Addison Wesley, 1993.
(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 1995.

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.

Hillam, Bruce. Introduction to Abstract Data Types Using Ada.
Prentice-Hall, 1994. (data structures)
This is a very readable treatment of data structures presented using Ada
that makes good use of Ada features such as generics.  It contain many
complete programs and packages.  Unfortunately, obvious syntax errors make
it apparent that not all examples have been compiled.  The level of
presentation is somewhere between an elementary, CS 2, data structures
course and an advanced, CS 7, course.  A subset of first eleven chapters
provide the appropriate topics for a CS 2 course, but not the pedagogy
necessary for a course at that level. (D. J.)

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 (2nd ed.).
Benjamin Cummings, 1993. (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. I include this work in an "Ada list" because I like its
nice, impartial coverage of Ada. 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, 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.

Weiss, M.A.
Data Structures and Algorithms in Ada.
Benjamin/Cummings, 1993.
  I think this book reaches its intended market -- data structures courses
(CS7) -- rather well with Ada. There's a good mixture of theory and practice
(ADT design, for example), and coverage of new topics like amortized algorithm
analysis and splay trees. A book at this level should not pay too much
attention to teaching a language; rather it should make good use of its
language of discourse. The Ada version does not attempt to teach either the
language or Ada-style software engineering, but shows good understanding of
the language, uses generic packages quite well and focuses on the theory of
algorithms, as a book at this level should. This is the first, and so far
the only, text in Ada for this course.

Group 3: A Selection of Other Ada-Related Books

Barnes, J.
Programming in Ada. (4th edition)
Addison-Wesley, 1994.
  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. This just-out fourth edition has a 100-page summary of
Ada 9X.

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. and D. Bryan
Software Engineering with Ada. (3rd edition)
Benjamin/Cummings 1994.
  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. The third edition contains an appendix describing Ada 9X.

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, Alan, and Geoff Davies.
Concurrent Programming.
Addison-Wesley, 1993, ISBN 0-201-54417-2
  Solid book covering all aspects of writing concurrent software. Uses
a version of Pascal called FC-Pascal (available for free through the
Internet). The FC means "Functionally Concurrent". It has constructs
that are similar to Ada 9X, and this is by no accident -- the authors
frequently point out that the implementations in FC-Pascal are taken
from Ada 9X's Tasks and Protected Types. Covers lots of low-level problems
by gradually building up from simple examples. Highly recommended for a
Concurrent Programming class. Exercises and Further readings are provided
at the end of each chapter. (D.W.)

Burns, Alan and Wellings, Andy
Real Time Systems and their Programming Languages
Addison-Wesley 1990. (ISBN 0-201-17529-0)
  This is an excellent and unique book. Basic concepts and terminology are
explained before moving on to explain the major aspects of real time design.
"Real world" examples are presented in Ada, Modula-2 and occam 2, though
Ada is clearly the authors' language of choice and gets the most coverage.
Topics covered include reliability and fault tolerance, concurrency,
synchronisation, scheduling, message passing, atomic transactions, resource
control, distributed systems and low-level device control. Efficiency is not
neglected, and Ada support here is particularly strong with detail on the
CIFO package. Several case studies are also presented. The only failing of
the book is that it needs updating to cover Ada 9x and its real-time annex,
Modula-3 etc. However, the basic concepts that the authors convey so clearly
are independent of implementation language. (M. L.)

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.

Naiditch, D.J.  Rendezvous with Ada
New York: John Wiley and Sons, 1989.
  A nice, relatively quick survey of the language for experienced
programmers. Warning: there are not too many complete programs here, at
least at the beginning. But overall, this is a good choice, less overwhelming
than, say, Cohen, for "learning the language" quickly.

Nyberg, K. (editor) 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
as prepared by the Ada Rapporteur Group of Working Group 9 of the
International Organization for Standardization (ISO) and approved by
that organization. These commentaries, interleaved with the LRM text,
are promulgated by the Ada Joint Program Office, the American National
Standards Institute (ANSI) agent for Ada, in the Ada Compiler Validation
Suite (ACVC). They are thus 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, packages and
even procedures 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



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Ada FAQ: comp.lang.ada (part 2 of 3)
@ 1994-12-01 16:22 Magnus Kempe
  0 siblings, 0 replies; 7+ messages in thread
From: Magnus Kempe @ 1994-12-01 16:22 UTC (permalink / raw)


Archive-name: Ada/comp-lang-ada/part2
Comp-lang-ada-archive-name: comp-lang-ada/part2
Posting-Frequency: monthly
Last-modified: 1 December 1994
Last-posted: 18 October 1994

                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

This is part 2 of a 3-part posting.
Part 3 begin with question 9.2; it should be the next posting in this thread.
Part 1 should be the previous posting in this thread.


5.2: Ada Information Clearinghouse (AdaIC)

   The Ada Information Clearinghouse (AdaIC) provides a full spectrum of
   information on Ada to anyone interested in finding out more about the
   programming language. IIT Research Institute operates the AdaIC for
   the Ada Joint Program Office (AJPO).
   
   The address is:

Ada Information Clearinghouse
P.O. Box 46593
Washington, DC 20050-6593
1-800-AdaIC-11 (232-4211), 703/685-1477; fax: 703/685-7019

   
   
   The AdaIC publishes a quarterly newsletter, which contains current
   news, Ada conference reports, announcements from the AJPO Director,
   and articles on projects using Ada. If you would like to receive a
   copy of the AdaIC newsletter, please call and request a subscription.
   There's no charge. The AdaIC also regularly updates and publishes more
   than 70 separate information flyers. Flyer topics include:
     * Ada Validated Compilers
     * Ada News and Current Events
     * Ada Usage
     * Ada 9X Project
     * On-line sources of Ada Information
     * Ada Bibliographies
     * Ada Compiler Validation and Evaluation
     * Resources for Ada Education and Training
     * Ada Software, Tools, and Interfaces
     * Ada Regulations, Policies, and Mandates
     * Ada Historical Information
       
   
   
   One of the most commonly requested flyers is the Validated Compilers
   List. This list, which is updated monthly, contains Ada compilers that
   have been validated by the AJPO. For the most current information on
   validated Ada compilers, contact the AdaIC.
   
   Practically all AdaIC flyers are available via anonymous FTP from the
   AJPO host, in ftp://ajpo.sei.cmu.edu/public/.
   
   
5.3: Association of Computing Machinery's Special Interest Group on Ada (ACM
SIGAda)

   SIGAda's bimonthly publication is Ada Letters.
   
   Price for non-members: $55 (Annual ACM membership dues, $82; students,
   $25).
   
   Otherwise it costs $20 per year to ACM members; $10 per year to ACM
   student members.
   
   The address is:

Association for Computing Machinery, Inc.
1515 Broadway
New York, NY 10036
212/869-7440

   SIGAda also has a number of committees and working groups on a variety
   of topics.
   
   
5.4: ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9, WG9 for short)

   This is a working group that deals with Ada within the International
   Standardization Organization. Within WG-9, are several Rapporteur
   (rap) groups:
     * ARG: Ada Rapporteur Group -- Comments and Interpretations
     * CRG: Character Rapporteur Group -- International Character Sets
     * IRG: Information Systems Rapporteur Group -- Decimal Arithmetic
     * NRG: Numerics Rapporteur Group -- NUMWG packages
     * RRG: Real-Time Rapporteur Group -- ExTRA
     * SRG: SQL Interfaces Rapporteur Group -- SAMeDL
     * URG: Uniformity Rapporteur Group -- Portability through Uniformity
     * XRG: Ada 9X Rapporteur Group
       
   
   
   Ada Rapporteur Group (ARG):
          This is the group responsible for evaluating comments on the
          Ada standard. Officially, the group is only developing a
          technical report addressing comments and questions concerning
          the ISO standard for Ada. (Arcane ISO rules prevent the ARG or
          WG9 from issuing "official" interpretations of a standard.) In
          practice, when a response to a comment is approved by WG9, the
          response is taken into account by the Ada Validation Office and
          affects the test suite. The documents containing comments on
          the standard and ARG responses are called "Ada Commentaries"
          and are given numbers of the form AI-ddddd/vv, where vv is a
          version number.
          
          Comments and questions about the Ada standard should be sent to
          ada-comment@ajpo.sei.cmu.edu, using the format specified in the
          Ada standard. You can receive e-mail notification of an update
          to a commentary (optionally including the text of the
          commentary) by sending a request to
          ada-comment@ajpo.sei.cmu.edu. Commentaries are generally
          updated only a few times each year. The text of all
          commentaries is available by anonymous FTP from the AJPO site
          in the account public/ada-comment. A detailed discussion of ARG
          procedures and the format of commentaries can be found in the
          ada-comment account in the file arg-procedures.doc. A
          reformatted copy of the Reference Manual that includes
          WG9-approved commentaries is available from Karl Nyberg
          (karl@grebyn.com).
          
   Uniformity Rapporteur Group (URG)
          Responsible for evaluating Uniformity Issues (UIs). UIs
          specify/recommend specific choices for the compiler
          implementor, where the language permits implementation freedom.
          The "canonical example" is UI-8, on integer types. This UI
          recommends that integers be at least 32 bits, and provides
          names for the other predefined integer types. The goal of the
          URG and the UI's is to further Ada portability by providing
          uniform implementations of implementation-dependent features
          commonly used by Ada applications.
          
   
   
     _________________________________________________________________
   
   
   
6: Tools

   
   
6.1: Is there an Ada-mode for Emacs?

   There are, in fact, 4 Ada modes for Emacs!
     * the most recent one, available by FTP, is in
       ftp://cs.nyu.edu/pub/gnat/emacs-ada-mode.
       
       This is still work under development but it is already quite
       usable. The main features are:
          + TAB ---> indent (almost always correctly)
          + compile and parse the errors (with the cursor at the right
            line AND column)
          + highlight keywords and comments
          + create skeletons for all Ada constructs (both 83 and 9x)
          + goto next (previous) subprogram/package/task
          + goto beginning of syntactic construct
          + name completion (when it is a subprogram defined in the file)
          + untabify, remove trailing spaces automatically before saving
          + C-c TAB ---> format subprogram specs in GNAT style
          + and much more to come...
   The 2 main developers are Markus Heritsch (who works under the
       direction of Franco Gasperoni at ENST, Paris) and Rolf Ebert
       (Munich, Germany).
       
     * a simple ada-mode shipped as part of the emacs distribution (note:
       it seems it doesn't work correctly);
       
     * a more elaborate one from Steven D. Litvintchouk of Mitre Corp
       called electric-ada (available from?--NO INFORMATION); and
       
     * gnu-ada mode. Here is a small description of the features of this
       mode:
       
        Compile programs within emacs
                Run compiler as inferior of Emacs, and parse its error
                messages. NOTE: I believe that this feature will only
                work with VADS, but it might have been tailored to work
                with other compilers.
                
        Ada dired
                It supplies a form of dired that helps manage the VADS
                environment, and it adds ADA vads commands into ada mode.
                Unlike a previous dired-ada implementation, this version
                uses the existing dired mode functions except where there
                is unresolvable conflict. Thus, this is more like a minor
                mode to dired. Very important because on actual version
                of emacs 19(beta), in fact lemacs (lucid emacs), dired
                has changed and we can no longer use gnu-ada mode :-(
                
        you can consult the Ada Language Reference Manual (*) during
                parsing error message.
                (*)You can get one in e.g. the Public Ada Library.
                
        smart indentation
                Tries hard to do all the indenting automatically.
                Emphasizes correct insertion of new code using smart
                templates.
                
        Smart template commands (bnf)
                This is essentially a bnf processor/language-sensitive
                editor. The next message will give you an ada bnf file
                that you can use within ada-mode to expand nonterminals.
                But you can roll your own grammars (e.g., your design
                grammar or an ADL) and put them in *.bnf files ... The
                BNF rule set is stored as a list of rules.
                
        debugging Ada programs within emacs
                A facility is provided for the simultaneous display of
                the source code in one window, while using a.db to step
                through a function in the other. A small arrow "=>" in
                the source window, indicates the current line.
                
        Move from procedure to procedure or package to package
                
        tags Ada
                
        and other things ...
                
   
   
   You can find the gnu-ada mode in
   ftp://ajpo.sei.cmu.edu/public/infoada/gnu/ as well as in the PAL,
   under
   ftp://wuarchive.wustl.edu/pub/languages/ada/swtools/emacs/adamode/.
   
   
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: marketng@alsys.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.
   

An Annotated Sampling of Ada-Oriented Textbooks

September 1994

Michael B. Feldman
Department of Electrical Engineering and Computer Science
The George Washington University
Washington, DC 20052
(202) 994-5919 (voice)
(202) 994-0227 (fax)
mfeldman@seas.gwu.edu

(with contributions from Jack Beidler, Duane Jarc, Suzanne Pawlan Levy,
Mathew Lodge, and David Weller, as indicated by their initials following
their reviews)

As chair of the SIGAda Education Working Group, and a denizen of the
Internet newsgroups, I am often asked to give references for "Ada
textbooks." This list responds to these many queries.

The textbooks 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 books in Group 2 use Ada as their language of
discourse but are "subject-oriented:" data structures, file structures,
compilers, comparative languages. The remaining 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. Maciunas, 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.

Dale, N., D. Weems, and J. McCormick.
Programming and Problem Solving with Ada. D. C. Heath, 1994.
  This book is inspired by Dale and Weems' very successful Introduction to
Pascal and Structured Design, but it is not simply an Ada version.  Ada's
more advanced capabilities such as exceptions, packages and generic units
are included in this text.  In addition, more than half of the material is
completely new, and the order of the topics is signficantly different.  It
also has more of a software engineering focus than the Pascal version. The
only Ada topics not included in this text are tasks and access types.
Procedures and packages are introduced early.  Each chapter includes case
studies, testing and debugging hints and excellent non-programming exercises
and programming problems.  The text comes with a program disk containing all
the programs given in the book.  In addition, a validated Meridian Ada
compiler with complete documentation is available at low cost to students
using this book. (S. P. L.)

DeLillo, N. J.
A First Course in Computer Science with Ada.
Irwin, 1993.
  This book is a first in the Ada literature: a version comes with an
Ada compiler, the AETech-IntegrAda version of Janus Ada. Author, publisher,
and software supplier are to be commended for their courage in this.
The book itself covers all the usual CS1 topics. In my opinion, the order
of presentation is a bit too Pascal-like, with functions and procedures
introduced in Chapter 5 (of 15) and no sign of packages (other than Text_IO)
until Chapter 10. Unconstrained arrays and generics are, however, done
nicely for this level, and Chapter 13 is entirely devoted to a single
nontrivial case study, a statistical package. I wish there were more
complete programs in the early chapters, to put the (otherwise good)
discussion of control and data structures in better context.

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 minimal coverage
of unconstrained array types; generics are introduced at the halfway
point to explain Text_IO, then continued only in 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. (2nd ed.)
Addison Wesley, 1994.
  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. A very interesting addition is the new
Chapter 14, in which OOP in both Ada 83 and Ada 94 is discussed.
This is an especially lucid explanation of OOP in Ada, and makes a real
contribution because it doesn't just discuss tagged types as a "feature"
of Ada 94, but shows very nicely what is possible in Ada 83 (instead
of just what is _not_ possible), and shows how Ada 94 adds functionality.

Smith, James F., and Thomas S. Frank
Introduction to Programming Concepts and Methods with Ada
McGraw-Hill, Inc., 1994
  This is a well written and easy to use text.  The book takes a spiraled
approach to CS 1.  The authors do an excellent job integrating Ada into
the book.  They take a very direct approach, especially with an early
introduction to the package concept and the traditional Text_IO package.
Faculty who have taught CS 1 with Pascal should like this book. Instead
of making a big fanfare about Ada features, they simply introduce them
as good support for software development concepts. The authors have
carefully chosen the Ada topics they decided to cover in this book in
order to strike a balance between staying true to the CS 1 course while
presenting enough of the programming language. If you teach CS 1 you
might at least want to get a copy of this text just to look at two
chapters, Chapter 7 and Chapter 14. Seven covers program correctness and
run-time event (exception handling) and fourteen is a beautiful presentation
and example of generic packaging.  Both presentations are done in an
appropriate manner for CS 1. (J. B.)

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.
Addison Wesley, 1993.
(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 1995.

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.

Hillam, Bruce. Introduction to Abstract Data Types Using Ada.
Prentice-Hall, 1994. (data structures)
This is a very readable treatment of data structures presented using Ada
that makes good use of Ada features such as generics.  It contain many
complete programs and packages.  Unfortunately, obvious syntax errors make
it apparent that not all examples have been compiled.  The level of
presentation is somewhere between an elementary, CS 2, data structures
course and an advanced, CS 7, course.  A subset of first eleven chapters
provide the appropriate topics for a CS 2 course, but not the pedagogy
necessary for a course at that level. (D. J.)

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 (2nd ed.).
Benjamin Cummings, 1993. (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. I include this work in an "Ada list" because I like its
nice, impartial coverage of Ada. 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, 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.

Weiss, M.A.
Data Structures and Algorithms in Ada.
Benjamin/Cummings, 1993.
  I think this book reaches its intended market -- data structures courses
(CS7) -- rather well with Ada. There's a good mixture of theory and practice
(ADT design, for example), and coverage of new topics like amortized algorithm
analysis and splay trees. A book at this level should not pay too much
attention to teaching a language; rather it should make good use of its
language of discourse. The Ada version does not attempt to teach either the
language or Ada-style software engineering, but shows good understanding of
the language, uses generic packages quite well and focuses on the theory of
algorithms, as a book at this level should. This is the first, and so far
the only, text in Ada for this course.

Group 3: A Selection of Other Ada-Related Books

Barnes, J.
Programming in Ada. (4th edition)
Addison-Wesley, 1994.
  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. This just-out fourth edition has a 100-page summary of
Ada 9X.

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. and D. Bryan
Software Engineering with Ada. (3rd edition)
Benjamin/Cummings 1994.
  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. The third edition contains an appendix describing Ada 9X.

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, Alan, and Geoff Davies.
Concurrent Programming.
Addison-Wesley, 1993, ISBN 0-201-54417-2
  Solid book covering all aspects of writing concurrent software. Uses
a version of Pascal called FC-Pascal (available for free through the
Internet). The FC means "Functionally Concurrent". It has constructs
that are similar to Ada 9X, and this is by no accident -- the authors
frequently point out that the implementations in FC-Pascal are taken
from Ada 9X's Tasks and Protected Types. Covers lots of low-level problems
by gradually building up from simple examples. Highly recommended for a
Concurrent Programming class. Exercises and Further readings are provided
at the end of each chapter. (D.W.)

Burns, Alan and Wellings, Andy
Real Time Systems and their Programming Languages
Addison-Wesley 1990. (ISBN 0-201-17529-0)
  This is an excellent and unique book. Basic concepts and terminology are
explained before moving on to explain the major aspects of real time design.
"Real world" examples are presented in Ada, Modula-2 and occam 2, though
Ada is clearly the authors' language of choice and gets the most coverage.
Topics covered include reliability and fault tolerance, concurrency,
synchronisation, scheduling, message passing, atomic transactions, resource
control, distributed systems and low-level device control. Efficiency is not
neglected, and Ada support here is particularly strong with detail on the
CIFO package. Several case studies are also presented. The only failing of
the book is that it needs updating to cover Ada 9x and its real-time annex,
Modula-3 etc. However, the basic concepts that the authors convey so clearly
are independent of implementation language. (M. L.)

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.

Naiditch, D.J.  Rendezvous with Ada
New York: John Wiley and Sons, 1989.
  A nice, relatively quick survey of the language for experienced
programmers. Warning: there are not too many complete programs here, at
least at the beginning. But overall, this is a good choice, less overwhelming
than, say, Cohen, for "learning the language" quickly.

Nyberg, K. (editor) 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
as prepared by the Ada Rapporteur Group of Working Group 9 of the
International Organization for Standardization (ISO) and approved by
that organization. These commentaries, interleaved with the LRM text,
are promulgated by the Ada Joint Program Office, the American National
Standards Institute (ANSI) agent for Ada, in the Ada Compiler Validation
Suite (ACVC). They are thus 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, packages and
even procedures 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




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Ada FAQ: comp.lang.ada (part 2 of 3)
@ 1994-12-19 16:54 Magnus Kempe
  0 siblings, 0 replies; 7+ messages in thread
From: Magnus Kempe @ 1994-12-19 16:54 UTC (permalink / raw)


Archive-name: Ada/comp-lang-ada/part2
Comp-lang-ada-archive-name: comp-lang-ada/part2
Posting-Frequency: monthly
Last-modified: 19 December 1994
Last-posted: 1 December 1994

                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

This is part 2 of a 3-part posting.
Part 3 begins with question 9; it should be the next posting in this thread.
Part 1 should be the previous posting in this thread.


5: Organizations that deal with Ada and Ada issues

   
   
5.1: Ada Joint Program Office (AJPO)

   The AJPO is part of the Department of Defense; it facilitates the
   implementation of the DoD's Software Initiative (Ada) throughout the
   Services, and maintains the integrity of the Ada language. (The AJPO
   sponsors the AdaIC.)
   
   The address is:

Ada Joint Program Office
Defense Information Systems Agency
701 South Courthouse Road
Arlington, VA 22204-2199
703/604-4619 (autovon 664-4619)
fax: 703/685-7019

   The current Director and Deputy Directors are:
   
   Acting Director
          Donald Reifer
          
   Air Force Liaison
          Maj M. Dirk Rogers (rogersd@ajpo.sei.cmu.edu)
          
   Navy Deputy Liaison
          Joan McGarity (mcgarity@ajpo.sei.cmu.edu
          
   Army Deputy Liaison
          MAJ Charlotte Lee (leec@ajpo.sei.cmu.edu)
          
   DISA Liaison
          David Basel (baseld@ajpo.sei.cmu.edu)
          
   
   
   
5.2: Ada Information Clearinghouse (AdaIC)

   The Ada Information Clearinghouse (AdaIC) provides a full spectrum of
   information on Ada to anyone interested in finding out more about the
   programming language. IIT Research Institute operates the AdaIC for
   the Ada Joint Program Office (AJPO).
   
   The address is:

Ada Information Clearinghouse
P.O. Box 46593
Washington, DC 20050-6593
1-800-AdaIC-11 (232-4211), 703/685-1477; fax: 703/685-7019

   
   
   The AdaIC publishes a quarterly newsletter, which contains current
   news, Ada conference reports, announcements from the AJPO Director,
   and articles on projects using Ada. If you would like to receive a
   copy of the AdaIC newsletter, please call and request a subscription.
   There's no charge. The AdaIC also regularly updates and publishes more
   than 70 separate information flyers. Flyer topics include:
     * Ada Validated Compilers
     * Ada News and Current Events
     * Ada Usage
     * Ada 9X Project
     * On-line sources of Ada Information
     * Ada Bibliographies
     * Ada Compiler Validation and Evaluation
     * Resources for Ada Education and Training
     * Ada Software, Tools, and Interfaces
     * Ada Regulations, Policies, and Mandates
     * Ada Historical Information
       
   
   
   One of the most commonly requested flyers is the Validated Compilers
   List. This list, which is updated monthly, contains Ada compilers that
   have been validated by the AJPO. For the most current information on
   validated Ada compilers, contact the AdaIC.
   
   Practically all AdaIC flyers are available via anonymous FTP from the
   AJPO host, in directory ftp://ajpo.sei.cmu.edu/public.
   
   
5.3: Association of Computing Machinery's Special Interest Group on Ada (ACM
SIGAda)

   SIGAda's bimonthly publication is Ada Letters.
   
   Price for non-members: $55 (Annual ACM membership dues, $82; students,
   $25).
   
   Otherwise it costs $20 per year to ACM members; $10 per year to ACM
   student members.
   
   The address is:

Association for Computing Machinery, Inc.
1515 Broadway
New York, NY 10036
212/869-7440

   SIGAda also has a number of committees and working groups on a variety
   of topics.
   
   
5.4: ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9, WG9 for short)

   This is a working group that deals with Ada within the International
   Standardization Organization. Within WG-9, are several Rapporteur
   (rap) groups:
     * ARG: Ada Rapporteur Group -- Comments and Interpretations
     * CRG: Character Rapporteur Group -- International Character Sets
     * IRG: Information Systems Rapporteur Group -- Decimal Arithmetic
     * NRG: Numerics Rapporteur Group -- NUMWG packages
     * RRG: Real-Time Rapporteur Group -- ExTRA
     * SRG: SQL Interfaces Rapporteur Group -- SAMeDL
     * URG: Uniformity Rapporteur Group -- Portability through Uniformity
     * XRG: Ada 9X Rapporteur Group
       
   
   
   Ada Rapporteur Group (ARG):
          This is the group responsible for evaluating comments on the
          Ada standard. Officially, the group is only developing a
          technical report addressing comments and questions concerning
          the ISO standard for Ada. (Arcane ISO rules prevent the ARG or
          WG9 from issuing "official" interpretations of a standard.) In
          practice, when a response to a comment is approved by WG9, the
          response is taken into account by the Ada Validation Office and
          affects the test suite. The documents containing comments on
          the standard and ARG responses are called "Ada Commentaries"
          and are given numbers of the form AI-ddddd/vv, where vv is a
          version number.
          
          Comments and questions about the Ada standard should be sent to
          ada-comment@ajpo.sei.cmu.edu, using the format specified in the
          Ada standard. You can receive e-mail notification of an update
          to a commentary (optionally including the text of the
          commentary) by sending a request to
          ada-comment@ajpo.sei.cmu.edu. Commentaries are generally
          updated only a few times each year. The text of all
          commentaries is available by anonymous FTP from the AJPO site
          in the account public/ada-comment. A detailed discussion of ARG
          procedures and the format of commentaries can be found in the
          ada-comment account in the file arg-procedures.doc. A
          reformatted copy of the Reference Manual that includes
          WG9-approved commentaries is available from Karl Nyberg
          (karl@grebyn.com).
          
   Uniformity Rapporteur Group (URG)
          Responsible for evaluating Uniformity Issues (UIs). UIs
          specify/recommend specific choices for the compiler
          implementor, where the language permits implementation freedom.
          The "canonical example" is UI-8, on integer types. This UI
          recommends that integers be at least 32 bits, and provides
          names for the other predefined integer types. The goal of the
          URG and the UI's is to further Ada portability by providing
          uniform implementations of implementation-dependent features
          commonly used by Ada applications.
          
   
   
     _________________________________________________________________
   
   
   
6: Tools

   
   
6.1: Is there an Ada-mode for Emacs?

   There are, in fact, 4 Ada modes for Emacs!
     * the most recent one, available by FTP, is in
       ftp://cs.nyu.edu/pub/gnat/emacs-ada-mode.
       
       This is still work under development but it is already quite
       usable. The main features are:
          + TAB ---> indent (almost always correctly)
          + compile and parse the errors (with the cursor at the right
            line AND column)
          + highlight keywords and comments
          + create skeletons for all Ada constructs (both 83 and 9x)
          + goto next (previous) subprogram/package/task
          + goto beginning of syntactic construct
          + name completion (when it is a subprogram defined in the file)
          + untabify, remove trailing spaces automatically before saving
          + C-c TAB ---> format subprogram specs in GNAT style
          + and much more to come...
   The 2 main developers are Markus Heritsch (who works under the
       direction of Franco Gasperoni at ENST, Paris) and Rolf Ebert
       (Munich, Germany).
       
     * a simple ada-mode shipped as part of the emacs distribution (note:
       it seems it doesn't work correctly);
       
     * a more elaborate one from Steven D. Litvintchouk of Mitre Corp
       called electric-ada (available from?--NO INFORMATION); and
       
     * gnu-ada mode. Here is a small description of the features of this
       mode:
       
        Compile programs within emacs
                Run compiler as inferior of Emacs, and parse its error
                messages. NOTE: I believe that this feature will only
                work with VADS, but it might have been tailored to work
                with other compilers.
                
        Ada dired
                It supplies a form of dired that helps manage the VADS
                environment, and it adds ADA vads commands into ada mode.
                Unlike a previous dired-ada implementation, this version
                uses the existing dired mode functions except where there
                is unresolvable conflict. Thus, this is more like a minor
                mode to dired. Very important because on actual version
                of emacs 19(beta), in fact lemacs (lucid emacs), dired
                has changed and we can no longer use gnu-ada mode :-(
                
        you can consult the Ada Language Reference Manual (*) during
                parsing error message.
                (*)You can get one in e.g. the Public Ada Library.
                
        smart indentation
                Tries hard to do all the indenting automatically.
                Emphasizes correct insertion of new code using smart
                templates.
                
        Smart template commands (bnf)
                This is essentially a bnf processor/language-sensitive
                editor. The next message will give you an ada bnf file
                that you can use within ada-mode to expand nonterminals.
                But you can roll your own grammars (e.g., your design
                grammar or an ADL) and put them in *.bnf files ... The
                BNF rule set is stored as a list of rules.
                
        debugging Ada programs within emacs
                A facility is provided for the simultaneous display of
                the source code in one window, while using a.db to step
                through a function in the other. A small arrow "=>" in
                the source window, indicates the current line.
                
        Move from procedure to procedure or package to package
                
        tags Ada
                
        and other things ...
                
   
   
   You can find the gnu-ada mode in
   ftp://ajpo.sei.cmu.edu/public/infoada/gnu as well as in the PAL,
   under directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/swtools/emacs/adamode.
   
   
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 directory
   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 directory
   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 directory 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 directory
   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: marketng@alsys.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.
   

An Annotated Sampling of Ada-Oriented Textbooks

September 1994

Michael B. Feldman
Department of Electrical Engineering and Computer Science
The George Washington University
Washington, DC 20052
(202) 994-5919 (voice)
(202) 994-0227 (fax)
mfeldman@seas.gwu.edu

(with contributions from Jack Beidler, Duane Jarc, Suzanne Pawlan Levy,
Mathew Lodge, and David Weller, as indicated by their initials following
their reviews)

As chair of the SIGAda Education Working Group, and a denizen of the
Internet newsgroups, I am often asked to give references for "Ada
textbooks." This list responds to these many queries.

The textbooks 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 books in Group 2 use Ada as their language of
discourse but are "subject-oriented:" data structures, file structures,
compilers, comparative languages. The remaining 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. Maciunas, 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.

Dale, N., D. Weems, and J. McCormick.
Programming and Problem Solving with Ada. D. C. Heath, 1994.
  This book is inspired by Dale and Weems' very successful Introduction to
Pascal and Structured Design, but it is not simply an Ada version.  Ada's
more advanced capabilities such as exceptions, packages and generic units
are included in this text.  In addition, more than half of the material is
completely new, and the order of the topics is signficantly different.  It
also has more of a software engineering focus than the Pascal version. The
only Ada topics not included in this text are tasks and access types.
Procedures and packages are introduced early.  Each chapter includes case
studies, testing and debugging hints and excellent non-programming exercises
and programming problems.  The text comes with a program disk containing all
the programs given in the book.  In addition, a validated Meridian Ada
compiler with complete documentation is available at low cost to students
using this book. (S. P. L.)

DeLillo, N. J.
A First Course in Computer Science with Ada.
Irwin, 1993.
  This book is a first in the Ada literature: a version comes with an
Ada compiler, the AETech-IntegrAda version of Janus Ada. Author, publisher,
and software supplier are to be commended for their courage in this.
The book itself covers all the usual CS1 topics. In my opinion, the order
of presentation is a bit too Pascal-like, with functions and procedures
introduced in Chapter 5 (of 15) and no sign of packages (other than Text_IO)
until Chapter 10. Unconstrained arrays and generics are, however, done
nicely for this level, and Chapter 13 is entirely devoted to a single
nontrivial case study, a statistical package. I wish there were more
complete programs in the early chapters, to put the (otherwise good)
discussion of control and data structures in better context.

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 minimal coverage
of unconstrained array types; generics are introduced at the halfway
point to explain Text_IO, then continued only in 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. (2nd ed.)
Addison Wesley, 1994.
  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. A very interesting addition is the new
Chapter 14, in which OOP in both Ada 83 and Ada 94 is discussed.
This is an especially lucid explanation of OOP in Ada, and makes a real
contribution because it doesn't just discuss tagged types as a "feature"
of Ada 94, but shows very nicely what is possible in Ada 83 (instead
of just what is _not_ possible), and shows how Ada 94 adds functionality.

Smith, James F., and Thomas S. Frank
Introduction to Programming Concepts and Methods with Ada
McGraw-Hill, Inc., 1994
  This is a well written and easy to use text.  The book takes a spiraled
approach to CS 1.  The authors do an excellent job integrating Ada into
the book.  They take a very direct approach, especially with an early
introduction to the package concept and the traditional Text_IO package.
Faculty who have taught CS 1 with Pascal should like this book. Instead
of making a big fanfare about Ada features, they simply introduce them
as good support for software development concepts. The authors have
carefully chosen the Ada topics they decided to cover in this book in
order to strike a balance between staying true to the CS 1 course while
presenting enough of the programming language. If you teach CS 1 you
might at least want to get a copy of this text just to look at two
chapters, Chapter 7 and Chapter 14. Seven covers program correctness and
run-time event (exception handling) and fourteen is a beautiful presentation
and example of generic packaging.  Both presentations are done in an
appropriate manner for CS 1. (J. B.)

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.
Addison Wesley, 1993.
(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 1995.

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.

Hillam, Bruce. Introduction to Abstract Data Types Using Ada.
Prentice-Hall, 1994. (data structures)
This is a very readable treatment of data structures presented using Ada
that makes good use of Ada features such as generics.  It contain many
complete programs and packages.  Unfortunately, obvious syntax errors make
it apparent that not all examples have been compiled.  The level of
presentation is somewhere between an elementary, CS 2, data structures
course and an advanced, CS 7, course.  A subset of first eleven chapters
provide the appropriate topics for a CS 2 course, but not the pedagogy
necessary for a course at that level. (D. J.)

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 (2nd ed.).
Benjamin Cummings, 1993. (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. I include this work in an "Ada list" because I like its
nice, impartial coverage of Ada. 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, 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.

Weiss, M.A.
Data Structures and Algorithms in Ada.
Benjamin/Cummings, 1993.
  I think this book reaches its intended market -- data structures courses
(CS7) -- rather well with Ada. There's a good mixture of theory and practice
(ADT design, for example), and coverage of new topics like amortized algorithm
analysis and splay trees. A book at this level should not pay too much
attention to teaching a language; rather it should make good use of its
language of discourse. The Ada version does not attempt to teach either the
language or Ada-style software engineering, but shows good understanding of
the language, uses generic packages quite well and focuses on the theory of
algorithms, as a book at this level should. This is the first, and so far
the only, text in Ada for this course.

Group 3: A Selection of Other Ada-Related Books

Barnes, J.
Programming in Ada. (4th edition)
Addison-Wesley, 1994.
  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. This just-out fourth edition has a 100-page summary of
Ada 9X.

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. and D. Bryan
Software Engineering with Ada. (3rd edition)
Benjamin/Cummings 1994.
  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. The third edition contains an appendix describing Ada 9X.

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, Alan, and Geoff Davies.
Concurrent Programming.
Addison-Wesley, 1993, ISBN 0-201-54417-2
  Solid book covering all aspects of writing concurrent software. Uses
a version of Pascal called FC-Pascal (available for free through the
Internet). The FC means "Functionally Concurrent". It has constructs
that are similar to Ada 9X, and this is by no accident -- the authors
frequently point out that the implementations in FC-Pascal are taken
from Ada 9X's Tasks and Protected Types. Covers lots of low-level problems
by gradually building up from simple examples. Highly recommended for a
Concurrent Programming class. Exercises and Further readings are provided
at the end of each chapter. (D.W.)

Burns, Alan and Wellings, Andy
Real Time Systems and their Programming Languages
Addison-Wesley 1990. (ISBN 0-201-17529-0)
  This is an excellent and unique book. Basic concepts and terminology are
explained before moving on to explain the major aspects of real time design.
"Real world" examples are presented in Ada, Modula-2 and occam 2, though
Ada is clearly the authors' language of choice and gets the most coverage.
Topics covered include reliability and fault tolerance, concurrency,
synchronisation, scheduling, message passing, atomic transactions, resource
control, distributed systems and low-level device control. Efficiency is not
neglected, and Ada support here is particularly strong with detail on the
CIFO package. Several case studies are also presented. The only failing of
the book is that it needs updating to cover Ada 9x and its real-time annex,
Modula-3 etc. However, the basic concepts that the authors convey so clearly
are independent of implementation language. (M. L.)

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.

Naiditch, D.J.  Rendezvous with Ada
New York: John Wiley and Sons, 1989.
  A nice, relatively quick survey of the language for experienced
programmers. Warning: there are not too many complete programs here, at
least at the beginning. But overall, this is a good choice, less overwhelming
than, say, Cohen, for "learning the language" quickly.

Nyberg, K. (editor) 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
as prepared by the Ada Rapporteur Group of Working Group 9 of the
International Organization for Standardization (ISO) and approved by
that organization. These commentaries, interleaved with the LRM text,
are promulgated by the Ada Joint Program Office, the American National
Standards Institute (ANSI) agent for Ada, in the Ada Compiler Validation
Suite (ACVC). They are thus 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, packages and
even procedures 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.

   
   
     _________________________________________________________________



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Ada FAQ: comp.lang.ada (part 2 of 3)
@ 1995-03-21 18:11 Magnus Kempe
  0 siblings, 0 replies; 7+ messages in thread
From: Magnus Kempe @ 1995-03-21 18:11 UTC (permalink / raw)


Archive-name: computer-lang/Ada/comp-lang-ada/part2
Comp-lang-ada-archive-name: comp-lang-ada/part2
Posting-Frequency: monthly
Last-modified: 20 March 1995
Last-posted: 20 February 1995

                                comp.lang.ada
                      Frequently Asked Questions (FAQ)

This is part 2 of a 3-part posting.
Part 3 begins with question 9; it should be the next posting in this thread.
Part 1 should be the previous posting in this thread.


4.5: How can I contact Ada compiler vendors?

   Note: The AdaIC's Validated Compiler List (see 4.1) now contains--at
   the end of the list--addresses, including e-mail, for compiler-vendor
   points of contact. Here is a non-exhaustive list (possibly
   out-of-date, for the moment) of email and phone contacts for questions
   and/or sales.

Alsys: see Thomson Software Products

Convex
  questions
    allison@convex.com (Brian Allison)
    Tel: (214) 497-4346

Cray
  questions
    det@cray.com (Dave Thersleff)
    Tel: (612) 683-5701
  sales
    svc@cray.com (Sylvia Crain)
    Tel: (505) 988-2468

DEC
  WWW http://www.digital.com/home.html

DDC-I
  sales
    sale@ddci.dk
    Tel: (602) 275-7172
    Tel: +45 45 87 11 44

Green Hills Software Inc.
  questions
    support@ghs.com
  sales
    eric@ghs.com (Eric Schacherer)
    Tel: (805) 965-6044

Harris
  questions
    jeffh@ssd.csd.harris.com (Jeff Hollensen)

IBM/Ada
  questions
    malcho@torolab6.vnet.ibm.com (Don Malcho)
    Tel: (416) 448-3727

Intermetrics
  WWW http://www.inmet.com/
  questions
    ryer@inmet.inmet.com (Mike Ryer)

Irvine Compiler Corp (ICC)
  questions
    info@irvine.com

OC Systems Inc.
  WWW http://ocsystems.com/
  questions
    Email: info@ocsystems.com
  sales
    Tel: (703) 359-8160
    Fax: (703) 359-8161

Rational Software Corporation
  sales
    product_info@rational.com
    Tel: (408) 496-3600 or (800) RAT-1212

R.R. Software
  rbrukardt@bix.com (Randy Brukardt)
  Tel: (800) Pc-Ada-4u (or: (800) 722-3248)

Tartan
  questions
    customer-support@tartan.com
    Tel: (412) 856-3600 (ext 150)
  sales
    info@tartan.com
    Tel: (800) 856-5255 or (412) 856-3600

TeleSoft
  questions
    adasupport@alsys.com
    (Note that TeleSoft is now part of Thomson Software Products.)
    Tel: (619) 457-2700
  sales
    marketng@alsys.com
    Tel: (619) 457-2700

Thomson Software Products (ex-Alsys)
  questions
    adasupport@alsys.com
  sales
    marketng@alsys.com
    Tel: (619) 270-0030 (voice) Pat Michalowski


     _________________________________________________________________


5: Organizations that deal with Ada and Ada issues


5.1: Ada Joint Program Office (AJPO)

   The AJPO is part of the Department of Defense; it facilitates the
   implementation of the DoD's Software Initiative (Ada) throughout the
   Services, and maintains the integrity of the Ada language. (The AJPO
   sponsors the AdaIC.)

   The address is:

Ada Joint Program Office
Defense Information Systems Agency
701 South Courthouse Road
Arlington, VA 22204-2199
703/604-4619 (autovon 664-4619)
fax: 703/685-7019

   The current Director and Deputy Directors are:

   Acting Director
          Donald Reifer

   Air Force Liaison
          Maj M. Dirk Rogers (rogersd@ajpo.sei.cmu.edu)

   Navy Deputy Liaison
          Joan McGarity (mcgarity@ajpo.sei.cmu.edu

   Army Deputy Liaison
          MAJ Charlotte Lee (leec@ajpo.sei.cmu.edu)

   DISA Liaison
          David Basel (baseld@ajpo.sei.cmu.edu)


5.2: Ada Information Clearinghouse (AdaIC)

   The Ada Information Clearinghouse (AdaIC) provides a full spectrum of
   information on Ada to anyone interested in finding out more about the
   programming language. IIT Research Institute operates the AdaIC for
   the Ada Joint Program Office (AJPO).

   The address is:

Ada Information Clearinghouse
P.O. Box 46593
Washington, DC 20050-6593
1-800-AdaIC-11 (232-4211), 703/685-1477; fax: 703/685-7019


   The AdaIC publishes a quarterly newsletter, which contains current
   news, Ada conference reports, announcements from the AJPO Director,
   and articles on projects using Ada. If you would like to receive a
   copy of the AdaIC newsletter, please call and request a subscription.
   There's no charge. The AdaIC also regularly updates and publishes more
   than 70 separate information flyers. Flyer topics include:
     * Ada Validated Compilers
     * Ada News and Current Events
     * Ada Usage
     * Ada 9X Project
     * On-line sources of Ada Information
     * Ada Bibliographies
     * Ada Compiler Validation and Evaluation
     * Resources for Ada Education and Training
     * Ada Software, Tools, and Interfaces
     * Ada Regulations, Policies, and Mandates
     * Ada Historical Information


   One of the most commonly requested flyers is the Validated Compilers
   List. This list, which is updated monthly, contains Ada compilers that
   have been validated by the AJPO. For the most current information on
   validated Ada compilers, contact the AdaIC.

   Practically all AdaIC flyers are available via anonymous FTP from
   their host, in directory ftp://sw-eng.falls-church.va.us/public.


5.3: Association of Computing Machinery's Special Interest Group on Ada (ACM
SIGAda)

   SIGAda's bimonthly publication is Ada Letters.

   Price for non-members: $55 (Annual ACM membership dues, $82; students,
   $25).

   Otherwise it costs $20 per year to ACM members; $10 per year to ACM
   student members.

   The address is:

Association for Computing Machinery, Inc.
1515 Broadway
New York, NY 10036
212/869-7440

   SIGAda also has a number of committees and working groups on a variety
   of topics.


5.4: ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9, WG9 for short)

   This is a working group that deals with Ada within the International
   Standardization Organization. Within WG-9, are several Rapporteur
   (rap) groups:
     * ARG: Ada Rapporteur Group -- Comments and Interpretations
     * CRG: Character Rapporteur Group -- International Character Sets
     * IRG: Information Systems Rapporteur Group -- Decimal Arithmetic
     * NRG: Numerics Rapporteur Group -- NUMWG packages
     * RRG: Real-Time Rapporteur Group -- ExTRA
     * SRG: SQL Interfaces Rapporteur Group -- SAMeDL
     * URG: Uniformity Rapporteur Group -- Portability through Uniformity
     * XRG: Ada 9X Rapporteur Group


   Ada Rapporteur Group (ARG):
          This is the group responsible for evaluating comments on the
          Ada standard. Officially, the group is only developing a
          technical report addressing comments and questions concerning
          the ISO standard for Ada. (Arcane ISO rules prevent the ARG or
          WG9 from issuing "official" interpretations of a standard.) In
          practice, when a response to a comment is approved by WG9, the
          response is taken into account by the Ada Validation Office and
          affects the test suite. The documents containing comments on
          the standard and ARG responses are called "Ada Commentaries"
          and are given numbers of the form AI-ddddd/vv, where vv is a
          version number.

          Comments and questions about the Ada standard should be sent to
          ada-comment@ajpo.sei.cmu.edu, using the format specified in the
          Ada standard. You can receive e-mail notification of an update
          to a commentary (optionally including the text of the
          commentary) by sending a request to
          ada-comment@ajpo.sei.cmu.edu. Commentaries are generally
          updated only a few times each year. The text of all
          commentaries is available by anonymous FTP from the AJPO site
          in the account public/ada-comment. A detailed discussion of ARG
          procedures and the format of commentaries can be found in the
          ada-comment account in the file arg-procedures.doc. A
          reformatted copy of the Reference Manual that includes
          WG9-approved commentaries is available from Karl Nyberg
          (karl@grebyn.com).

   Uniformity Rapporteur Group (URG)
          Responsible for evaluating Uniformity Issues (UIs). UIs
          specify/recommend specific choices for the compiler
          implementor, where the language permits implementation freedom.
          The "canonical example" is UI-8, on integer types. This UI
          recommends that integers be at least 32 bits, and provides
          names for the other predefined integer types. The goal of the
          URG and the UI's is to further Ada portability by providing
          uniform implementations of implementation-dependent features
          commonly used by Ada applications.


     _________________________________________________________________


6: Tools


6.1: Is there an Ada-mode for Emacs?

   There are, in fact, 4 Ada modes for Emacs!
     * the most recent one, available by FTP, is in the file
       emacs-ada-mode-2.12.tar.gz in directory ftp://cs.nyu.edu/pub/gnat

       This is still work under development but it is already quite
       usable. The main features are:
          + TAB ---> indent (almost always correctly)
          + compile and parse the errors (with the cursor at the right
            line AND column)
          + highlight keywords and comments
          + create skeletons for all Ada constructs (both 83 and 9x)
          + goto next (previous) subprogram/package/task
          + goto beginning of syntactic construct
          + name completion (when it is a subprogram defined in the file)
          + untabify, remove trailing spaces automatically before saving
          + C-c TAB ---> format subprogram specs in GNAT style
          + and much more to come...
   The 2 main developers are Markus Heritsch (who works under the
       direction of Franco Gasperoni at ENST, Paris) and Rolf Ebert
       (Munich, Germany).

     * a simple ada-mode shipped as part of the emacs distribution (note:
       it seems it doesn't work correctly);

     * a more elaborate one from Steven D. Litvintchouk of Mitre Corp
       called electric-ada (available from?--NO INFORMATION); and

     * gnu-ada mode. Here is a small description of the features of this
       mode:

        Compile programs within emacs
                Run compiler as inferior of Emacs, and parse its error
                messages. NOTE: I believe that this feature will only
                work with VADS, but it might have been tailored to work
                with other compilers.

        Ada dired
                It supplies a form of dired that helps manage the VADS
                environment, and it adds ADA vads commands into ada mode.
                Unlike a previous dired-ada implementation, this version
                uses the existing dired mode functions except where there
                is unresolvable conflict. Thus, this is more like a minor
                mode to dired. Very important because on actual version
                of emacs 19(beta), in fact lemacs (lucid emacs), dired
                has changed and we can no longer use gnu-ada mode :-(

        you can consult the Ada Language Reference Manual (*) during
                parsing error message.
                (*)You can get one in e.g. the Public Ada Library.

        smart indentation
                Tries hard to do all the indenting automatically.
                Emphasizes correct insertion of new code using smart
                templates.

        Smart template commands (bnf)
                This is essentially a bnf processor/language-sensitive
                editor. The next message will give you an ada bnf file
                that you can use within ada-mode to expand nonterminals.
                But you can roll your own grammars (e.g., your design
                grammar or an ADL) and put them in *.bnf files ... The
                BNF rule set is stored as a list of rules.

        debugging Ada programs within emacs
                A facility is provided for the simultaneous display of
                the source code in one window, while using a.db to step
                through a function in the other. A small arrow "=>" in
                the source window, indicates the current line.

        Move from procedure to procedure or package to package

        tags Ada

        and other things ...


   You can find the gnu-ada mode in where did it go? as well as in the
   PAL, under directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/swtools/emacs/adamode.


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 directory
   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 95 is available in
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
       /grammar9x.y

   and a lex grammar for Ada 95 is available in
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
       /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 directory
   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 versions 2.0.0, 1.1.1, and 1.1.0 are available from directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/work-grp/asiswg

     _________________________________________________________________


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, or it can be
   downloaded. It is available by anonymous FTP on the AdaIC host in
   directory ftp://sw-eng.falls-church.va.us/public/AdaIC/tools/bindings


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 directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/tools/bindings/POSIX


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 at the AdaIC.
FTP Location:

ftp://sw-eng.falls-church.va.us/public/AdaIC/tools/bindings/xwinbind.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 Thomson Software Products, ex-Alsys):
bindings to Xlib/Xt/Motif (TeleWindows)
(Note that bindings to Xview are included with the TeleSoft Sun4 compiler)
contact: marketng@alsys.com

X-based GUI (Graphical User Interface) Builders:
Objective (OIS): Screen Machine
contact: Phil Carrasco (703/264-1900)

TeleSoft (now part of Thomson Software Products, ex-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://sw-eng.falls-church.va.us/public/AdaIC/ed-train/adabooks.txt


An Annotated Sampling of Ada-Oriented Textbooks

November 1994

Michael B. Feldman
Department of Electrical Engineering and Computer Science
The George Washington University
Washington, DC 20052
(202) 994-5919 (voice)
(202) 994-0227 (fax)
mfeldman@seas.gwu.edu

(with contributions from Jack Beidler, Duane Jarc, Suzanne Pawlan Levy,
Mathew Lodge, and David Weller, as indicated by their initials following
their reviews)

As chair of the SIGAda Education Working Group, and a denizen of the
Internet newsgroups, I am often asked to give references for "Ada
textbooks." This list responds to these many queries.

The textbooks 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 books in Group 2 use Ada as their language of
discourse but are "subject-oriented:" data structures, file structures,
compilers, comparative languages. The remaining 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. Maciunas, and M.J. Oudshoorn.
Ada: A First Course in Programming and Software Engineering.
Addison-Wesley, 1992. ISBN 0-201-50992-X
  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.

Dale, N., D. Weems, and J. McCormick.
Programming and Problem Solving with Ada. D. C. Heath, 1994.
ISBN 0-669-29360-1
  This book is inspired by Dale and Weems' very successful Introduction to
Pascal and Structured Design, but it is not simply an Ada version.  Ada's
more advanced capabilities such as exceptions, packages and generic units
are included in this text.  In addition, more than half of the material is
completely new, and the order of the topics is signficantly different.  It
also has more of a software engineering focus than the Pascal version. The
only Ada topics not included in this text are tasks and access types.
Procedures and packages are introduced early.  Each chapter includes case
studies, testing and debugging hints and excellent non-programming exercises
and programming problems.  The text comes with a program disk containing all
the programs given in the book.  In addition, a validated Meridian Ada
compiler with complete documentation is available at low cost to students
using this book. (S. P. L.)

DeLillo, N. J.
A First Course in Computer Science with Ada.
Irwin, 1993. (ISBN 0-256-12538-4)
  This book is a first in the Ada literature: a version comes with an
Ada compiler, the AETech-IntegrAda version of Janus Ada. Author, publisher,
and software supplier are to be commended for their courage in this.
The book itself covers all the usual CS1 topics. In my opinion, the order
of presentation is a bit too Pascal-like, with functions and procedures
introduced in Chapter 5 (of 15) and no sign of packages (other than Text_IO)
until Chapter 10. Unconstrained arrays and generics are, however, done
nicely for this level, and Chapter 13 is entirely devoted to a single
nontrivial case study, a statistical package. I wish there were more
complete programs in the early chapters, to put the (otherwise good)
discussion of control and data structures in better context.

Feldman, M.B., and E.B. Koffman.
Ada: Problem Solving and Program Design.
Addison-Wesley, 1992. ISBN 0-201-53364-2
  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. ISBN 0-8053-7070-6
  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 minimal coverage
of unconstrained array types; generics are introduced at the halfway
point to explain Text_IO, then continued only in 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. (2nd ed.)
Addison Wesley, 1994. ISBN 0-201-62448-6
  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. A very interesting addition is the new
Chapter 14, in which OOP in both Ada 83 and Ada 94 is discussed.
This is an especially lucid explanation of OOP in Ada, and makes a real
contribution because it doesn't just discuss tagged types as a "feature"
of Ada 94, but shows very nicely what is possible in Ada 83 (instead
of just what is _not_ possible), and shows how Ada 94 adds functionality.

Smith, James F., and Thomas S. Frank
Introduction to Programming Concepts and Methods with Ada
McGraw-Hill, Inc., 1994 ISBN 0-07-911725-2
  This is a well written and easy to use text.  The book takes a spiraled
approach to CS 1.  The authors do an excellent job integrating Ada into
the book.  They take a very direct approach, especially with an early
introduction to the package concept and the traditional Text_IO package.
Faculty who have taught CS 1 with Pascal should like this book. Instead
of making a big fanfare about Ada features, they simply introduce them
as good support for software development concepts. The authors have
carefully chosen the Ada topics they decided to cover in this book in
order to strike a balance between staying true to the CS 1 course while
presenting enough of the programming language. If you teach CS 1 you
might at least want to get a copy of this text just to look at two
chapters, Chapter 7 and Chapter 14. Seven covers program correctness and
run-time event (exception handling) and fourteen is a beautiful presentation
and example of generic packaging.  Both presentations are done in an
appropriate manner for CS 1. (J. B.)

Volper, D., and M. Katz. Introduction to Programming Using Ada.
Prentice-Hall, 1990. ISBN 0-13-493529-2
  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) ISBN 0-13-711821-X
  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.
Addison Wesley, 1993. ISBN 0-201-52673-5
(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 1995.

Fischer, C., and R. LeBlanc. Crafting a Compiler.
Benjamin Cummings, 1988. (compilers) ISBN 0-8053-3201-4
  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.

Hillam, Bruce. Introduction to Abstract Data Types Using Ada.
Prentice-Hall, 1994. (data structures) ISBN 0-13-045949-6
This is a very readable treatment of data structures presented using Ada
that makes good use of Ada features such as generics.  It contain many
complete programs and packages.  Unfortunately, obvious syntax errors make
it apparent that not all examples have been compiled.  The level of
presentation is somewhere between an elementary, CS 2, data structures
course and an advanced, CS 7, course.  A subset of first eleven chapters
provide the appropriate topics for a CS 2 course, but not the pedagogy
necessary for a course at that level. (D. J.)

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) ISBN 0-8053-0440-1
  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 (2nd ed.).
Benjamin Cummings, 1993. (comparative languages) ISBN 0-8053-7132-X
  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. I include this work in an "Ada list" because I like its
nice, impartial coverage of Ada. 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, 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.

Stubbs, D.F., and N.W. Webre.
Data Structures with Abstract Data Types and Ada.
PWS-Kent, 1993. (advanced data structures) ISBN 0-534-14448-9
  This work updates and adapts to Ada the material in the authors'
successful data structures texts using Pascal and Modula-2. It is good for a
"heavy" CS2, i.e., one on the theoretical side, or a "light" CS7, i.e. it
is not as theory-oriented as the Weiss work below. More Ada, especially
regarding advanced types, is taught here than in Weiss. Especially
interesting about all the books from these authors is that they have
matched their "big O" performance prediction with tables and graphs
showing actual performance measurements.


Weiss, M.A.
Data Structures and Algorithms in Ada.
Benjamin/Cummings, 1993. ISBN 0-8053-9055-3
  I think this book reaches its intended market -- data structures courses
(CS7) -- rather well with Ada. There's a good mixture of theory and practice
(ADT design, for example), and coverage of new topics like amortized algorithm
analysis and splay trees. A book at this level should not pay too much
attention to teaching a language; rather it should make good use of its
language of discourse. The Ada version does not attempt to teach either the
language or Ada-style software engineering, but shows good understanding of
the language, uses generic packages quite well and focuses on the theory of
algorithms, as a book at this level should. This is the first, and so far
the only, text in Ada for this course.

Group 3: A Selection of Other Ada-Related Books

Barnes, J.
Programming in Ada. (4th edition)
Addison-Wesley, 1994. ISBN 0-201-62407-9
  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. This just-out fourth edition has a 100-page summary of
Ada 95.

Booch, G.
Software Components with Ada.
Benjamin Cummings, 1987. ISBN 0-8053-0610-2
  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. and D. Bryan, with C. Petersen
Software Engineering with Ada. (3rd edition)
Benjamin/Cummings 1994. ISBN 0-8053-0613-7
  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. The third edition contains an appendix describing Ada 9X.

Bryan, D.L., and G.O. Mendal. Exploring Ada, Volumes 1.and 2.
Prentice-Hall, 1990 and 1992 respectively. ISBN 0-13-295684 (vol. 1);
ISBN 0-13-297227-1 (vol. 2)
  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, Alan, and Geoff Davies.
Concurrent Programming.
Addison-Wesley, 1993, ISBN 0-201-54417-2
  Solid book covering all aspects of writing concurrent software. Uses
a version of Pascal called FC-Pascal (available for free through the
Internet). The FC means "Functionally Concurrent". It has constructs
that are similar to Ada 95, and this is by no accident -- the authors
frequently point out that the implementations in FC-Pascal are taken
from Ada 95's Tasks and Protected Types. Covers lots of low-level problems
by gradually building up from simple examples. Highly recommended for a
Concurrent Programming class. Exercises and Further readings are provided
at the end of each chapter. (D.W.)

Burns, Alan and Wellings, Andy
Real Time Systems and their Programming Languages
Addison-Wesley 1990. (ISBN 0-201-17529-0)
  This is an excellent and unique book. Basic concepts and terminology are
explained before moving on to explain the major aspects of real time design.
"Real world" examples are presented in Ada, Modula-2 and occam 2, though
Ada is clearly the authors' language of choice and gets the most coverage.
Topics covered include reliability and fault tolerance, concurrency,
synchronisation, scheduling, message passing, atomic transactions, resource
control, distributed systems and low-level device control. Efficiency is not
neglected, and Ada support here is particularly strong with detail on the
CIFO package. Several case studies are also presented. The only failing of
the book is that it needs updating to cover Ada 9x and its real-time annex,
Modula-3 etc. However, the basic concepts that the authors convey so clearly
are independent of implementation language. (M. L.)

Cohen, N. Ada as a Second Language.
McGraw Hill, 1986. ISBN 0-07-011589-3
  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. An anxiously-awaited 2nd edition
covering Ada 95 is in the pipeline.

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. ISBN 0-13-004334-6
  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. ISBN 0-929306-08-2
  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.

Naiditch, D.J.  Rendezvous with Ada
New York: John Wiley and Sons, 1989. ISBN 0-471-61654-0
  A nice, relatively quick survey of the language for experienced
programmers. Warning: there are not too many complete programs here, at
least at the beginning. But overall, this is a good choice, less overwhelming
than, say, Cohen, for "learning the language" quickly.

Nyberg, K. (editor) The Annotated Ada Reference Manual.(3rd edition)
Grebyn Corporation, 1993.
  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
as prepared by the Ada Rapporteur Group of Working Group 9 of the
International Organization for Standardization (ISO) and approved by
that organization. These commentaries, interleaved with the LRM text,
are promulgated by the Ada Joint Program Office, the American National
Standards Institute (ANSI) agent for Ada, in the Ada Compiler Validation
Suite (ACVC). They are thus binding upon compiler developers. I recommend
this book as an essential volume in the library of every serious Ada
enthusiast.

Watt, D.A., B.A. Wichmann, and W. Findlay. Ada Language and Methodology.
Prentice-Hall, 1987. ISBN 0-13-004078-9
  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, packages and
even procedures 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.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Ada FAQ: comp.lang.ada (part 2 of 3)
@ 1995-04-20  0:00 Magnus Kempe
  0 siblings, 0 replies; 7+ messages in thread
From: Magnus Kempe @ 1995-04-20  0:00 UTC (permalink / raw)


Archive-name: computer-lang/Ada/comp-lang-ada/part2
Comp-lang-ada-archive-name: comp-lang-ada/part2
Posting-Frequency: monthly
Last-modified: 20 April 1995
Last-posted: 21 March 1995

                                comp.lang.ada
                      Frequently Asked Questions (FAQ)

    Recent changes to this FAQ are listed in the first section after the table
    of contents. This document is under explicit copyright.

This is part 2 of a 3-part posting.
Part 3 begins with question 9; it should be the next posting in this thread.
Part 1 should be the previous posting in this thread.


4.5: How can I contact Ada compiler vendors?

   Note: The AdaIC's Validated Compiler List (see 4.1) now contains--at
   the end of the list--addresses, including e-mail, for compiler-vendor
   points of contact. Here is a non-exhaustive list (possibly
   out-of-date, for the moment) of email and phone contacts for questions
   and/or sales.

Alsys: see Thomson Software Products

Convex
  questions
    allison@convex.com (Brian Allison)
    Tel: (214) 497-4346

Cray
  questions
    det@cray.com (Dave Thersleff)
    Tel: (612) 683-5701
  sales
    svc@cray.com (Sylvia Crain)
    Tel: (505) 988-2468

DEC
  WWW http://www.digital.com/home.html

DDC-I
  sales
    sale@ddci.dk
    Tel: (602) 275-7172
    Tel: +45 45 87 11 44

Green Hills Software Inc.
  questions
    support@ghs.com
  sales
    eric@ghs.com (Eric Schacherer)
    Tel: (805) 965-6044

Harris
  questions
    jeffh@ssd.csd.harris.com (Jeff Hollensen)

IBM/Ada
  questions
    malcho@torolab6.vnet.ibm.com (Don Malcho)
    Tel: (416) 448-3727

Intermetrics
  WWW http://www.inmet.com/
  questions
    ryer@inmet.inmet.com (Mike Ryer)

Irvine Compiler Corp (ICC)
  questions
    info@irvine.com

OC Systems Inc.
  WWW http://ocsystems.com/
  questions
    Email: info@ocsystems.com
  sales
    Tel: (703) 359-8160
    Fax: (703) 359-8161

Rational Software Corporation
  sales
    product_info@rational.com
    Tel: (408) 496-3600 or (800) RAT-1212

R.R. Software
  rbrukardt@bix.com (Randy Brukardt)
  Tel: (800) Pc-Ada-4u (or: (800) 722-3248)

Tartan
  questions
    customer-support@tartan.com
    Tel: (412) 856-3600 (ext 150)
  sales
    info@tartan.com
    Tel: (800) 856-5255 or (412) 856-3600

TeleSoft
  questions
    adasupport@alsys.com
    (Note that TeleSoft is now part of Thomson Software Products.)
    Tel: (619) 457-2700
  sales
    marketng@alsys.com
    Tel: (619) 457-2700

Thomson Software Products (ex-Alsys)
  questions
    adasupport@alsys.com
  sales
    marketng@alsys.com
    Tel: (619) 270-0030 (voice) Pat Michalowski


4.6: Are Ada 95 compilers compatible with Ada 83?

   Yes, absolutely. Ada 95 is very close to upwards compatible with Ada
   83, so you will find that an Ada 95 compiler is in practice
   "compatible" with the Ada 83 compiler you have used or are using. The
   compatibility really depends on what kind of code you have written, so
   one should understand what has evolved, what was considered broken and
   is now fixed, as well as what is new. There are two excellent
   documents that will help immensely in that respect:
     * Changes to Ada -- 1987 to 1995, in a Postscript 362KB file:
       ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard
           /95lrm_rat/v6.0/chg83.ps
       also available in a text-only 207KB file:
       ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard
           /95lrm_rat/v6.0/chg83.doc

     * Ada 9X Compatibility Guide, by Bill Taylor, in directory
       ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/compat-guide


   Furthermore, GNAT has a -gnat83 switch which enforces most of the Ada
   83 restrictions, and other compilers have similar 95/83 modes.

     _________________________________________________________________


5: Organizations that deal with Ada and Ada issues


5.1: Ada Joint Program Office (AJPO)

   The AJPO is part of the Department of Defense; it facilitates the
   implementation of the DoD's Software Initiative (Ada) throughout the
   Services, and maintains the integrity of the Ada language. (The AJPO
   sponsors the AdaIC.)

   The address is:

Ada Joint Program Office
Defense Information Systems Agency
701 South Courthouse Road
Arlington, VA 22204-2199
703/604-4619 (autovon 664-4619)
fax: 703/685-7019

   The current Director and Deputy Directors are:

   Acting Director
          Donald Reifer

   Air Force Liaison
          Maj M. Dirk Rogers (rogersd@ajpo.sei.cmu.edu)

   Navy Deputy Liaison
          Joan McGarity (mcgarity@ajpo.sei.cmu.edu

   Army Deputy Liaison
          MAJ Charlotte Lee (leec@ajpo.sei.cmu.edu)

   DISA Liaison
          David Basel (baseld@ajpo.sei.cmu.edu)


5.2: Ada Information Clearinghouse (AdaIC)

   The Ada Information Clearinghouse (AdaIC) provides a full spectrum of
   information on Ada to anyone interested in finding out more about the
   programming language. IIT Research Institute operates the AdaIC for
   the Ada Joint Program Office (AJPO).

   The address is:

Ada Information Clearinghouse
P.O. Box 46593
Washington, DC 20050-6593
1-800-AdaIC-11 (232-4211), 703/685-1477; fax: 703/685-7019


   The AdaIC publishes a quarterly newsletter, which contains current
   news, Ada conference reports, announcements from the AJPO Director,
   and articles on projects using Ada. If you would like to receive a
   copy of the AdaIC newsletter, please call and request a subscription.
   There's no charge. The AdaIC also regularly updates and publishes more
   than 70 separate information flyers. Flyer topics include:
     * Ada Validated Compilers
     * Ada News and Current Events
     * Ada Usage
     * Ada 9X Project
     * On-line sources of Ada Information
     * Ada Bibliographies
     * Ada Compiler Validation and Evaluation
     * Resources for Ada Education and Training
     * Ada Software, Tools, and Interfaces
     * Ada Regulations, Policies, and Mandates
     * Ada Historical Information


   One of the most commonly requested flyers is the Validated Compilers
   List. This list, which is updated monthly, contains Ada compilers that
   have been validated by the AJPO. For the most current information on
   validated Ada compilers, contact the AdaIC.

   Practically all AdaIC flyers are available via anonymous FTP from
   their host, in directory ftp://sw-eng.falls-church.va.us/public


5.3: Association of Computing Machinery's Special Interest Group on Ada (ACM
SIGAda)

   SIGAda's bimonthly publication is Ada Letters.

   Price for non-members: $55 (Annual ACM membership dues, $82; students,
   $25).

   Otherwise it costs $20 per year to ACM members; $10 per year to ACM
   student members.

   The address is:

Association for Computing Machinery, Inc.
1515 Broadway
New York, NY 10036
212/869-7440

   SIGAda also has a number of committees and working groups on a variety
   of topics.


5.4: ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9, WG9 for short)

   This is a working group that deals with Ada within the International
   Standardization Organization. Within WG-9, are several Rapporteur
   (rap) groups:
     * ARG: Ada Rapporteur Group -- Comments and Interpretations
     * CRG: Character Rapporteur Group -- International Character Sets
     * IRG: Information Systems Rapporteur Group -- Decimal Arithmetic
     * NRG: Numerics Rapporteur Group -- NUMWG packages
     * RRG: Real-Time Rapporteur Group -- ExTRA
     * SRG: SQL Interfaces Rapporteur Group -- SAMeDL
     * URG: Uniformity Rapporteur Group -- Portability through Uniformity
     * XRG: Ada 9X Rapporteur Group


   Ada Rapporteur Group (ARG):
          This is the group responsible for evaluating comments on the
          Ada standard. Officially, the group is only developing a
          technical report addressing comments and questions concerning
          the ISO standard for Ada. (Arcane ISO rules prevent the ARG or
          WG9 from issuing "official" interpretations of a standard.) In
          practice, when a response to a comment is approved by WG9, the
          response is taken into account by the Ada Validation Office and
          affects the test suite. The documents containing comments on
          the standard and ARG responses are called "Ada Commentaries"
          and are given numbers of the form AI-ddddd/vv, where vv is a
          version number.

          Comments and questions about the Ada standard should be sent to
          ada-comment@ajpo.sei.cmu.edu, using the format specified in the
          Ada standard. You can receive e-mail notification of an update
          to a commentary (optionally including the text of the
          commentary) by sending a request to
          ada-comment@ajpo.sei.cmu.edu. Commentaries are generally
          updated only a few times each year. The text of all
          commentaries is available by anonymous FTP from the AJPO site
          in the account public/ada-comment. A detailed discussion of ARG
          procedures and the format of commentaries can be found in the
          ada-comment account in the file arg-procedures.doc. A
          reformatted copy of the Reference Manual that includes
          WG9-approved commentaries is available from Karl Nyberg
          (karl@grebyn.com).

   Uniformity Rapporteur Group (URG)
          Responsible for evaluating Uniformity Issues (UIs). UIs
          specify/recommend specific choices for the compiler
          implementor, where the language permits implementation freedom.
          The "canonical example" is UI-8, on integer types. This UI
          recommends that integers be at least 32 bits, and provides
          names for the other predefined integer types. The goal of the
          URG and the UI's is to further Ada portability by providing
          uniform implementations of implementation-dependent features
          commonly used by Ada applications.


     _________________________________________________________________


6: Tools


6.1: Is there an Ada-mode for Emacs?

   There are, in fact, 4 Ada modes for Emacs!
     * the most recent one, available by FTP, is in the file
       emacs-ada-mode-2.12.tar.gz in directory ftp://cs.nyu.edu/pub/gnat

       This is still work under development but it is already quite
       usable. The main features are:
          + TAB ---> indent (almost always correctly)
          + compile and parse the errors (with the cursor at the right
            line AND column)
          + highlight keywords and comments
          + create skeletons for all Ada constructs (both 83 and 9x)
          + goto next (previous) subprogram/package/task
          + goto beginning of syntactic construct
          + name completion (when it is a subprogram defined in the file)
          + untabify, remove trailing spaces automatically before saving
          + C-c TAB ---> format subprogram specs in GNAT style
          + and much more to come...
   The 2 main developers are Markus Heritsch (who works under the
       direction of Franco Gasperoni at ENST, Paris) and Rolf Ebert
       (Munich, Germany).

     * a simple ada-mode shipped as part of the emacs distribution (note:
       it seems it doesn't work correctly);

     * a more elaborate one from Steven D. Litvintchouk of Mitre Corp
       called electric-ada (available from?--NO INFORMATION); and

     * gnu-ada mode. Here is a small description of the features of this
       mode:

        Compile programs within emacs
                Run compiler as inferior of Emacs, and parse its error
                messages. NOTE: I believe that this feature will only
                work with VADS, but it might have been tailored to work
                with other compilers.

        Ada dired
                It supplies a form of dired that helps manage the VADS
                environment, and it adds ADA vads commands into ada mode.
                Unlike a previous dired-ada implementation, this version
                uses the existing dired mode functions except where there
                is unresolvable conflict. Thus, this is more like a minor
                mode to dired. Very important because on actual version
                of emacs 19(beta), in fact lemacs (lucid emacs), dired
                has changed and we can no longer use gnu-ada mode :-(

        you can consult the Ada Language Reference Manual (*) during
                parsing error message.
                (*)You can get one in e.g. the Public Ada Library.

        smart indentation
                Tries hard to do all the indenting automatically.
                Emphasizes correct insertion of new code using smart
                templates.

        Smart template commands (bnf)
                This is essentially a bnf processor/language-sensitive
                editor. The next message will give you an ada bnf file
                that you can use within ada-mode to expand nonterminals.
                But you can roll your own grammars (e.g., your design
                grammar or an ADL) and put them in *.bnf files ... The
                BNF rule set is stored as a list of rules.

        debugging Ada programs within emacs
                A facility is provided for the simultaneous display of
                the source code in one window, while using a.db to step
                through a function in the other. A small arrow "=>" in
                the source window, indicates the current line.

        Move from procedure to procedure or package to package

        tags Ada

        and other things ...


   You can find the gnu-ada mode in where did it go? as well as in the
   PAL, under directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/swtools/emacs/adamode.


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 directory
   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 95 is available in file
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
       /grammar9x.y

   and a lex grammar for Ada 95 is available in file
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
       /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 directory
   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 versions 2.0.0, 1.1.1, and 1.1.0 are available from directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/work-grp/asiswg

     _________________________________________________________________


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, or it can be
   downloaded. It is available by anonymous FTP on the AdaIC host in
   directory ftp://sw-eng.falls-church.va.us/public/AdaIC/tools/bindings


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 directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/tools/bindings/POSIX


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 at the AdaIC.
FTP Location:

ftp://sw-eng.falls-church.va.us/public/AdaIC/tools/bindings/xwinbind.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 Thomson Software Products, ex-Alsys):
bindings to Xlib/Xt/Motif (TeleWindows)
(Note that bindings to Xview are included with the TeleSoft Sun4 compiler)
contact: marketng@alsys.com

X-based GUI (Graphical User Interface) Builders:
Objective (OIS): Screen Machine
contact: Phil Carrasco (703/264-1900)

TeleSoft (now part of Thomson Software Products, ex-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://sw-eng.falls-church.va.us/public/AdaIC/ed-train/adabooks.txt


An Annotated Sampling of Ada-Oriented Textbooks

November 1994

Michael B. Feldman
Department of Electrical Engineering and Computer Science
The George Washington University
Washington, DC 20052
(202) 994-5919 (voice)
(202) 994-0227 (fax)
mfeldman@seas.gwu.edu

(with contributions from Jack Beidler, Duane Jarc, Suzanne Pawlan Levy,
Mathew Lodge, and David Weller, as indicated by their initials following
their reviews)

As chair of the SIGAda Education Working Group, and a denizen of the
Internet newsgroups, I am often asked to give references for "Ada
textbooks." This list responds to these many queries.

The textbooks 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 books in Group 2 use Ada as their language of
discourse but are "subject-oriented:" data structures, file structures,
compilers, comparative languages. The remaining 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. Maciunas, and M.J. Oudshoorn.
Ada: A First Course in Programming and Software Engineering.
Addison-Wesley, 1992. ISBN 0-201-50992-X
  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.

Dale, N., D. Weems, and J. McCormick.
Programming and Problem Solving with Ada. D. C. Heath, 1994.
ISBN 0-669-29360-1
  This book is inspired by Dale and Weems' very successful Introduction to
Pascal and Structured Design, but it is not simply an Ada version.  Ada's
more advanced capabilities such as exceptions, packages and generic units
are included in this text.  In addition, more than half of the material is
completely new, and the order of the topics is signficantly different.  It
also has more of a software engineering focus than the Pascal version. The
only Ada topics not included in this text are tasks and access types.
Procedures and packages are introduced early.  Each chapter includes case
studies, testing and debugging hints and excellent non-programming exercises
and programming problems.  The text comes with a program disk containing all
the programs given in the book.  In addition, a validated Meridian Ada
compiler with complete documentation is available at low cost to students
using this book. (S. P. L.)

DeLillo, N. J.
A First Course in Computer Science with Ada.
Irwin, 1993. (ISBN 0-256-12538-4)
  This book is a first in the Ada literature: a version comes with an
Ada compiler, the AETech-IntegrAda version of Janus Ada. Author, publisher,
and software supplier are to be commended for their courage in this.
The book itself covers all the usual CS1 topics. In my opinion, the order
of presentation is a bit too Pascal-like, with functions and procedures
introduced in Chapter 5 (of 15) and no sign of packages (other than Text_IO)
until Chapter 10. Unconstrained arrays and generics are, however, done
nicely for this level, and Chapter 13 is entirely devoted to a single
nontrivial case study, a statistical package. I wish there were more
complete programs in the early chapters, to put the (otherwise good)
discussion of control and data structures in better context.

Feldman, M.B., and E.B. Koffman.
Ada: Problem Solving and Program Design.
Addison-Wesley, 1992. ISBN 0-201-53364-2
  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. ISBN 0-8053-7070-6
  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 minimal coverage
of unconstrained array types; generics are introduced at the halfway
point to explain Text_IO, then continued only in 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. (2nd ed.)
Addison Wesley, 1994. ISBN 0-201-62448-6
  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. A very interesting addition is the new
Chapter 14, in which OOP in both Ada 83 and Ada 94 is discussed.
This is an especially lucid explanation of OOP in Ada, and makes a real
contribution because it doesn't just discuss tagged types as a "feature"
of Ada 94, but shows very nicely what is possible in Ada 83 (instead
of just what is _not_ possible), and shows how Ada 94 adds functionality.

Smith, James F., and Thomas S. Frank
Introduction to Programming Concepts and Methods with Ada
McGraw-Hill, Inc., 1994 ISBN 0-07-911725-2
  This is a well written and easy to use text.  The book takes a spiraled
approach to CS 1.  The authors do an excellent job integrating Ada into
the book.  They take a very direct approach, especially with an early
introduction to the package concept and the traditional Text_IO package.
Faculty who have taught CS 1 with Pascal should like this book. Instead
of making a big fanfare about Ada features, they simply introduce them
as good support for software development concepts. The authors have
carefully chosen the Ada topics they decided to cover in this book in
order to strike a balance between staying true to the CS 1 course while
presenting enough of the programming language. If you teach CS 1 you
might at least want to get a copy of this text just to look at two
chapters, Chapter 7 and Chapter 14. Seven covers program correctness and
run-time event (exception handling) and fourteen is a beautiful presentation
and example of generic packaging.  Both presentations are done in an
appropriate manner for CS 1. (J. B.)

Volper, D., and M. Katz. Introduction to Programming Using Ada.
Prentice-Hall, 1990. ISBN 0-13-493529-2
  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) ISBN 0-13-711821-X
  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.
Addison Wesley, 1993. ISBN 0-201-52673-5
(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 1995.

Fischer, C., and R. LeBlanc. Crafting a Compiler.
Benjamin Cummings, 1988. (compilers) ISBN 0-8053-3201-4
  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.

Hillam, Bruce. Introduction to Abstract Data Types Using Ada.
Prentice-Hall, 1994. (data structures) ISBN 0-13-045949-6
This is a very readable treatment of data structures presented using Ada
that makes good use of Ada features such as generics.  It contain many
complete programs and packages.  Unfortunately, obvious syntax errors make
it apparent that not all examples have been compiled.  The level of
presentation is somewhere between an elementary, CS 2, data structures
course and an advanced, CS 7, course.  A subset of first eleven chapters
provide the appropriate topics for a CS 2 course, but not the pedagogy
necessary for a course at that level. (D. J.)

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) ISBN 0-8053-0440-1
  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 (2nd ed.).
Benjamin Cummings, 1993. (comparative languages) ISBN 0-8053-7132-X
  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. I include this work in an "Ada list" because I like its
nice, impartial coverage of Ada. 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, 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.

Stubbs, D.F., and N.W. Webre.
Data Structures with Abstract Data Types and Ada.
PWS-Kent, 1993. (advanced data structures) ISBN 0-534-14448-9
  This work updates and adapts to Ada the material in the authors'
successful data structures texts using Pascal and Modula-2. It is good for a
"heavy" CS2, i.e., one on the theoretical side, or a "light" CS7, i.e. it
is not as theory-oriented as the Weiss work below. More Ada, especially
regarding advanced types, is taught here than in Weiss. Especially
interesting about all the books from these authors is that they have
matched their "big O" performance prediction with tables and graphs
showing actual performance measurements.


Weiss, M.A.
Data Structures and Algorithms in Ada.
Benjamin/Cummings, 1993. ISBN 0-8053-9055-3
  I think this book reaches its intended market -- data structures courses
(CS7) -- rather well with Ada. There's a good mixture of theory and practice
(ADT design, for example), and coverage of new topics like amortized algorithm
analysis and splay trees. A book at this level should not pay too much
attention to teaching a language; rather it should make good use of its
language of discourse. The Ada version does not attempt to teach either the
language or Ada-style software engineering, but shows good understanding of
the language, uses generic packages quite well and focuses on the theory of
algorithms, as a book at this level should. This is the first, and so far
the only, text in Ada for this course.

Group 3: A Selection of Other Ada-Related Books

Barnes, J.
Programming in Ada. (4th edition)
Addison-Wesley, 1994. ISBN 0-201-62407-9
  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. This just-out fourth edition has a 100-page summary of
Ada 95.

Booch, G.
Software Components with Ada.
Benjamin Cummings, 1987. ISBN 0-8053-0610-2
  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. and D. Bryan, with C. Petersen
Software Engineering with Ada. (3rd edition)
Benjamin/Cummings 1994. ISBN 0-8053-0613-7
  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. The third edition contains an appendix describing Ada 9X.

Bryan, D.L., and G.O. Mendal. Exploring Ada, Volumes 1.and 2.
Prentice-Hall, 1990 and 1992 respectively. ISBN 0-13-295684 (vol. 1);
ISBN 0-13-297227-1 (vol. 2)
  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, Alan, and Geoff Davies.
Concurrent Programming.
Addison-Wesley, 1993, ISBN 0-201-54417-2
  Solid book covering all aspects of writing concurrent software. Uses
a version of Pascal called FC-Pascal (available for free through the
Internet). The FC means "Functionally Concurrent". It has constructs
that are similar to Ada 95, and this is by no accident -- the authors
frequently point out that the implementations in FC-Pascal are taken
from Ada 95's Tasks and Protected Types. Covers lots of low-level problems
by gradually building up from simple examples. Highly recommended for a
Concurrent Programming class. Exercises and Further readings are provided
at the end of each chapter. (D.W.)

Burns, Alan and Wellings, Andy
Real Time Systems and their Programming Languages
Addison-Wesley 1990. (ISBN 0-201-17529-0)
  This is an excellent and unique book. Basic concepts and terminology are
explained before moving on to explain the major aspects of real time design.
"Real world" examples are presented in Ada, Modula-2 and occam 2, though
Ada is clearly the authors' language of choice and gets the most coverage.
Topics covered include reliability and fault tolerance, concurrency,
synchronisation, scheduling, message passing, atomic transactions, resource
control, distributed systems and low-level device control. Efficiency is not
neglected, and Ada support here is particularly strong with detail on the
CIFO package. Several case studies are also presented. The only failing of
the book is that it needs updating to cover Ada 9x and its real-time annex,
Modula-3 etc. However, the basic concepts that the authors convey so clearly
are independent of implementation language. (M. L.)

Cohen, N. Ada as a Second Language.
McGraw Hill, 1986. ISBN 0-07-011589-3
  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. An anxiously-awaited 2nd edition
covering Ada 95 is in the pipeline.

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. ISBN 0-13-004334-6
  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. ISBN 0-929306-08-2
  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.

Naiditch, D.J.  Rendezvous with Ada
New York: John Wiley and Sons, 1989. ISBN 0-471-61654-0
  A nice, relatively quick survey of the language for experienced
programmers. Warning: there are not too many complete programs here, at
least at the beginning. But overall, this is a good choice, less overwhelming
than, say, Cohen, for "learning the language" quickly.

Nyberg, K. (editor) The Annotated Ada Reference Manual.(3rd edition)
Grebyn Corporation, 1993.
  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
as prepared by the Ada Rapporteur Group of Working Group 9 of the
International Organization for Standardization (ISO) and approved by
that organization. These commentaries, interleaved with the LRM text,
are promulgated by the Ada Joint Program Office, the American National
Standards Institute (ANSI) agent for Ada, in the Ada Compiler Validation
Suite (ACVC). They are thus binding upon compiler developers. I recommend
this book as an essential volume in the library of every serious Ada
enthusiast.

Watt, D.A., B.A. Wichmann, and W. Findlay. Ada Language and Methodology.
Prentice-Hall, 1987. ISBN 0-13-004078-9
  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, packages and
even procedures 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.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Ada FAQ: comp.lang.ada (part 2 of 3)
@ 1996-04-22  0:00 Magnus Kempe
  0 siblings, 0 replies; 7+ messages in thread
From: Magnus Kempe @ 1996-04-22  0:00 UTC (permalink / raw)


Archive-name: computer-lang/Ada/comp-lang-ada/part2
Comp-lang-ada-archive-name: comp-lang-ada/part2
Posting-Frequency: monthly
Last-modified: 15 April 1996
Last-posted: 9 March 1996

                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

    Recent changes to this FAQ are listed in the first section after the table
    of contents. This document is under explicit copyright.

This is part 2 of a 3-part posting; part 1 contains the table of contents.
Part 3 begins with question 7; it should be the next posting in this thread.
Part 1 should be the previous posting in this thread.


4: Compilers

4.1: Is there a list of validated Ada compilers?

   Yes, indeed, there is. The latest list can be retrieved by anonymous
   FTP. For Ada 83, it is in
   ftp://sw-eng.falls-church.va.us/public/AdaIC/compilers/83val/83vcl.txt
   (if the list is updated during the month, the previous one is
   replaced).

   And there is also a (non-empty!) list of validated Ada 95 compilers at
   ftp://sw-eng.falls-church.va.us/public/AdaIC/compilers/95val/95vcl.txt


4.2: Is there a free Ada compiler (or interpreter)?

   There ARE indeed free Ada systems, and there is even choice: Ada/Ed
   for Ada 83, and AVLAda9X and GNAT for Ada 95. A complete list is
   available at
   http://lglwww.epfl.ch/Ada/Resources/Compilers/Free_Ada.html

   (Strictly speaking these are free to distribute but NOT
   "public-domain". They are "free"--under copyright conditions known as
   "GNU Copyleft". In short: there is no warranty, and you are allowed to
   copy, modify, and distribute them; but you can't charge anyone for the
   software itself, and if the software (necessarily including source
   code) is further distributed, it must be done under the same
   conditions--i.e. copyable, with sources and modifications, available
   to everyone else, etc.)


    4.2.1: GNAT, The GNU NYU Ada Translator -- An Ada 95 Compiler

   GNAT is a compiler for Ada 95 that accepts Ada 95 source code and
   generates executable (machine) code (GNAT is a compiler and does not,
   repeat: DOES NOT, generate C code). It is based on the Free Software
   Foundation (FSF)'s gcc, a portable compilation system for a variety of
   languages. GNAT generates relatively good code, and is expected to
   improve further as its developers transition from developing initial
   functionality to optimizing it. GNAT supports tasking for many
   computer platforms, but it does NOT support tasking on MS-DOS at this
   time. For tasking with GNAT and a PC platform, consider using other
   operating systems such as Linux or OS/2 (while we're at it, if you use
   DOS, consider using a real operating system :-).

   GNAT is available from the New York University host, in directory
   ftp://cs.nyu.edu/pub/gnat. There are versions for UNIX-based systems
   (Sun, DEC, IBM, Next, ...), and versions for DOS, OS/2, and NT 386/486
   systems. Usually the latest version is made available for both Sun
   SPARC (SunOS 4.1) and OS/2 systems.

   It is also available in the Public Ada Library (PAL -- formerly the
   Ada Software Repository), under directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/gnat (Internet
   address: 128.252.135.4). A mirror site of the PAL also carries GNAT,
   directory: ftp://ftp.cdrom.com/pub/languages/ada/compiler/gnat.

   You can also get a copy from the AdaIC Bulletin Board. But this is a
   dial-up operation (703/614-0215), and since the files sizes are large,
   connect times may be lengthy. The bulletin board is best used as a
   back-up source for those who don't have Internet/FTP access.

      General

   (excerpted from "Free Source Code for GNAT 9X Compiler to be Available
   on Internet", by Robert Dewar and Edmond Schonberg, New York
   University, Ada Information Clearinghouse Newsletter August 1993)

   The Computer Science Department of the Courant Institute of
   Mathematical Sciences at New York University received a contract from
   the Ada 9X Project Office, under the direction of Christine M.
   Anderson, to develop a GNU/Ada system. The work was co-sponsored by
   ARPA and the Ada Joint Program Office.

   The final delivery was a full Ada 95 implementation with as much of
   the core language and annexes implemented as possible.

   Here is the official GNAT e-mail address:

   report@gnat.com
          This address is to be used specifically to report problems with
          the currently available version of the GNAT system. Please be
          as specific as possible in reporting problems.


      OS/2 Version

   The executables and sources for the OS/2 version of GNAT are split and
   compressed into two files, each of which can fit on one 3.5-inch
   high-density diskette. Although it is possible to install GNAT on an
   OS/2 machine on FAT (MS-DOS-compatble) partition, such an installation
   will not be fully functional. In fact, GNAT does not support
   installations on FAT partitions. You will need about 8.5 MB of free
   disk space after you have copied the appropriate files to your hard
   drive. About half of this amount is taken up by the source code.

   In case you want to modify and re-compile GNAT, you will need about 24
   MB of free disk space after you have installed GNAT for OS/2 and
   copied the necessary source files to your hard drive.

      Ports

   Several ports of GNAT have been produced by volunteers for a number of
   additional platforms (e.g. SPARCStations Solaris 2.1, i386/i486 Linux,
   DECstation (MIPS chip) Ultrix, DOS, SCO Unix). Users should allow time
   for the volunteers to catch up with the new releases.

   Note: The DOS version requires installation of DJGPP, DJ Delorie's
   port of GCC, GNU loader (ld), and GNU assembler (as) to DOS. DJGPP
   also includes the GO32 memory extender, which works with both VCPI and
   DPMI standards, which allows working in a Microsoft Window. There is
   information on DJGPP stored together with GNAT.


    4.2.2: Ada/Ed -- An Interpreter for Ada 83

   Ada/Ed is available for PCs, Unix-based machines, Amiga, and Atari
   systems. The Ada/Ed interpreter for Ada 83 is available from the New
   York University host, in directory ftp://cs.nyu.edu/pub/adaed
   (Internet address 128.122.140.24). There you will find a version for
   UNIX-based machines, and a version for 386/486 DOS machines.

   Ada/Ed is a translator-interpreter for Ada. It is intended as a
   teaching tool, and does not have the capacity, performance, or
   robustness of commercial Ada compilers. Ada/Ed was developed at New
   York University, as part of a long-range project in language
   definition and software prototyping. The project produced the first
   validated translator for Ada, in the form of an executable definition
   of the language written in SETL. The SETL system served as design
   document and prototype for the C version.

   Ada/Ed was last validated under version 1.7 of the ACVC tests.
   Therefore it is not currently a validated Ada system, and users can
   expect to find small discrepancies between Ada/Ed and currently
   validated compilers.

   Apart from the 100-odd tests of ACVC 1.11 that Ada/Ed currently fails,
   the major deficiency of the system is that, being an interpreter, it
   does not implement most representation clauses, and thus does not
   support systems programming close to the machine level.


    4.2.3: GW-Ada/Ed -- a souped-up version of Ada/Ed for 386/486 DOS and
    Macintosh machines

   GW-Ada/Ed is available from the PAL, by anonymous FTP. The files are
   located in subdirectories "dos" and "mac" of directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/adaed/gwu

   This project was sponsored by The George Washington University, and in
   part by the United States Advanced Research Projects Agency (ARPA).

   This distribution contains the executables for GWAda, which consists
   of the NYU Ada/Ed translator/interpreter system together with an
   integrated editor developed by Prof. Arthur Vargas Lopes of the
   Pontifical University at Porto Alegre, Brazil. Lopes began his work on
   GWAda while he was a doctoral student at The George Washington
   University. There is also in the DOS version a very nice extended
   runtime facility, with interesting kinds of source tracing.

   GWAda is being freely distributed at no charge. In the near future the
   developers will make the source code available under the GNU General
   Public License. Source code is not being provided because the system
   is still in the developmental stage. Source code for Ada/Ed itself is
   available from NYU (see above) and from PAL (see questions 9.1 and
   9.3).

   Note that under DOS you do not have to use the GWAda integrated
   environment, but can execute the various parts of NYU Ada/Ed from the
   DOS command line, as described in the NYU instructions.

   System requirements:
     * IBM PC Compatible, 386 or 486, running MS-DOS or PC-DOS, with at
       least 3.6 MB available extended memory, and at least 5 MB free
       hard-disk space.

     * any Mac, System 7, with at least 2.5 MB of RAM, and around 10 MB
       free hard-disk space. Note that the new version is PowerPC native
       and blindingly fast (8-20 times faster than the 1.1 release).


4.3: What cheap (<500$) Ada compilers are available?

   What follows is absolutely *not* exhaustive, but inexpensive
   compilers are available, and some vendors offer educational discounts
   or free programs for educational sites. Among those offering
   educational discounts are DDC-I, Encore, Harris, IBM, Irvine Compiler,
   OC Systems, Rational, R.R., Tartan, and Thomson Software Products
   (ex-Alsys).

   OC Systems: OC Systems will distribute PowerAda free to educational
   institutions wishing to use the product for teaching purposes. Contact
   by email info@ocsystems.com

   Rational: Rational provides free software (Rational Apex) to
   accredited educational institutions, including military academies, in
   the United States and Canada. This is under its Software Engineering
   for Educational Development (SEED) program. To receive information on
   the program, send your contact information via e-mail to
   SEED_Info@Rational.com

   Rational also offers OpenAda for $99. (Rational Software Corporation,
   2800 San Tomas Expressway, Santa Clara, CA 95051-0951; tel:
   1-800-RAT-1212)

   R.R. Software: R.R.'s Janus/Ada Professional Development System --
   80386 MS-DOS -- regularly goes for $500. (R.R. Software, P.O. Box
   1512, Madison, WI 53701; contact: Randall Brukardt 608/251-3133;
   e-mail: rbrukardt@bix.com)

   Thomson Software Products (US pricing only): FirstAda for 286 DOS is
   $595. It will run on 286 and higher, and will generate applications
   for any x86 PC. Comes with a full toolset. Thomson Software Products
   does run specials on it periodically. Call Pat Michalowski at
   619/457-2700 for more info.

   Thomson Software Products offers the same compilation system for $144
   to qualified educational institutions under its LEAP program. The
   program also offers substantial educational discounts on other Thomson
   Software Products products, as well as site license arrangements.
   Contact Kathy Ruggiero at 617/270-0030 for more info.


4.4: Is there an Ada compiler for common machine X/common operating system Y?

   There are hundreds of Ada compilers available on the market. Some
   answers for Frequently Asked Compilers are listed below. If your
   specific question is not answered here, check the comprehensive list
   of validated Ada compilers (see 4.1).


    4.4.1: For the Macintosh

   It depends on whether you want a compiler for serious development or
   just a learning tool. The free GW-Ada/Ed-Mac (see question 4.2.3) is
   the latter; it works on all Mac architectures. GW-Ada is a nice
   learning tool with an easy-to-use IDE, but it generates interpreted
   virtual code, not Mac apps.

   Other than that there is the Rational (ex-Meridian) OpenAda. OpenAda
   is an Ada 83 compiler with a Toolbox binding and MPW 3.2, but Rational
   has dropped it and is not going to upgrade it to Ada 95. It has one
   limitation for large programs: Packages which contain more than 32K
   bytes of data will compile, but not link. It works with System 7, and
   has been reported both as working and not-working on PowerPCs (maybe
   due to a problem with Inits). It can be ordered from D.C. Heath (price
   Mac version 12 disks plus documentation (35630-1) PC versions Five 3
   1/2" disks plus documentation (35629-8) Nine 5 1/4" disks plus
   documentation (34139-8)

   A GNAT for Macintosh is in the works.


    4.4.2: Native compilers for OS/2

   There are several good fully validated compilers. E.g. Thomson
   Software Products (ex-Alsys) has one, and has a partial Ada 95
   compiler for Windows; RR Software specializes in the Intel x86
   architecture (AETECH repackages and distributes their compilers as
   IntegrAda) -- and they advertise a partial Ada 95 compiler. GNAT is
   available for OS/2.


4.5: How can I contact Ada compiler vendors?

   Here is a non-exhaustive list (possibly out-of-date, for the moment)
   of email and phone contacts for questions and/or sales.

Active Engineering Technologies, Inc.
  WWW http://www.pcada.com/pcada/
  sales
    email: ada_info@pcada.com
    Tel: (619) 414-9001
    Fax: (619) 414-9192

Ada Core Technologies (ACT)
  WWW http://www.gnat.com/
  questions
    email: support@gnat.com
    Tel: (212) 620-7300
    Fax: (212) 807-0162

AETECH, Inc.: see Active Engineering Technologies

Alsys: see Thomson Software Products

Convex
  WWW http://www.convex.com/
  questions
    allison@convex.com (Brian Allison)
    Tel: (214) 497-4346

Cray
  WWW http://www.cray.com/
  questions
    det@cray.com (Dave Thersleff)
    Tel: (612) 683-5701
  sales
    svc@cray.com (Sylvia Crain)
    Tel: (505) 988-2468

DEC
  WWW http://www.digital.com/home.html

DDC-I
  WWW http://www.dknet.dk/ddci/
  sales
    sale@ddci.dk
    Tel: (602) 275-7172
    Tel: +45 45 87 11 44

Green Hills Software Inc.
  WWW http://ghs.com/ghs.html
  questions
    support@ghs.com
  sales
    eric@ghs.com (Eric Schacherer)
    Tel: (805) 965-6044

Harris
  WWW http://www.harris.com/
  questions
    jeffh@ssd.csd.harris.com (Jeff Hollensen)

IBM: see OC Systems Inc.

Intermetrics
  WWW http://www.inmet.com/
  questions
    ryer@inmet.inmet.com (Mike Ryer)

Irvine Compiler Corp (ICC)
  questions
    info@irvine.com

Meridian: see Rational Software Corporation

OC Systems Inc.
  WWW http://ocsystems.com/
  questions
    Email: info@ocsystems.com
  sales
    Tel: (703) 359-8160
    Fax: (703) 359-8161

Rational Software Corporation
  WWW http://www.rational.com/
  sales
    product_info@rational.com
    Tel: (408) 496-3600 or (800) RAT-1212

R.R. Software
  sales
    Tel: (800) Pc-Ada-4u or (800) 722-3248
    rBrukardt@bix.com (Randy Brukardt)

Tartan
  questions
    customer-support@tartan.com
    Tel: (412) 856-3600 (ext 150)
  sales
    info@tartan.com
    Tel: (800) 856-5255 or (412) 856-3600

TeleSoft: see Thomson Software Products

Thomson Software Products (ex-Alsys)
  WWW http://www.thomsoft.com/
  questions
    adasupport@thomsoft.com
  sales
    marketing@thomsoft.com
    Tel: (619) 457-2700
         (800) 833-0042 (ActivAda only)

Verdix: see Rational Software Corporation


   Note: The AdaIC's Validated Compiler List (see 4.1) now contains
   addresses, usually including e-mail, for compiler-vendor points of
   contact.


4.6: Are Ada 95 compilers compatible with Ada 83?

   Yes, absolutely. Ada 95 is very close to upwards compatible with Ada
   83, so you will find that an Ada 95 compiler is in practice
   "compatible" with the Ada 83 compiler you have used or are using. The
   compatibility really depends on what kind of code you have written, so
   one should understand what has evolved, what was considered broken and
   is now fixed, as well as what is new. There are two excellent
   documents that will help immensely in that respect:
     * Changes to Ada -- 1987 to 1995, in a Postscript 362KB file:
       ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
           /v6.0/chg83.ps
       also available in a text-only 207KB file:
       ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
           /v6.0/chg83.doc

     * Ada 9X Compatibility Guide, by Bill Taylor, in directory
       ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/compat-guide

   Furthermore, GNAT has a -gnat83 switch which enforces most of the Ada
   83 restrictions, and other compilers have similar 95/83 modes.

     _________________________________________________________________


5: Organizations that deal with Ada and Ada issues


5.1: Ada Joint Program Office (AJPO)

   The AJPO is part of the Department of Defense; it facilitates the
   implementation of the DoD's Software Initiative (Ada) throughout the
   Services, and maintains the integrity of the Ada language. The AJPO
   sponsors the AdaIC (see below).

   The address is:

AJPO
CODE JEKS
5600 Columbia Pike
Falls-church, VA 22041

phone: (703) 681-2459
email: ajpo@sw-eng.falls-church.va.us

   The current staff are:

   Chief
          Dr. Charles B. ("Chuck") Engle, Jr. --
          engle1c@sw-eng.falls-church.va.us

   Acting AJPO Program Manager
          Ms. Joan McGarity -- mcgarity@sw-eng.falls-church.va.us

   Contracts Liaison
          Mr. Gary Shupe -- shupeg@sw-eng.falls-church.va.us


5.2: Ada Information Clearinghouse (AdaIC)

   The Ada Information Clearinghouse (AdaIC) provides a full spectrum of
   information on Ada to anyone interested in finding out more about the
   programming language. IIT Research Institute operates the AdaIC for
   the Ada Joint Program Office (AJPO).

   The address is:

Ada Information Clearinghouse
P.O. Box 1866
Falls Church, VA 22041

phone: (703) 681-2466
fax:   (703) 681-2869
or
(800) Adaic 11 (232-4211)

email: adainfo@sw-eng.falls-church.va.us
WWW:   http://sw-eng.falls-church.va.us


   The AdaIC publishes a quarterly newsletter, which contains current
   news, Ada conference reports, announcements from the AJPO Director,
   and articles on projects using Ada. If you would like to receive a
   copy of the AdaIC newsletter, call and request a subscription. There
   is no charge. The AdaIC also regularly updates and publishes more than
   70 separate information flyers. Flyer topics include:
     * Ada Validated Compilers
     * Ada News and Current Events
     * Ada Usage
     * Ada 9X Project
     * On-line sources of Ada Information
     * Ada Bibliographies
     * Ada Compiler Validation and Evaluation
     * Resources for Ada Education and Training
     * Ada Software, Tools, and Interfaces
     * Ada Regulations, Policies, and Mandates
     * Ada Historical Information


   One of the most commonly requested flyers is the Validated Compilers
   List. This list, which is updated monthly, contains Ada compilers that
   have been validated by the AJPO. For the most current information on
   validated Ada compilers, contact the AdaIC.

   Practically all AdaIC flyers are available via anonymous FTP from
   their host, in directory ftp://sw-eng.falls-church.va.us/public


5.3: Association for Computing Machinery's Special Interest Group on Ada (ACM
SIGAda)

   SIGAda's bimonthly publication is Ada Letters.

   Price for non-members: $55 (Annual ACM membership dues, $82; students,
   $25).

   Otherwise it costs $20 per year to ACM members; $10 per year to ACM
   student members.

   The address is:

Association for Computing Machinery, Inc.
1515 Broadway
New York, NY 10036
212/869-7440

   SIGAda also has a number of committees and working groups on a variety
   of topics.


5.4: ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9, WG9 for short)

   This is a working group that deals with Ada within the International
   Standardization Organization. For more information, you can find
   online information about WG9 at
   http://lglwww.epfl.ch/Ada/Ammo/Associations/WG9.html

   There are several Rapporteur (rap) groups with WG9:
     * ARG: Ada Rapporteur Group -- Comments and Interpretations
     * CRG: Character Rapporteur Group -- International Character Sets
     * IRG: Information Systems Rapporteur Group -- Decimal Arithmetic
     * NRG: Numerics Rapporteur Group -- NUMWG packages
     * RRG: Real-Time Rapporteur Group -- ExTRA
     * SRG: SQL Interfaces Rapporteur Group -- SAMeDL
     * URG: Uniformity Rapporteur Group -- Portability through Uniformity
     * XRG: Ada 9X Rapporteur Group


   Ada Rapporteur Group (ARG):
          This is the group responsible for evaluating comments on the
          Ada standard. Officially, the group is only developing a
          technical report addressing comments and questions concerning
          the ISO standard for Ada. (Arcane ISO rules prevent the ARG or
          WG9 from issuing "official" interpretations of a standard.) In
          practice, when a response to a comment is approved by WG9, the
          response is taken into account by the Ada Validation Office and
          affects the test suite. The documents containing comments on
          the standard and ARG responses are called "Ada Commentaries"
          and are given numbers of the form AI-ddddd/vv, where vv is a
          version number.

          Comments and questions about the Ada standard should be sent to
          ada-comment@sw-eng.falls-church.va.us, using the format
          specified in the Ada standard. You can receive e-mail
          notification of an update to a commentary (optionally including
          the text of the commentary) by sending a request to
          ada-comment@sw-eng.falls-church.va.us. Commentaries are
          generally updated only a few times each year. The text of all
          commentaries is available by anonymous FTP from the AJPO site
          in the account public/ada-comment. A detailed discussion of ARG
          procedures and the format of commentaries can be found in the
          ada-comment account in the file arg-procedures.doc. A
          reformatted copy of the Reference Manual that includes
          WG9-approved commentaries used to be available from Karl Nyberg
          (karl@grebyn.com), but note that distribution of the Ada 83
          AARM has been transferred by Grebyn Corporation to the Ada
          Resource Association (3.1.1).

   Uniformity Rapporteur Group (URG)
          Responsible for evaluating Uniformity Issues (UIs). UIs
          specify/recommend specific choices for the compiler
          implementor, where the language permits implementation freedom.
          The "canonical example" is UI-8, on integer types. This UI
          recommends that integers be at least 32 bits, and provides
          names for the other predefined integer types. The goal of the
          URG and the UI's is to further Ada portability by providing
          uniform implementations of implementation-dependent features
          commonly used by Ada applications.


     _________________________________________________________________

6: Tools

6.1: Is there an Ada-mode for Emacs?

   There are 3 Ada modes for Emacs:
     * the most recent and powerful one is available by FTP in the file
       emacs-ada-mode-2.12.tar.gz in directory ftp://cs.nyu.edu/pub/gnat

       This is still work under development but it is already quite
       usable. The main features are:
          + compile and parse the errors (with the cursor at the right
            line AND column)
          + highlight keywords and comments
          + create skeletons for all Ada constructs (both 83 and 9x)
          + goto next (previous) subprogram/package/task
          + goto beginning of syntactic construct
          + name completion (works across file boundaries, if the Xref
            output from gnatf is available)
          + TAB ---> indent (almost always correctly)
          + untabify, remove trailing spaces automatically before saving
          + C-c C-f ---> format subprogram specs in GNAT style
          + and much more to come...
   The 2 main developers are Markus Heritsch (who works under the
       direction of Franco Gasperoni at ENST, Paris) and Rolf Ebert
       (Munich, Germany).

     * electric-ada, by Steven D. Litvintchouk of Mitre Corp (available
       from?--NO INFORMATION); and

     * gnu-ada mode. Here is a small description of the features of this
       mode:

        Compile programs within emacs
                Run compiler as inferior of Emacs, and parse its error
                messages. NOTE: I believe that this feature will only
                work with VADS, but it might have been tailored to work
                with other compilers.

        Ada dired
                It supplies a form of dired that helps manage the VADS
                environment, and it adds ADA vads commands into ada mode.
                Unlike a previous dired-ada implementation, this version
                uses the existing dired mode functions except where there
                is unresolvable conflict. Thus, this is more like a minor
                mode to dired. Very important because on actual version
                of emacs 19(beta), in fact lemacs (lucid emacs), dired
                has changed and we can no longer use gnu-ada mode :-(

        you can consult the Ada Language Reference Manual (*) during
                parsing error message.
                (*)You can get one in e.g. the Public Ada Library.

        smart indentation
                Tries hard to do all the indenting automatically.
                Emphasizes correct insertion of new code using smart
                templates.

        Smart template commands (bnf)
                This is essentially a bnf processor/language-sensitive
                editor. The next message will give you an ada bnf file
                that you can use within ada-mode to expand nonterminals.
                But you can roll your own grammars (e.g., your design
                grammar or an ADL) and put them in *.bnf files ... The
                BNF rule set is stored as a list of rules.

        debugging Ada programs within emacs
                A facility is provided for the simultaneous display of
                the source code in one window, while using a.db to step
                through a function in the other. A small arrow "=>" in
                the source window, indicates the current line.

        Move from procedure to procedure or package to package

        tags Ada

        and other things ...


   You can find the gnu-ada mode in where did it go? as well as in the
   PAL, under directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/swtools/emacs/adamode.


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 directory
   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 95 is available in file
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat/grammar9x.y

   and a lex grammar for Ada 95 is available in file
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat/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 directory
   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 Ada
   compilation environment. Thus it is envisioned that tool makers should
   be able to create ASIS clients--shielded and free from the
   implementation details of each Ada compiler vendor's proprietary
   compilation environment and intermediate representation(s).

   ASIS Version 1.1.1 is the last version of the ASIS83 (Ada�83) de facto
   industry standard; it was finalized, together with the corresponding
   test suite for ASIS implementations, in June 1994.

   The current version of ASIS 95 is ASIS 2.0.E (November 1995). As
   errors, misunderstandings, and clarifications are discovered, the ASIS
   Working Group will release new edited versions of the specification.

   For more information, there is an ASIS WWW server at
   http://info.acm.org/sigada/WG/asiswg/asiswg.html

   ASIS versions are available in directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/work-grp/asiswg




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Ada FAQ: comp.lang.ada (part 2 of 3)
@ 1996-05-24  0:00 Magnus Kempe
  0 siblings, 0 replies; 7+ messages in thread
From: Magnus Kempe @ 1996-05-24  0:00 UTC (permalink / raw)



Archive-name: computer-lang/Ada/comp-lang-ada/part2
Comp-lang-ada-archive-name: comp-lang-ada/part2
Posting-Frequency: monthly
Last-modified: 24 May 1996
Last-posted: 22 April 1996

                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

    Recent changes to this FAQ are listed in the first section after the table
    of contents. This document is under explicit copyright.

This is part 2 of a 3-part posting; part 1 contains the table of contents.
Part 3 begins with question 7; it should be the next posting in this thread.
Part 1 should be the previous posting in this thread.


4: Compilers

4.1: Is there a list of validated Ada compilers?

   Yes, indeed, there is. The latest list can be retrieved by anonymous
   FTP. For Ada 83, it is in
   ftp://sw-eng.falls-church.va.us/public/AdaIC/compilers/83val/83vcl.txt
   (if the list is updated during the month, the previous one is
   replaced).

   And there is also a (non-empty!) list of validated Ada 95 compilers at
   ftp://sw-eng.falls-church.va.us/public/AdaIC/compilers/95val/95vcl.txt


4.2: Is there a free Ada compiler (or interpreter)?

   There ARE indeed free Ada systems, and there is even choice: Ada/Ed
   for Ada 83, and AVLAda9X and GNAT for Ada 95. A complete list is
   available at
   http://lglwww.epfl.ch/Ada/Resources/Compilers/Free_Ada.html

   (Strictly speaking these are free to distribute but NOT
   "public-domain". They are "free"--under copyright conditions known as
   "GNU Copyleft". In short: there is no warranty, and you are allowed to
   copy, modify, and distribute them; but you can't charge anyone for the
   software itself, and if the software (necessarily including source
   code) is further distributed, it must be done under the same
   conditions--i.e. copyable, with sources and modifications, available
   to everyone else, etc.)


    4.2.1: GNAT, The GNU NYU Ada Translator -- An Ada 95 Compiler

   GNAT is a compiler for Ada 95 that accepts Ada 95 source code and
   generates executable (machine) code (GNAT is a compiler and does not,
   repeat: DOES NOT, generate C code). It is based on the Free Software
   Foundation (FSF)'s gcc, a portable compilation system for a variety of
   languages. GNAT generates relatively good code, and is expected to
   improve further as its developers transition from developing initial
   functionality to optimizing it. GNAT supports tasking for many
   computer platforms, but it does NOT support tasking on MS-DOS at this
   time. For tasking with GNAT and a PC platform, consider using other
   operating systems such as Linux or OS/2 (while we're at it, if you use
   DOS, consider using a real operating system :-).

   GNAT is available from the New York University host, in directory
   ftp://cs.nyu.edu/pub/gnat. There are versions for UNIX-based systems
   (Sun, DEC, IBM, Next, ...), and versions for DOS, OS/2, and NT 386/486
   systems. Usually the latest version is made available for both Sun
   SPARC (SunOS 4.1) and OS/2 systems.

   It is also available in the Public Ada Library (PAL -- formerly the
   Ada Software Repository), under directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/gnat (Internet
   address: 128.252.135.4). A mirror site of the PAL also carries GNAT,
   directory: ftp://ftp.cdrom.com/pub/languages/ada/compiler/gnat.

   You can also get a copy from the AdaIC Bulletin Board. But this is a
   dial-up operation (703/614-0215), and since the files sizes are large,
   connect times may be lengthy. The bulletin board is best used as a
   back-up source for those who don't have Internet/FTP access.

      General

   (excerpted from "Free Source Code for GNAT 9X Compiler to be Available
   on Internet", by Robert Dewar and Edmond Schonberg, New York
   University, Ada Information Clearinghouse Newsletter August 1993)

   The Computer Science Department of the Courant Institute of
   Mathematical Sciences at New York University received a contract from
   the Ada 9X Project Office, under the direction of Christine M.
   Anderson, to develop a GNU/Ada system. The work was co-sponsored by
   ARPA and the Ada Joint Program Office.

   The final delivery was a full Ada 95 implementation with as much of
   the core language and annexes implemented as possible.

   Here is the official GNAT e-mail address:

   report@gnat.com
          This address is to be used specifically to report problems with
          the currently available version of the GNAT system. Please be
          as specific as possible in reporting problems.


      OS/2 Version

   The executables and sources for the OS/2 version of GNAT are split and
   compressed into two files, each of which can fit on one 3.5-inch
   high-density diskette. Although it is possible to install GNAT on an
   OS/2 machine on FAT (MS-DOS-compatble) partition, such an installation
   will not be fully functional. In fact, GNAT does not support
   installations on FAT partitions. You will need about 8.5 MB of free
   disk space after you have copied the appropriate files to your hard
   drive. About half of this amount is taken up by the source code.

   In case you want to modify and re-compile GNAT, you will need about 24
   MB of free disk space after you have installed GNAT for OS/2 and
   copied the necessary source files to your hard drive.

      Ports

   Several ports of GNAT have been produced by volunteers for a number of
   additional platforms (e.g. SPARCStations Solaris 2.1, i386/i486 Linux,
   DECstation (MIPS chip) Ultrix, DOS, SCO Unix). Users should allow time
   for the volunteers to catch up with the new releases.

   Note: The DOS version requires installation of DJGPP, DJ Delorie's
   port of GCC, GNU loader (ld), and GNU assembler (as) to DOS. DJGPP
   also includes the GO32 memory extender, which works with both VCPI and
   DPMI standards, which allows working in a Microsoft Window. There is
   information on DJGPP stored together with GNAT.


    4.2.2: Ada/Ed -- An Interpreter for Ada 83

   Ada/Ed is available for PCs, Unix-based machines, Amiga, and Atari
   systems. The Ada/Ed interpreter for Ada 83 is available from the New
   York University host, in directory ftp://cs.nyu.edu/pub/adaed
   (Internet address 128.122.140.24). There you will find a version for
   UNIX-based machines, and a version for 386/486 DOS machines.

   Ada/Ed is a translator-interpreter for Ada. It is intended as a
   teaching tool, and does not have the capacity, performance, or
   robustness of commercial Ada compilers. Ada/Ed was developed at New
   York University, as part of a long-range project in language
   definition and software prototyping. The project produced the first
   validated translator for Ada, in the form of an executable definition
   of the language written in SETL. The SETL system served as design
   document and prototype for the C version.

   Ada/Ed was last validated under version 1.7 of the ACVC tests.
   Therefore it is not currently a validated Ada system, and users can
   expect to find small discrepancies between Ada/Ed and currently
   validated compilers.

   Apart from the 100-odd tests of ACVC 1.11 that Ada/Ed currently fails,
   the major deficiency of the system is that, being an interpreter, it
   does not implement most representation clauses, and thus does not
   support systems programming close to the machine level.


    4.2.3: GW-Ada/Ed -- a souped-up version of Ada/Ed for 386/486 DOS and
    Macintosh machines

   GW-Ada/Ed is available from the PAL, by anonymous FTP. The files are
   located in subdirectories "dos" and "mac" of directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/adaed/gwu

   This project was sponsored by The George Washington University, and in
   part by the United States Advanced Research Projects Agency (ARPA).

   This distribution contains the executables for GWAda, which consists
   of the NYU Ada/Ed translator/interpreter system together with an
   integrated editor developed by Prof. Arthur Vargas Lopes of the
   Pontifical University at Porto Alegre, Brazil. Lopes began his work on
   GWAda while he was a doctoral student at The George Washington
   University. There is also in the DOS version a very nice extended
   runtime facility, with interesting kinds of source tracing.

   GWAda is being freely distributed at no charge. In the near future the
   developers will make the source code available under the GNU General
   Public License. Source code is not being provided because the system
   is still in the developmental stage. Source code for Ada/Ed itself is
   available from NYU (see above) and from PAL (see questions 9.1 and
   9.3).

   Note that under DOS you do not have to use the GWAda integrated
   environment, but can execute the various parts of NYU Ada/Ed from the
   DOS command line, as described in the NYU instructions.

   System requirements:
     * IBM PC Compatible, 386 or 486, running MS-DOS or PC-DOS, with at
       least 3.6 MB available extended memory, and at least 5 MB free
       hard-disk space.

     * any Mac, System 7, with at least 2.5 MB of RAM, and around 10 MB
       free hard-disk space. Note that the new version is PowerPC native
       and blindingly fast (8-20 times faster than the 1.1 release).


4.3: What cheap (<500$) Ada compilers are available?

   What follows is absolutely *not* exhaustive, but inexpensive
   compilers are available, and some vendors offer educational discounts
   or free programs for educational sites. Among those offering
   educational discounts are DDC-I, Encore, Harris, IBM, Irvine Compiler,
   OC Systems, Rational, R.R., Tartan, and Thomson Software Products
   (ex-Alsys).

   OC Systems: OC Systems will distribute PowerAda free to educational
   institutions wishing to use the product for teaching purposes. Contact
   by email info@ocsystems.com

   Rational: Rational provides free software (Rational Apex) to
   accredited educational institutions, including military academies, in
   the United States and Canada. This is under its Software Engineering
   for Educational Development (SEED) program. To receive information on
   the program, send your contact information via e-mail to
   SEED_Info@Rational.com

   Rational also offers OpenAda for $99. (Rational Software Corporation,
   2800 San Tomas Expressway, Santa Clara, CA 95051-0951; tel:
   1-800-RAT-1212)

   R.R. Software: R.R.'s Janus/Ada Professional Development System --
   80386 MS-DOS -- regularly goes for $500. (R.R. Software, P.O. Box
   1512, Madison, WI 53701; contact: Randall Brukardt 608/251-3133;
   e-mail: rbrukardt@bix.com)

   Thomson Software Products (US pricing only): FirstAda for 286 DOS is
   $595. It will run on 286 and higher, and will generate applications
   for any x86 PC. Comes with a full toolset. Thomson Software Products
   does run specials on it periodically. Call Pat Michalowski at
   619/457-2700 for more info.

   Thomson Software Products offers the same compilation system for $144
   to qualified educational institutions under its LEAP program. The
   program also offers substantial educational discounts on other Thomson
   Software Products products, as well as site license arrangements.
   Contact Kathy Ruggiero at 617/270-0030 for more info.


4.4: Is there an Ada compiler for common machine X/common operating system Y?

   There are hundreds of Ada compilers available on the market. Some
   answers for Frequently Asked Compilers are listed below. If your
   specific question is not answered here, check the comprehensive list
   of validated Ada compilers (see 4.1).


    4.4.1: For the Macintosh

   It depends on whether you want a compiler for serious development or
   just a learning tool. The free GW-Ada/Ed-Mac (see question 4.2.3) is
   the latter; it works on all Mac architectures. GW-Ada is a nice
   learning tool with an easy-to-use IDE, but it generates interpreted
   virtual code, not Mac apps.

   Other than that there is the Rational (ex-Meridian) OpenAda. OpenAda
   is an Ada 83 compiler with a Toolbox binding and MPW 3.2, but Rational
   has dropped it and is not going to upgrade it to Ada 95. It has one
   limitation for large programs: Packages which contain more than 32K
   bytes of data will compile, but not link. It works with System 7, and
   has been reported both as working and not-working on PowerPCs (maybe
   due to a problem with Inits). It can be ordered from D.C. Heath (price
   Mac version 12 disks plus documentation (35630-1) PC versions Five 3
   1/2" disks plus documentation (35629-8) Nine 5 1/4" disks plus
   documentation (34139-8)

   A GNAT for Macintosh is in the works.


    4.4.2: Native compilers for OS/2

   There are several good fully validated compilers. E.g. Thomson
   Software Products (ex-Alsys) has one, and has a partial Ada 95
   compiler for Windows; RR Software specializes in the Intel x86
   architecture (AETECH repackages and distributes their compilers as
   IntegrAda) -- and they advertise a partial Ada 95 compiler. GNAT is
   available for OS/2.


4.5: How can I contact Ada compiler vendors?

   Here is a non-exhaustive list (possibly out-of-date, for the moment)
   of email and phone contacts for questions and/or sales.

Active Engineering Technologies, Inc.
  WWW http://www.pcada.com/pcada/
  sales
    email: ada_info@pcada.com
    Tel: (619) 414-9001
    Fax: (619) 414-9192

Ada Core Technologies (ACT)
  WWW http://www.gnat.com/
  questions
    email: support@gnat.com
    Tel: (212) 620-7300
    Fax: (212) 807-0162

AETECH, Inc.: see Active Engineering Technologies

Alsys: see Thomson Software Products

Convex
  WWW http://www.convex.com/
  questions
    allison@convex.com (Brian Allison)
    Tel: (214) 497-4346

Cray
  WWW http://www.cray.com/
  questions
    det@cray.com (Dave Thersleff)
    Tel: (612) 683-5701
  sales
    svc@cray.com (Sylvia Crain)
    Tel: (505) 988-2468

DEC
  WWW http://www.digital.com/home.html

DDC-I
  WWW http://www.dknet.dk/ddci/
  sales
    sale@ddci.dk
    Tel: (602) 275-7172
    Tel: +45 45 87 11 44

Green Hills Software Inc.
  WWW http://ghs.com/ghs/html/ghs.html
  questions
    support@ghs.com
  sales
    eric@ghs.com (Eric Schacherer)
    Tel: (805) 965-6044

Harris Computer Systems Corporation
  WWW http://www.hcsc.com/
  questions
    jeffh@ssd.csd.harris.com (Jeff Hollensen)

IBM: see OC Systems Inc.

Intermetrics
  WWW http://www.inmet.com/
  questions
    ryer@inmet.inmet.com (Mike Ryer)

Irvine Compiler Corp (ICC)
  questions
    info@irvine.com

Meridian: see Rational Software Corporation

OC Systems Inc.
  WWW http://ocsystems.com/
  questions
    Email: info@ocsystems.com
  sales
    Tel: (703) 359-8160
    Fax: (703) 359-8161

Rational Software Corporation
  WWW http://www.rational.com/
  sales
    product_info@rational.com
    Tel: (408) 496-3600 or (800) RAT-1212

R.R. Software
  sales
    Tel: (800) Pc-Ada-4u or (800) 722-3248
    rBrukardt@bix.com (Randy Brukardt)

Tartan
  questions
    customer-support@tartan.com
    Tel: (412) 856-3600 (ext 150)
  sales
    info@tartan.com
    Tel: (800) 856-5255 or (412) 856-3600

TeleSoft: see Thomson Software Products

Thomson Software Products (ex-Alsys)
  WWW http://www.thomsoft.com/
  questions
    adasupport@thomsoft.com
  sales
    marketing@thomsoft.com
    Tel: (619) 457-2700
         (800) 833-0042 (ActivAda only)

Verdix: see Rational Software Corporation


   Note: The AdaIC's Validated Compiler List (see 4.1) now contains
   addresses, usually including e-mail, for compiler-vendor points of
   contact.


4.6: Are Ada 95 compilers compatible with Ada 83?

   Yes, absolutely. Ada 95 is very close to upwards compatible with Ada
   83, so you will find that an Ada 95 compiler is in practice
   "compatible" with the Ada 83 compiler you have used or are using. The
   compatibility really depends on what kind of code you have written, so
   one should understand what has evolved, what was considered broken and
   is now fixed, as well as what is new. There are two excellent
   documents that will help immensely in that respect:
     * Changes to Ada -- 1987 to 1995, in a Postscript 362KB file:
       ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
           /v6.0/chg83.ps
       also available in a text-only 207KB file:
       ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
           /v6.0/chg83.doc

     * Ada 9X Compatibility Guide, by Bill Taylor, in directory
       ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/compat-guide


   Furthermore, GNAT has a -gnat83 switch which enforces most of the Ada
   83 restrictions, and other compilers have similar 95/83 modes.

     _________________________________________________________________


5: Organizations that deal with Ada and Ada issues


5.1: Ada Joint Program Office (AJPO)

   The AJPO is part of the U.S. Department of Defense; it was created to
   facilitate the implementation of the DoD's Software Initiative (Ada)
   throughout the Services, and maintain the integrity of the Ada
   language. The AJPO sponsors the AdaIC (see below).

   NOTE: The AJPO is scheduled to shut down in 1997. Its functions will
   probably be transferred to other entities.

   The address is:

AJPO
CODE JEKS
5600 Columbia Pike
Falls-church, VA 22041

phone: (703) 681-2459
email: ajpo@sw-eng.falls-church.va.us

   The current staff are:

   Chief
          Dr. Charles B. ("Chuck") Engle, Jr. --
          engle1c@sw-eng.falls-church.va.us

   Acting AJPO Program Manager
          Ms. Joan McGarity -- mcgarity@sw-eng.falls-church.va.us

   Contracts Liaison
          Mr. Gary Shupe -- shupeg@sw-eng.falls-church.va.us


5.2: Ada Information Clearinghouse (AdaIC)

   The Ada Information Clearinghouse (AdaIC) provides a full spectrum of
   information on Ada to anyone interested in finding out more about the
   programming language. IIT Research Institute operates the AdaIC for
   the Ada Joint Program Office (AJPO).

   Their address is:

Ada Information Clearinghouse
P.O. Box 1866
Falls Church, VA 22041

phone: (703) 681-2466
fax:   (703) 681-2869
or
(800) Adaic 11 (232-4211)

email: adainfo@sw-eng.falls-church.va.us
WWW:   http://sw-eng.falls-church.va.us


   The AdaIC publishes a quarterly newsletter, which contains current
   news, Ada conference reports, announcements from the AJPO Director,
   and articles on projects using Ada. If you would like to receive a
   copy of the AdaIC newsletter, call and request a subscription. There
   is no charge. The AdaIC also regularly updates and publishes more than
   70 separate information flyers. Flyer topics include:
     * Ada Validated Compilers
     * Ada News and Current Events
     * Ada Usage
     * Ada 9X Project
     * On-line sources of Ada Information
     * Ada Bibliographies
     * Ada Compiler Validation and Evaluation
     * Resources for Ada Education and Training
     * Ada Software, Tools, and Interfaces
     * Ada Regulations, Policies, and Mandates
     * Ada Historical Information


   One of the most commonly requested flyers is the Validated Compilers
   List. This list, which is updated monthly, contains Ada compilers that
   have been validated by the AJPO. For the most current information on
   validated Ada compilers, contact the AdaIC.

   Practically all AdaIC flyers are available via anonymous FTP from
   their host, in directory ftp://sw-eng.falls-church.va.us/public


5.3: Association for Computing Machinery's Special Interest Group on Ada (ACM
SIGAda)

   SIGAda's bimonthly publication is Ada Letters.

   Price for non-members: $55 (Annual ACM membership dues, $82; students,
   $25).

   Otherwise it costs $20 per year to ACM members; $10 per year to ACM
   student members.

   The address is:

Association for Computing Machinery, Inc.
1515 Broadway
New York, NY 10036
212/869-7440

   SIGAda also has a number of committees and working groups on a variety
   of topics.


5.4: ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9, WG9 for short)

   This is a working group that deals with Ada within the International
   Standardization Organization. For more information, you can find
   online information about WG9 at
   http://lglwww.epfl.ch/Ada/Ammo/Associations/WG9.html

   There are several Rapporteur (rap) groups with WG9:
     * ARG: Ada Rapporteur Group -- Comments and Interpretations
     * CRG: Character Rapporteur Group -- International Character Sets
     * IRG: Information Systems Rapporteur Group -- Decimal Arithmetic
     * NRG: Numerics Rapporteur Group -- NUMWG packages
     * RRG: Real-Time Rapporteur Group -- ExTRA
     * SRG: SQL Interfaces Rapporteur Group -- SAMeDL
     * URG: Uniformity Rapporteur Group -- Portability through Uniformity
     * XRG: Ada 9X Rapporteur Group


   Ada Rapporteur Group (ARG):
          This is the group responsible for evaluating comments on the
          Ada standard. Officially, the group is only developing a
          technical report addressing comments and questions concerning
          the ISO standard for Ada. (Arcane ISO rules prevent the ARG or
          WG9 from issuing "official" interpretations of a standard.) In
          practice, when a response to a comment is approved by WG9, the
          response is taken into account by the Ada Validation Office and
          affects the test suite. The documents containing comments on
          the standard and ARG responses are called "Ada Commentaries"
          and are given numbers of the form AI-ddddd/vv, where vv is a
          version number.

          Comments and questions about the Ada standard should be sent to
          ada-comment@sw-eng.falls-church.va.us, using the format
          specified in the Ada standard. You can receive e-mail
          notification of an update to a commentary (optionally including
          the text of the commentary) by sending a request to
          ada-comment@sw-eng.falls-church.va.us. Commentaries are
          generally updated only a few times each year. The text of all
          commentaries is available by anonymous FTP from the AdaIC site
          in the account public/ada-comment. A detailed discussion of ARG
          procedures and the format of commentaries can be found in the
          ada-comment account in the file arg-procedures.doc. A
          reformatted copy of the Reference Manual that includes
          WG9-approved commentaries used to be available from Karl Nyberg
          (karl@grebyn.com), but note that distribution of the Ada 83
          AARM has been transferred by Grebyn Corporation to the Ada
          Resource Association (3.1.1).

   Uniformity Rapporteur Group (URG)
          Responsible for evaluating Uniformity Issues (UIs). UIs
          specify/recommend specific choices for the compiler
          implementor, where the language permits implementation freedom.
          The "canonical example" is UI-8, on integer types. This UI
          recommends that integers be at least 32 bits, and provides
          names for the other predefined integer types. The goal of the
          URG and the UI's is to further Ada portability by providing
          uniform implementations of implementation-dependent features
          commonly used by Ada applications.


     _________________________________________________________________

6: Tools

6.1: Is there an Ada-mode for Emacs?

   There are 3 Ada modes for Emacs:
     * the most recent and powerful one is available by FTP in the file
       emacs-ada-mode-2.12.tar.gz in directory ftp://cs.nyu.edu/pub/gnat

       This is still work under development but it is already quite
       usable. The main features are:
          + compile and parse the errors (with the cursor at the right
            line AND column)
          + highlight keywords and comments
          + create skeletons for all Ada constructs (both 83 and 9x)
          + goto next (previous) subprogram/package/task
          + goto beginning of syntactic construct
          + name completion (works across file boundaries, if the Xref
            output from gnatf is available)
          + TAB ---> indent (almost always correctly)
          + untabify, remove trailing spaces automatically before saving
          + C-c C-f ---> format subprogram specs in GNAT style
          + and much more to come...
   The 2 main developers are Markus Heritsch (who works under the
       direction of Franco Gasperoni at ENST, Paris) and Rolf Ebert
       (Munich, Germany).

     * electric-ada, by Steven D. Litvintchouk of Mitre Corp (available
       from?--NO INFORMATION); and

     * gnu-ada mode. Here is a small description of the features of this
       mode:

        Compile programs within emacs
                Run compiler as inferior of Emacs, and parse its error
                messages. NOTE: I believe that this feature will only
                work with VADS, but it might have been tailored to work
                with other compilers.

        Ada dired
                It supplies a form of dired that helps manage the VADS
                environment, and it adds ADA vads commands into ada mode.
                Unlike a previous dired-ada implementation, this version
                uses the existing dired mode functions except where there
                is unresolvable conflict. Thus, this is more like a minor
                mode to dired. Very important because on actual version
                of emacs 19(beta), in fact lemacs (lucid emacs), dired
                has changed and we can no longer use gnu-ada mode :-(

        you can consult the Ada Language Reference Manual (*) during
                parsing error message.
                (*)You can get one in e.g. the Public Ada Library.

        smart indentation
                Tries hard to do all the indenting automatically.
                Emphasizes correct insertion of new code using smart
                templates.

        Smart template commands (bnf)
                This is essentially a bnf processor/language-sensitive
                editor. The next message will give you an ada bnf file
                that you can use within ada-mode to expand nonterminals.
                But you can roll your own grammars (e.g., your design
                grammar or an ADL) and put them in *.bnf files ... The
                BNF rule set is stored as a list of rules.

        debugging Ada programs within emacs
                A facility is provided for the simultaneous display of
                the source code in one window, while using a.db to step
                through a function in the other. A small arrow "=>" in
                the source window, indicates the current line.

        Move from procedure to procedure or package to package

        tags Ada

        and other things ...


   You can find the gnu-ada mode in where did it go? as well as in the
   PAL, under directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/swtools/emacs/adamode.


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 directory
   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 95 is available in file
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat/grammar9x.y

   and a lex grammar for Ada 95 is available in file
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat/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 directory
   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 Ada
   compilation environment. Thus it is envisioned that tool makers should
   be able to create ASIS clients--shielded and free from the
   implementation details of each Ada compiler vendor's proprietary
   compilation environment and intermediate representation(s).

   ASIS Version 1.1.1 is the last version of the ASIS83 (Ada�83) de facto
   industry standard; it was finalized, together with the corresponding
   test suite for ASIS implementations, in June 1994.

   The current version of ASIS 95 is ASIS 2.0.E (November 1995). As
   errors, misunderstandings, and clarifications are discovered, the ASIS
   Working Group will release new edited versions of the specification.

   For more information, there is an ASIS WWW server at
   http://info.acm.org/sigada/WG/asiswg/asiswg.html

   ASIS versions are available in directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/work-grp/asiswg




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~1996-05-24  0:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-05-24  0:00 Ada FAQ: comp.lang.ada (part 2 of 3) Magnus Kempe
  -- strict thread matches above, loose matches on Subject: below --
1996-04-22  0:00 Magnus Kempe
1995-04-20  0:00 Magnus Kempe
1995-03-21 18:11 Magnus Kempe
1994-12-19 16:54 Magnus Kempe
1994-12-01 16:22 Magnus Kempe
1994-10-18 17:37 Magnus Kempe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox