comp.lang.ada
 help / color / mirror / Atom feed
* Ada FAQ: comp.lang.ada (part 2 of 2)
@ 1994-09-09 19:38 Magnus Kempe
  0 siblings, 0 replies; only message in thread
From: Magnus Kempe @ 1994-09-09 19:38 UTC (permalink / raw)


Archive-name: Ada/comp-lang-ada/part2
Posting-Frequency: monthly
Last-modified: 9 September 1994
Last-posted: 1 June 1994

                                 COMP.LANG.ADA
                       FREQUENTLY ASKED QUESTIONS (FAQ)

This is part 2 of a 2-part posting.  Part 2 begins with question 6.2.
Part 1 should be the previous posting in this thread.


6.2: Are there versions of lex and yacc that generate Ada code?

   The Arcadia project produced the tools aflex and ayacc, both written
   in Ada and producing Ada code. They can be found in
   ftp://liege.ics.uci.edu/pub/irus/ (Internet address: 128.195.1.5,
   128.195.13.1).
   
   
6.3: Where can I get a yacc/ayacc grammar to read Ada code?

   A yacc and lex grammar for Ada 83 is available via FTP from the
   comp.compiler archives at primost.cs.wisc.edu and via e-mail from the
   compilers server at compilers-server@iecc.cambridge.ma.us .
   
   A yacc grammar for Ada 9X is available in
   ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x/grammar9x.y
   
   and a lex grammar for Ada 9X is available in
   ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x/lexer9x.l.
   
   
6.4: What is Anna, and where can I get it?

   Anna is a language for formally specifying Ada programs. It extends
   Ada with various different kinds of specification constructs from ones
   as simple as assertions, to as complex as algebraic specifications. A
   whole lot of tools have been implemented for Anna, including:
    1. The standard DIANA extension packages, parsers, pretty-printers.
    2. Semantic checker (very similar to standard semantic checkers for
       programming languages).
    3. Specification analyzer -- this is a tool used to test a
       specification for correctness before a program based on the
       specification is written.
    4. Annotation transformer -- this transforms Anna specification
       constructs into checks on the Ada program that is developed based
       on the specification. This tool is currently in the process of
       being enhanced so that it can handle at least all the legal Ada
       programs in the ACVC test-suite.
    5. Runtime debugger -- The instrumented program output by the
       annotation transormer can be run with a special debugger that
       allows program debugging based on formal specifications.
       
   
   
   All tools have been developed in Ada and are therefore extremely
   portable. Anna has been ported to many platforms, details of which can
   be obtained from the person who handles Anna releases. You can send
   e-mail to anna-request@anna.stanford.edu for answers to such
   questions. Actually, there is also a mailing list --
   anna-users@anna.stanford.edu. Send e-mail to the earlier address if
   you want to get on this list.
   
   One could view Anna and its toolset as a *very* significant
   enhancement of assertions that are provided in languages such as C
   (using the assert statement). The enhancements are in the form of both
   (1) many more high level specification constructs; and (2) more
   sophisticated tool support.
   
   However, there are those who would not even wish to compare Anna with
   C assertions! :-)
   
   The Anna tools may be found in ftp://anna.stanford.edu/pub/anna.
   
   
6.5: What is DRAGOON, and where can I get it?

   DRAGOON is a language, implemented as an Ada preprocessor (i.e., it
   generates pure Ada). DRAGOON is truly object-oriented, including
   complete support for multiple inheritance. A very nice feature of
   DRAGOON not found in many OO languages is the concept of "behavioral"
   inheritance. This allows you to keep the concurrent behavior of object
   separated from the object class hierarchy.
   
   The book by Colin Atkinson, "Object-Oriented Reuse, Concurrency and
   Distribution: An Ada-Based Approach" (ACM Press, 1991, ISBN:
   0201565277), is very well written and describes the language
   succinctly and completely.
   
   For a copy of the preprocessor, contact:

Mr. Andrea Di Maio
TXT Ingegneria Informatica S.p.A.
Via Socrate, 41
20128 Milan, ITALY
phone: + 39-2-2700 1001

   
6.6: Where can I get language translators?

   The AdaIC maintains a Products and Tools Database on its bulletin
   board (703/614-0215), and one of the categories is translators. (The
   list of products should not be considered exhaustive; if you wish to
   suggest additions, please contact the AdaIC.) Besides access to the
   database via the bulletin board, you can also call the AdaIC
   (800-AdaIC-11 or 703/685-1477) and ask for a customized search.
   
    Should I?
    
   In addition to all the usual caveats, however, it should also be noted
   that translation itself is a controversial issue.
   
   When a project makes the transition to Ada from some other language,
   one question that arises is whether to translate older code into Ada.
   Among the immediate considerations are how much of the code can in
   fact be translated by a program intended for that purpose, versus how
   much will still require re-coding by hand. And will the translated
   code suffer a significant loss in speed of execution? Further, a
   project must consider whether the translated code will reflect sound
   software engineering and be readily understandable and modifiable. Or
   will the translated code be merely "Fortranized Ada" or "Cobolized
   Ada", or the like, possibly retaining limitations present in the
   earlier code? Portability is also a problem.
   
   The resolution of such issues will require an understanding of the
   earlier code, an appreciation of the similarities and differences
   between its language and Ada, and an evaluation of the translation
   program under consideration.
   
   
6.7: What is ASIS?

   The Ada Semantic Interface Specification is a layered
   vendor-independent open architecture. ASIS queries and services
   provide a consistent interface to information within the Ada Program
   Library created at compile time. Clients of ASIS are shielded and free
   from the implementation details of each Ada compiler vendor's
   proprietary library and intermediate representation.
   
   ASIS Version 1.1.0 is the latest version of the ASIS83 1.1 (Ada 83) de
   facto industry standard. It differs from the previous ASIS83 Version
   1.1 in errata, clarifications, and two new functions in
   Asis.Declarations (Implicit_Components and
   Implicit_Variant_Components).
   
   ASIS Version 2.0.0 is the Ada 9x version of ASIS, called ASIS9X. As
   errors, misunderstandings, and clarifications are discovered, the ASIS
   Working Group will release new edited versions of the specification.
   The latest working draft for ASIS is ASIS 1.1.0, dated July 1993.
   
   Your comments are welcome, if you wish to see replies to your
   comments, please join the e-mail discussion group (discussed below)
   first.
   
   
    6.7.1: How can I find out more about ASIS?
    
   Can I take part in its development? The following electronic mail
   forums now exist for the ASISWG.
   
   asiswg-technical@ajpo.sei.cmu.edu
          technical discussions
          
   asiswg@ajpo.sei.cmu.edu
          high-level non-technical discussions
          
   To have your email address added to these forums, send e-mail to:

asiswg-technical-request@ajpo.sei.cmu.edu
asiswg-request@ajpo.sei.cmu.edu

   Include your preferred e-mail address, name, telephone number, and
   surface mail address.
   
   
    6.7.2: How can I get hold of ASIS?
    
   ASIS 2.0.0, 1.1.1, and 1.1.0 (along with the earlier version 1.1) are
   available from ftp://ajpo.sei.cmu.edu/public/asis/.
   
   If you do not have Internet FTP access, the AJPO host provides
   mail-server capabilities. To get more information about the
   mail-server, send e-mail to "ftpmail@ajpo.sei.cmu.edu", and address
   your message as:

         To: ftpmail@ajpo.sei.cmu.edu
         Subject: help

   To get a copy of the /public/asis/README file, address your e-mail as:

         To: ftpmail@ajpo.sei.cmu.edu
         Subject: file-request asis/README

   To get a "directory" listing of /public/asis/v1.1.0, address your
   e-mail as:

         To: ftpmail@ajpo.sei.cmu.edu
         Subject: directory asis

   To get any of the various files, e.g.,
   /public/asis/v1.1.1/asis_1.1.1.asc.ps, address your e-mail as:

         To: ftpmail@ajpo.sei.cmu.edu
         Subject: file-request asis/v1.1.1/asis_1.1.1.asc.ps

   The filename pattern may include the "*" wildcard.
   
   Files have been compressed into .zip files. On Unix hosts, you can
   uncompress with unzip, and under DOS with PKUNZIP (at least version
   2.04).
   
     _________________________________________________________________
   
   
   
7: Bindings

   
7.1: General

   The AdaIC (see question 5.2, above) has a report on "Available Ada
   Bindings". It can be ordered in hardcopy as flyer T82, and it can be
   downloaded from the AdaIC Bulletin Board (703/604-4624) as
   bindings.txt. It is also available by anonymous FTP on the AJPO host
   in ftp://ajpo.sei.cmu.edu/public/dev-tool/bindings.txt.
   
   
7.2: POSIX/Ada

   
    7.2.1: What is the status of the POSIX/Ada work?
    
   The IEEE approved IEEE Standard 1003.5-1992 in June 1992. This is the
   Ada Binding to the facilities defined in ISO 9945-1:1989/IEEE
   1003.1-1990, the POSIX System Services.
   
   IEEE Standards Committee P1003.5 is now working on Ada bindings to
   IEEE draft standards 1003.4, Real-Time Extensions and 1003.4a, Threads
   Extensions. Current plans call for an IEEE ballot in October 1993,
   with IEEE approval in September 1995. For more information, contact
   the P1003.5 Chairman, Jim Lonjers (lonjers@vfl.paramax.com,
   805/987-9457).
   
   
   
    7.2.2: How can I get a copy of POSIX/Ada?
    
   You can buy a copy of the standard from the IEEE. The order number is
   "SH 15354", and the mailing address is "IEEE Service Center, 445 Hoes
   Lane, Piscataway, NJ 08855-1331". They will accept credit-card orders
   at 1-800/678-4333. The cost is $62.50 + $5.00 s/h ($43.75 + $4.00 s/h
   for IEEE Members).
   
   
   
    7.2.3: Is it available via FTP?
    
   Current IEEE policy prohibits electronic distribution of IEEE
   standards. Proceeds from the sale of IEEE standards help support the
   IEEE standards program. However, The POSIX P1003.5 committee has been
   able to work out an arrangement with the IEEE to make the POSIX/Ada
   package specifications available for distribution via e-mail and
   anonymous FTP from ftp://ajpo.sei.cmu.edu/public/dev-tool/POSIX/. The
   AJPO files are also mirrored at the PAL.
   
   
7.3: How do I interface X Window System with Ada?

   This question turns out to be pretty darn hard to answer easily.
   There are at least three variables that need to be filled:
    1. platform where you are going to be running.
    2. compiler you would like to use.
    3. level/flavor of X you would like to run (e.g., just need bindings
       to Xlib, want Openlook as opposed to Motif, etc).
       
   Once you fill all three of the above, then you can start to get
   answers. In order to keep the answer brief, companies that offer such
   products are simply listed, along with locations where free versions
   are available.
   
   Before giving you the list, a little history is in order. The first
   Xlib bindings that were publically available were done by SAIC for
   STARS. This implementation had many bugs, but it was there, and it was
   free. This version was eventually withdrawn from the STARS repository,
   and has now been replaced with a better one. In addition, SAIC has
   done an Xt implementation based on these Xlib bindings (also for
   STARS). NOTE: the above description may well be inaccurate,
   corrections are welcome.
   
   Now, for the list:

First off, there is a pretty complete list of available bindings
for X as well as other stuff at the AdaIC.
FTP Location:
ftp://ajpo.sei.cmu.edu/public/dev-tool/bindings.txt

Free versions:
STARS: bindings to Xlib and Xt.  Available on
source.asset.com.
Note: the ASSET host no longer takes anonymous FTP.  To
request an account, contact: info@source.asset.com

Non-free versions:
SERC: bindings to Xlib/Xt/Motif
contact: well!sercmail@apple.com (Scott Cleveland)

Verdix: bindings to Xlib/Xt/Motif
(Note that bindings to Xview are included with the SunAda Sun4 compiler)
contact: moskow@verdix.com (Paul Moskowitz)

ATC: bindings to Xlib/Xt/Motif
contact: ???

TeleSoft (now part of Alsys): bindings to Xlib/Xt/Motif
(TeleWindows)
(Note that bindings to Xview are included with the TeleSoft Sun4 compiler)
contact: philippe@telesoft.com

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

TeleSoft (now part of Alsys): TeleUSE
contact: philippe@telesoft.com

EVB Software Engineering, Inc. : GRAMMI
contact : info@evb.com
        or info_server@evb.com with subject "send grammi"

Sun Microsystems: DevGuide
contact: ???

SERC: UIL-to-Ada code generator
(not really a GUI-builder, but works with several builders to
generate Ada instead of other languages).
contact: well!sercmail@apple.com (Scott Cleveland)

   
   
     _________________________________________________________________
   
   
   
8: Is there a list of good Ada books?

   Just for a list of texts, etc. (no evaluations or recommendations),
   you might take a look at
   ftp://ajpo.sei.cmu.edu/public/ed-train/adabooks.txt.
   
   A real-time book:

      Real Time Systems and Their Programming Languages
      by A. Burns and A. Wellings
      Prentice-Hall
      The book uses Ada, Modula-2 and Occam2 as examples, though Ada
      is clearly the language of choice and gets more coverage than
      either of the other two.  IMHO, it's a good book -- a wide
      coverage of real-time issues with good examples in all the
      languages.  It covers Ada real-time excellently, including the
      use of CIFO etc.  Thoroughly recommended!

   
   Books for use in class (and others):

(from mfeldman@seas.gwu.edu (Michael B. Feldman))

      As co-chair of the SIGAda Education Committee, and a denizen of
      the Internet newsgroups, I am often asked to give references for
      "Ada textbooks."  This list responds to these many queries.  It
      is far from exhaustive, merely a selected list of 26 books being
      used successfully in undergraduate computer science courses.

      The six books in the Group 1 are written especially for students
      without programming experience, who are learning Ada as their
      first language.  Most of these can also cover at least part of a
      typical CS2-level course.  The seven books in Group 2 use Ada as
      their language of discourse but are "subject-oriented:" data
      structures, file structures, compilers, comparative languages.
      The thirteen books in Group 3 are either "Ada books" focusing on
      the language features or more general books that use Ada, at
      least in part, but do not fit obviously into a standard
      curriculum "pigeonhole."

      I invite you to add to the list.  Please write your annotated
      entry in the form I have used here and write or e-mail it to me.
      I will include it in my next version and credit you as a
      co-compiler of the list.

      Disclaimers: I wrote two of the texts listed here; I hope the
      annotations are impartial enough.  And any annotated
      bibliography is selective and opinionated.  Your mileage may
      vary.

      Group 1: Books Suitable for a First Course in Programming

      Bover, D.C.C., K.J. Maciuas, and M.J. Oudshoorn.
      Ada: A First Course in Programming and Software Engineering.
      Addison-Wesley, 1992.
      This work is, to our knowledge, the first Ada book to emerge
      from Australia, from a group of authors with much collective
      experience in teaching Ada to first-year students.  A number of
      interesting examples are presented, for example, an Othello
      game.  The book is full of gentle humor, a definite advantage in
      a world of dry and serious texts.  In the book's favor is the
      large number of complete programs.  On the other hand, it is
      rather "European" in its terseness; American teachers may miss
      the pedagogical apparatus and "hand-holding" typically found in
      today's CS1 books.  Generic units are hardly mentioned.

      Culwin, F.
      Ada: a Developmental Approach.
      Prentice-Hall, 1992.
      This work introduces Ada along with a good first-year approach
      to software development methodology.  Much attention is paid to
      program design, documentation, and testing.  Enough material is
      present in data structures and algorithm analysis is present to
      carry a CS2 course.  A drawback of the book is that the first
      third is quite "Pascal-like" in its presentation order:
      procedures, including nested ones, are presented rather early,
      and packages are deferred until nearly the middle of the book.
      This is certainly not a fatal flaw, but it will frustrate
      teachers wishing a more package-oriented presentation.  The
      programs and solutions are apparently available from the author.

      Feldman, M.B., and E.B. Koffman.
      Ada: Problem Solving and Program Design.
      Addison-Wesley, 1991.
      This work combines the successful material from Koffman's CS1
      pedagogy with a software-engineering-oriented Ada presentation
      order.  Packages are introduced early and emphasized heavily;
      chapters on abstract data types, unconstrained arrays, generics,
      recursion, and dynamic data structures appear later.  The last
      five chapters, combined with some language-independent algorithm
      theory, can serve as the basis of a CS2 course.  A diskette with
      all the fully-worked packages and examples (about 180) is
      included; the instructor's manual contains a diskette with
      project solutions.

      Savitch, W.J. and C.G. Petersen.
      Ada: an Introduction to the Art and Science of Programming.
      Benjamin/Cummings, 1992.
      This is a straightforward adaptation of the well-known Savitch
      Pascal books.  Ada is introduced in a Pascal-like order, with
      subtypes and packages introduced halfway through the book.  This
      is purely a CS1 book.  The final chapter covers dynamic data
      structures.  There is no coverage of unconstrained array types;
      generics are introduced at the halfway point to explain Text_IO,
      then dropped until the final chapter.  The authors intended this
      book to provide a painless transition to Ada for teachers of
      Pascal; one wishes they had taken advantage of the chance to
      show some of the interesting Ada concepts as well.  Program
      examples from the text are available on disk, but only as part
      of the instructor's manual; a solutions disk is available for a
      fee from the authors.

      Skansholm, J.
      Ada from the Beginning.
      Addison Wesley, 1988.
      This book was one of the first to use Ada with CS1-style
      pedagogy.  There are excellent sections on the idiosyncracies of
      interactive I/O (a problem in all languages), and a sufficient
      number of fully-worked examples to satisfy students.  Generics,
      linked lists and recursion are covered at the end; there is no
      tasking coverage, but one would not expect this at CS1-level.

      Volper, D., and M. Katz.
      Introduction to Programming Using Ada.
      Prentice-Hall, 1990.
      This book uses a heavily "spiraled" approach to Ada, and is
      designed for a 2-semester course, covering nearly all of Ada
      eventually.  There are lots of fully-coded examples, and good
      pedagogical sections on testing, coding style, etc.  If you like
      spiraling, you'll like this.  The down side is that you can't
      find all you need on a given subject in one place.  It's at the
      other end of the scale from the "Ada books" that follow the Ada
      Language Reference Manual (LRM) order.

      Group 2: Other Books Intended for Undergraduate Courses

      Ben-Ari, M.
      Principles of Concurrent and Distributed Programming.
      Prentice-Hall 1990.  (OS/concurrency)
      In my opinion, this is the best introduction to concurrency on
      the market.  Ada notation is used for everything, but the focus
      is on concurrency and not on Ada constructs per se.  I liked the
      CoPascal notation of the first edition better, but this book is
      still great.  A software disk is promised in the preface; I had
      to work quite hard to get it from the publisher, which finally
      had to express-ship it from England.  The software comes with a
      tiny Ada-ish interpreter, complete with Pascal source code,
      adapted from Wirth's Pascal/S via CoPascal.  There are also some
      real Ada programs, most of which I've tested and found correct
      and portable.

      Feldman, M.B.
      Data Structures with Ada.
      Prentice Hall, 1985 (now distributed by Addison-Wesley).
      (CS2/data structures)
      This book is a reasonable approximation to a modern CS2 book:
      "big O" analysis, linked lists, queues and stacks, graphs,
      trees, hash methods, and sorting, are all covered.  The Ada is a
      bit old-fashioned, especially the lack of generics; the book was
      published before compilers could handle generics.  The packages
      and other programs are available free from the author.  The book
      is currently under revision with Addison-Wesley and should
      appear in 1993.

      Fischer, C., and R. LeBlanc.
      Crafting a Compiler.
      Benjamin Cummings, 1988.  (compilers)
      This book uses Ada as its language of discourse and Ada/CS, a
      usefully large Ada subset, as the language being compiled.  If
      you can get the "plain Pascal" tool software by FTP from the
      authors, you'll have a good translator-writing toolset.  Skip
      the Turbo Pascal diskette version, which is missing too many
      pieces to be useful.  I've used the book since it came out with
      both undergrad and graduate compiler courses; it embodies a good
      blend of theory and "how it's really done" coding.  Students
      like it.  The authors have recently published a second version,
      which uses C as its coding language but retains Ada/CS as the
      language being compiled.

      Lomuto, N.
      Problem-Solving Methods with Examples in Ada.
      Prentice-Hall, 1987.  (algorithms)
      Inspired by Polya's classic How to Solve It, this book can make
      a nice addition to an Ada-oriented algorithms course.  It makes
      too many assumptions about students' programming background to
      use as a CS1 book, and doesn't teach enough Ada to be an "Ada
      book."  But it makes nice reading for students sophisticated
      enough to handle it.  I'd classify it as similar to Bentley's
      Programming Pearls.

      Miller, N.E. and C.G. Petersen.
      File Structures with Ada.
      Benjamin/Cummings, 1990.  (file structures)
      Designed for a straightforward ACM-curriculum file structures
      course, this book succeeds at what it does.  There are good
      discussions of ISAM and B-tree organizations.  The software can
      be purchased a low cost from the authors; it seems to
      approximate in Ada all those C-based file packages advertised in
      programmer-oriented trade publications.

      Schneider, G.M., and S.C. Bruell.
      Concepts in Data Structures and Software Development (with Ada
      Supplement by P. Texel).
      West, 1991.  (CS2/data structures)
      This work is not, strictly speaking, an Ada book; rather, it is
      a solid, language-independent approach to modern CS2.  The
      language of discourse in the book is a Pascal-like ADT language
      rather like Modula-2 in style; some examples are coded in legal
      Pascal.  The Ada supplement makes it usable in an Ada-based
      course, but the supplement is rather too terse (100 pages of
      large type) for my taste, and insufficiently well keyed to the
      book chapters.  The supplement's effectiveness would be greatly
      enhanced by full translations to Ada of a large number of the
      book's examples.

      Sebesta, R.W.
      Concepts of Programming Languages.
      Benjamin Cummings, 1989.  (comparative languages)
      If you've been around for a while, you might remember the late
      Mark Elson's 1975 book by the same title.  This is similar: a
      concept-by-concept presentation, with -- in each chapter --
      examples taken from several languages.  There is a nice
      impartial presentation of Ada along with the others.  I
      especially like the chapters on abstraction and exception
      handling.  The book covers -- comparatively, of course -- most
      of the lanuages you'd like to see, including C, Lisp, Smalltalk,
      etc., with nice historical chapters as well.  The book is
      readable; my students like it.  Our undergraduate and graduate
      courses both use it as a base text.

      Group 3: A Selection of Other Ada-Related Books

      Barnes, J.
      Programming in Ada.  (3rd edition)
      Addison Wesley, 1989.
      Barnes' work has been one of the most popular "Ada books."  Some
      students find it hard to see how the pieces fit together from
      Barnes' often fragmentary examples; it is difficult to find
      complete, fully-worked out, compilable programs.  A version is
      available with the entire Ada Language Reference Manual bound in
      as an appendix.

      Booch, G.
      Object-Oriented Design, with Applications.
      Benjamin Cummings, 1991.
      This is a good comparative introduction to the "object-oriented
      (OO)" concept.  The first half gives a balanced presentation of
      the issues in OO Design; the second half gives nontrivial
      examples from Ada, Smalltalk, C++, CLOS, and Object Pascal.  The
      author tries to sort out the difference between object-based
      (weak inheritance, like Ada) and object-oriented (like C++)
      languages.  My only real complaint is that Booch should have
      worked out at least some of his case studies using several
      different languages, to highlight the similarities and
      differences in the language structures.  As it is, each case
      study is done in only a single language.  The good news is that
      the book is remarkably free of the hyperbolic claims one
      sometimes finds in the OO literature.  I think this book could
      be used successfully in a second- level comparative languages
      course.

      Booch, G.
      Software Components with Ada.
      Benjamin Cummings, 1987.
      This work is an encyclopedic presentation of data structure
      packages from Booch's OOD point of view.  It is great for those
      who love taxonomies.  It's not for the faint-hearted, because
      the volume of material can be overwhelming.  It could serve as a
      text for an advanced data structures course, but it's thin in
      "big O" analysis and other algorithm-theory matters.  The book
      is keyed to the (purchasable) Booch Components.

      Booch, G.
      Software Engineering with Ada.  (2nd edition)
      Benjamin Cummings 1987.
      Another of the classical "Ada books."  Introduces Booch's OOD
      ideas.  Not for use to introduce Ada to novices, in my opinion;
      there are some nice fully-worked case studies but they begin too
      far into the book, after long sections on design, philosophy,
      and language elements.  The earlier chapters contain too much
      fragmentary code, a common flaw in books that follow the LRM
      order.

      Bryan, D.L., and G.O. Mendal.
      Exploring Ada, Volumes 1 and 2.
      Prentice-Hall, 1990 and 1992 respectively.
      This is an excellent study of some of the interesting nooks and
      crannies of Ada; it sometimes gets tricky and
      "language-lawyerly."  Volume 2 takes up tasking, generics,
      exceptions, derived types, scope and visibility; Volume 1 covers
      everything else.  The programs are short and narrowly focused on
      specific language issues.  If you like Bryan's "Dear Ada" column
      in Ada Letters, you'll like this book.  It is certainly not a
      book for beginners, but great fun for those who know Ada already
      and wish to explore.

      Burns, A.
      Concurrent Programming in Ada.
      Cambridge University Press, 1985.
      I used this book for years in my concurrency course.  It's
      roughly equivalent to Gehani's book, but its age is showing.
      Cambridge Press is not always easy to get books from, especially
      in the US.

      Cohen, N.
      Ada as a Second Language.
      McGraw Hill, 1986.
      This book is a quite comprehensive exploration of Ada which
      follows the LRM in its presentation order.  My graduate students
      like it because it is more detailed and complete than
      alternative texts.  It's an excellent book for students who know
      their languages and want to study all of Ada.  There are good
      discussions of "why's and wherefore's" and many long,
      fully-worked examples.

      Gauthier, M.
      Ada: Un Apprentissage (in French).
      Dunod, 1989.
      I found this an especially interesting, almost philosophical
      approach to Ada.  The first section presents Ada in the context
      of more general laguage principles: types, genericity,
      reusability.  The second section introduces testing and
      documentation concerns, as well as tasking; the third considers
      generics and variant records in the more general context of
      polymorphism.  For mature Ada students in the French-speaking
      world, and others who can follow technical French, this book can
      serve as a different slant on the conventional presentations of
      the language.  An English translation would be a real
      contribution to the Ada literature.

      Gehani, N.
      Ada: an Advanced Introduction (2nd edition).
      Prentice-Hall, 1989.
      I've always liked Gehani's literate writing style; he knows his
      languages and treats Ada in an interesting, mature, and balanced
      fashion.  This book comes with a diskette sealed in the back of
      the book, which is advantageous because the book has numerous
      nontrivial, fully-worked examples.

      Gehani, N.
      Ada: Concurrent Programming (2nd edition).
      Silicon Press, 1991.
      This is a less formal, more Ada-oriented presentation of
      concurrency than the Ben-Ari work.  I use both books in my
      concurrency course; its real strength is the large number of
      nontrivial, fully worked examples.  Gehani offers a nice
      critique of the tasking model from the point of view of an OS
      person.  The preface promises the availability of a software
      disk from the publisher.

      Nyberg, K.
      The Annotated Ada Reference Manual.  (2nd edition)
      Grebyn Corporation, 1991.
      This is the definitive work on Ada legalities, because it
      presents not only the full text of the LRM but also the official
      Ada Interpretations.  These commentaries, interleaved with the
      LRM text, have been approved and promulgated by the Ada Board
      and the various standards organizations, and are binding upon
      compiler developers.  I recommend this book as an essential
      volume in the library of every serious Ada enthusiast.

      Shumate, K.
      Understanding Ada.  (2nd edition)
      John Wiley, 1989.
      This would make a CS1 book if it included more overall pedagogy,
      independent of language constructs.  Otherwise it is a nice
      introduction to Ada in fairly gentle steps.  Lots of completely
      worked examples, right from the start.  Doesn't follow the LRM
      order, which is great.

      Watt, D.A., B.A. Wichmann, and W. Findlay.
      Ada Language and Methodology.
      Prentice-Hall, 1987.
      This work presents some interesting programming projects, and
      the coverage of design and testing--at the level of a first-year
      student--is quite good.  The first third of the book
      concentrates heavily on classical control and data structures,
      leaving exceptions and packages until the "programming in the
      large" material in the second third.  CS2 teachers will find too
      little concentration on algorithm analysis.  On the other hand,
      tasking and machine-dependent programming are covered.  Like the
      Shumate work, this book would make a suitable introduction to
      Ada for students with a semester or so of programming
      experience; it "jumps in" too quickly to satisfy the needs of
      neophytes and is not well-tailored to CS1 or CS2 needs.

   
   
     _________________________________________________________________
   
   
   
9: Resources

   
9.1: What FTP sites exist that contain information about Ada or Ada source?

   Public Ada Library (formerly Ada Software Repository)
          wuarchive.wustl.edu (Internet address: 128.252.135.4)
          
          Mirror: ftp.cdrom.com
          
          European mirror: ftp.cnam.fr (Internet address: 192.33.159.6)
          
   AJPO and AdaIC
          ajpo.sei.cmu.edu [mirrored by the PAL, listed above] (Internet
          address: 192.58.107.159)
          
   ASSET / STARS (Software Technology for Adaptable, Reliable Systems):
          source.asset.com (Internet Address: 192.131.125.10)
          
          Note: the ASSET host no longer takes anonymous FTP. To request
          a free account, contact: info@source.asset.com
          
   
9.2: The AJPO host has many Ada information files available for downloading by
anonymous FTP. But I don't have FTP service on the host where I have an
account. Is there any way I can get those files?

   The AJPO host, ajpo.sei.cmu.edu, will provide mail-server
   capabilities on an experimental basis. The available services provided
   by this automatic mail server are: services, Re, help, info, man,
   directory, and file-request. To request a service, send e-mail to
   "ftpmail@ajpo.sei.cmu.edu" and place its name in the Subject line of
   the mail message, followed by any needed parameters. The mail server
   will respond to your request with either the information you requested
   or an error message.
   
   The following are common examples on how to request services from the
   AJPO host mail server:

----------------------------------------------------------------
1) To get "help" --

To: ftpmail@ajpo.sei.cmu.edu
Subject: help

----------------------------------------------------------------

2) To get "man" pages of a particular service, such as
"directory" --

To: ftpmail@ajpo.sei.cmu.edu
Subject: man directory

This service takes as a parameter the name of a service, and
returns a manual page on that service.

----------------------------------------------------------------

3) To get a "directory" listing of the AJPO anonymous FTP area
(/public) --

To: ftpmail@ajpo.sei.cmu.edu
Subject: directory

The "directory" service takes as an optional parameter a file or
directory name, and returns the results of an "ls -l" on that
parameter.  For example, to get a listing of the
/public/compiler directory you would submit a message with the
Subject of:

Subject: directory compiler

The filename pattern may include wildcards as defined by the C
shell.  For example, to get a listing of the /public directories
beginning with "p" you would submit a message with the Subject
of:

Subject: directory p*

----------------------------------------------------------------

4) Use "file-request" to get /public/README file --

To: ftpmail@ajpo.sei.cmu.edu
Subject: file-request README

The "file-request" service takes as an optional parameter a
filename, and will return the contents of the file.  Text files
are returned verbatim, while binary files are encoded via the
Unix "uuencode" command.  Large files (greater than 1000 lines
long) will be split into multiple mail messages.  For example,
to get the file "README" in the /public/compiler directory you
would submit a message with the Subject of:

Subject: file-request compiler/README

----------------------------------------------------------------

Below is a sample response to a "help" request.

From: FTP Mail Server
Message-Id:
To: adainfo@ajpo.sei.cmu.edu
Subject: Re: help
In-Reply-To:
Content-Type: text/plain; charset=us-ascii

You have sent electronic mail to the Ada Joint Programs Office
automatic mail server.  This server is based on the
ServiceMail(tm) Toolkit from Enterprise Integration Technologies.

In general, you may request a service by placing its name in the
Subject line of a mail message, followed by any needed
parameters.  The mail server will respond to your request with
either the information you requested or an error message.

Here is a brief description of the available services:

services:     This service returns a list of the available
              services.

Re:           This service discards all messages with "Re:" in
              the subject line.  This is to prevent mail
              loops.

help:         This service returns this help message.

info:         This service returns this help message.

man:          This service takes as a parameter the name of a
              service, and returns a manual page on that
              service.

directory:    This service takes as an optional parameter a
              file or directory name, and returns the results
              of an "ls -l" on that parameter.  The root of
              the file structure is the AJPO anonymous FTP
              area.

file-request: This service takes as an optional parameter a
              file name, and will return the contents of the
              file.  The root of the file structure is the
              AJPO anonymous FTP area.  Text files are
              returned verbatim, while binary files are
              encoded via the Unix "uuencode" command.  Large
              files (greater than 1000 lines long) will be
              split into multiple mail messages.

Try 'man ' to get more information on a particular
service.  Please report bugs and other problems to
ftpmail-request@ajpo.sei.cmu.edu.

   
9.3: Reuse

   
    9.3.1: Are there any free, public-domain, or other general-access software
    repositories that contain Ada source code and information on reuse?
    
   There are a number of them, among them PAL (the Public Ada Library)
   and ELSA, described below. 
   
    Public Ada Library (formerly Ada Software Repository)
    
   Formerly the Ada Software Repository (ASR), the Public Ada Library
   (PAL) is a collection of programs, components, tools, general
   information, and educational materials; taking up hundreds of
   megabytes, it contains the source code for hundreds of distinct items
   as documented in its Master Index. Previously housed on the SIMTEL20
   host computer, it is now located at Washington University at St.
   Louis's host (wuarchive.wustl.edu -- which had been a mirror site for
   the ASR). The PAL is available for anonymous FTP:
   ftp://wuarchive.wustl.edu/pub/languages/ada/,
   
   The PAL has its own FAQ, a copy of which is stored in
   ftp://rtfm.mit.edu/pub/usenet-by-group/comp.lang.ada/, which stores
   the FAQ files posted to news.answers. 
   
    ELSA (previously AdaNet)
    
   ELSA is a component of the Repository Based Software Engineering
   (RBSE) Program sponsored by NASA's Technology Utilization Division. It
   is a public-domain reuse library containing value-added software from
   ASR (PAL), STARS, JPL, many educational institutions, and various
   other sources. The non-software information includes relevant research
   papers, standards, and technical reports.
   
   ELSA also distributes components on floppy disks. All of its services
   are free of charge.
   
   For more information, contact ELSA Client Service at 1-800/444-1458 or
   lacey@rbse.mountain.net.
   
   
    9.3.2: Is there some sort of database of re-usable Ada software
    components?
    
   You might want to join ACM SigAda (see question 5.3) in order to
   subscribe to Ada Letters. They publish a list of reusable components
   on an annual basis. The most recent list was in the March/April 1994
   issue (XIV.2). In fact, it is more of a list of lists, in that it
   mentions places that have sets of reusable components. The maintainer
   of the Ada Letters "master list" is levine@sun490.fdu.edu (also
   levine@vax.fdu.edu).
   
   To our knowledge this list is NOT available online. Check also the
   software repositories, mentioned above (question 9.3.1).
   
   
9.4: Where can I get Ada benchmark programs?

   In addition to the information below, you may also wish to look at
   the AdaIC flyer "How to Obtain Benchmark Performance Test Suites and
   Results", flyer C15, file benchmrk.txt on the AJPO host
   (ajpo.sei.cmu.edu). (For more on the AdaIC and downloading files, see
   questions 5.2, 9.1, and 9.2.)
   
    The Ada Evaluation System
    
   The Ada Evaluation System (AES) may be obtained from the British
   Standards Institute at the following address:

Software Product Services
Software Engineering Department
BSIQA
P.O. Box 375
Milton Keynes MK14 6LL
United Kingdom
Tel: 0908 220908
UUCP: sed@bsiqa.uucp
(Internet: bsiqa!sed@uunet.uu.net)

   As of February 1993, the current version is the DIY-MAPSE-01 version.
   It is available at a cost of 3,000 pounds sterling. BSI also offers a
   validation service at a cost of 24,000 pounds sterling. Principal
   documents are a User's Manual, a Reference Manual, and a Test
   Description Document.
   
   The Ada Evaluation System (AES) was merged with the Ada Compiler
   Evaluation Capability (ACEC) under a joint agreement between the
   Ministry of Defence of the United Kingdom and the Department of
   Defense of the United States that was signed in June of 1991. The
   merged product has been released as the Ada Compiler Evaluation System
   (ACES), which is the latest version of the ACEC.
   
    The Ada Compiler Evaluation Capability/Ada Compiler Evaluation System
    
   The Ada Compiler Evaluation System (ACES) may be obtained from:

Data and Analysis Center for Software (DACS)
Attn: Document Dataset Ordering
Kamen Sciences Corporation
P.O. Box 120
Utica, NY 13503-0120
Tel: 315/734-3696; Fax: 315/734-3699
Internet: dacs@kaman.com

   There are three documents: the User's Guide, the Reader's Guide, and
   the Version Description Document. The total cost for the software (on
   6250-bpi 9-track VMS Backup tape) and documentation is 100 US dollars.
   
   
   ACES is also available for downloading via anonymous FTP from the AJPO
   host computer, where it can be found in the /public/aces directory. It
   can also be downloaded from the Public Ada Library (PAL -- see
   question 9.3.1).
   
    Hartstone Benchmarks
    
   Electronic-mail requests for Hartstone should be sent to the following
   Internet address: hartstone-info@sei.cmu.edu .
   
   The reply message will contain full details of how to obtain source
   code and documentation by various means, including anonymous FTP.
   There is no charge for the Hartstone source code.
   
   For people without Internet access, the address to send requests to
   is:

REST Transition Services
Software Engineering Institute
Carnegie Mellon University
Pittsburgh, PA 15213-3890
Phone: 412/268-7787

   Hartstone source code may also be retrieved from the PIWG bulletin
   board. (See below.)
   
    The PIWG Benchmarks
    
   The ACM Performance Issues Working Group (PIWG) benchmarks may be
   obtained in one of three ways:
    1. Via anonymous FTP from the ajpo.sei.cmu.edu machine. Users should
       issue the command "ftp ajpo.sei.cmu.edu" and log in using the word
       "anonymous" as the login name and an identifying string (e.g., the
       user's e-mail address) as password. Change directory ("cd"
       command) to the "public/piwg/piwg_11_92" directory and use the FTP
       file-transfer commands to retrieve the files. The README file
       contains information about using the benchmarks.
       
    2. Via the PIWG bulletin board. Ideally, users should access this
       from a PC (rather than a dumb terminal) using a modem capable of
       sending and receiving at 1200 baud or higher. The number of the
       bulletin board is 412/268-7020. Once connected to the bulletin
       board, users will be able to navigate their way around the system
       using simple menus that the system provides. The point of contact
       for this service is Gene Rindels, 412/268-6728.

    3. Via a written request or telephone request to the following
       service:

PIWG Distribution
Software Engineering Institute
Carnegie Mellon University
Pittsburgh, PA 15213-3890
Tel: 412/268-7787

       As of February 1993, the current release of the PIWG suite is the one
       dated 11/92. There is no charge for the PIWG benchmarks.
       Documentation for the PIWG benchmarks consists principally of the
       READ.ME file distributed with the suite and comments in the
       individual test programs and command files. There is also
       additional information about the PIWG suite in the Winter 1990
       special edition of Ada Letters (Vol. X, No. 3, special edition on
       Ada Performance Issues).
       
   
9.5: Are there any dial-up BBS systems that deal with Ada?

   AdaIC BBS: (US) 703/604-4624 AUTOVON: 664-4624
   
   AdaNet BBS: This is a free service that maintains e-mail connections
   for people not on the Internet, an Ada source code repository, and a
   selection of other on-line Ada-related documents. It is sponsored by
   NASA. Call 800/444-1458 to register for access.
   
   (Caveat: Telephone numbers can change without notice. If we find out a
   number doesn't work, we'll note that, but leave the entry in until
   we're sure the service has actually been discontinued. If you are
   aware of a better number, please let us know.)

Naval Computer Telecommunications Command
Tel: 804/444-7841 (DSN 564-7841)

Air Force Software Technology Support Center (STSC) BBS
Tel: 801/774-6509
Baud: 2400, 1200, 300
Bits: 8
Parity: None
Stop Bits: 1

ACM SIGAda Performance Issues Working Group
PIWG Ada Benchmarks BBS
Tel: 412/268-7020

Embedded Systems Programming Magazine BBS
Tel: 415/905-2689

     _________________________________________________________________
   
   
   
10: Credits

   The following persons have contributed (directly or indirectly
   through e.g. comp.lang.ada) to the information gathered in this FAQ:
   the Ada Information Clearinghouse--AdaIC [I know, it's not a person;
   still, they managed the FAQ for about one year], Heddy Boubaker, Susan
   Carlson, Cyrille Comar, Robert Dewar, Patrick Donohoe, Dave Emery, Don
   Erway, Michael Feldman, John Goodenough, Drew Johnson, Michele L. Kee,
   Mathew Lodge, "tjmesler", Gary Morris, Pascal Obry, Kurt Olender,
   Margie Price, Richard Riehle, Tucker Taft, and the maintainer has
   simply :-) organized, polished, or added some information for your
   satisfaction. The general HTML structure of this FAQ was inspired by
   the WWW FAQ.
   
     _________________________________________________________________
   
   
   
11: Copying this FAQ

   This FAQ is copyright 1994 by Magnus Kempe. It may be freely
   redistributed as long as it is completely unmodified and that no
   attempt is made to restrict any recipient from redistributing it on
   the same terms. It may not be sold or incorporated into commercial
   documents without the explicit written permission of the copyright
   holder.
   
   Permission is granted for this document to be made available under the
   same conditions for file transfer from sites offering unrestricted
   file transfer on the Internet and from Forums on e.g. Compuserve and
   Bix.
   
   This document is provided as is, without any warranty.



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1994-09-09 19:38 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1994-09-09 19:38 Ada FAQ: comp.lang.ada (part 2 of 2) Magnus Kempe

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