From: cla-faq@ajpo.sei.cmu.edu (Ada Info. Clearinghouse)
Subject: comp.lang.ada FAQ 2/2
Followup-To: Poster
Summary: comp.lang.ada Frequently Asked Questions. (Does *not* 
         get into programming questions.)
Reply-To: cla-faq@ajpo.sei.cmu.edu
Organization: Ada Information Clearinghouse
Date: Thu, 5 Nov 1992 16:30:54 GMT

comp.lang.ada Frequently Asked Questions part 2 of 2

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

      What follows is absolutely *not* exhaustive, but inexpensive
      compilers are available, and some vendors offer educational
      discounts.  Among those offering educational discounts are
      Alsys, DDC-I, Encore, Harris, IBM, Irvine Compiler, Meridian,
      PSS, Tartan, and TeleSoft.

      Meridian
      Among choices for inexpensive compilers, Meridian offers one for
      $99.  (Meridian Software Systems, 10 Pasteur Street, Irvine, CA
      92718; contact: Jim Smith 800/221-2522, 714/727-0700)

      Alsys (US pricing only):
      FirstAda for 286 DOS is $595.  It'll run on 286 and higher, and
      will generate applications for any x86 PC.  Comes with a full
      toolset.  Alsys does run specials on it periodically.  Call
      Scott Dorman at 617/270-0030 for more info.

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

17) Are there any dialup BBS systems that deal with Ada?

      AdaIC BBS: (US) 703/614-0215 AUTOVON: 224-0215

      Ada 9X: (US) 800-Ada9X25 301/459-8939

      (from olender@CS.ColoState.EDU (Kurt Olender))

      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.

      (from carlsons@ajpo.sei.cmu.edu (Susan Carlson))
      (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

      Air Force Software Technology Support Center (STSC) BBS
      Tel: 801/777-7553 or DSN 458-7553
      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

      AFSC MCCR Ada -- Air Force Policy
      Tel: 301/735-8124 (?? wasn't working on 2 Nov 92)

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

      Ada Language System/Navy
      Tel: 202/342-4568
      Baud: 2400/1200/300
      Bits: 8
      Parity: None
      Stop Bits: 1

18) Does anyone know where I can get bindings for Ada?  X-Windows?
      Others?

      General
      The AdaIC (question 15, above) has a report on "Available Ada
      Bindings".  It can be ordered in hardcopy as flyer S82, and it
      can be downloaded from the AdaIC Bulletin Board (703/614-0215)
      as BINDINGS.HLP.  It's also available by anonyomous ftp on the
      AJPO host (ajpo.sei.cmu.edu).

      X-Windows
      (from drew@verdix.com (Drew Johnson))

      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, I am simply going
      to list companies that offer such products, and locations where
      free versions are available.

      Before I give the list, I think 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.  I believe that 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, and I
      welcome corrections.

      Now, for the list.
      NOTE: this list is currently "off the top of my head", and I
      welcome the addition of details and/or corrections.  I currently
      don't have time to go back through the comp.lang.ada archives to
      get full contact info on the companies I am listing below.  I am
      counting on their vigilance to see the FAQ and send me info.

      First off, there is a pretty complete list of available bindings
      for X as well as other stuff at the Ada IC.
      site: ajpo.sei.cmu.edu
      location: /public/ada-info/bindings.hlp.06Oct92
      access: anonymous FTP

      Free versions:
      STARS: bindings to Xlib and Xt.  freely available via ftp on
      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: 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: TeleUSE
      contact: philippe@telesoft.com

      EVB software: GRAMMI
      contact: grammi-info@evb.com

      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)

19) Is there a list of Ada compiler vendor e-mail contacts?

      (from drew@verdix.com (Drew Johnson))

      Alsys sales (e-mail contact only): tne@world.std.com (Tom Erickson)
      Alsys sales (voice) Scott Dorman
      Tel: 617/270-0030

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

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

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

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

      Intermetrics questions: ryer@inmet.inmet.com (Mike Ryer)

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

      Tartan questions: englert@tartan.com (Susan Englert)
      Tel: 412/856 3600

      Telesoft questions: adasupport@telesoft.com
      Tel: 619/457-2700
      TeleSoft Sales: marketng@telesoft.com (Philippe Collard)
      Tel: 619/457-2700

      Verdix questions: drew@verdix.com (Drew Johnson)
      Verdix sales information: moskow@verdix.com (Paul Moskowitz)
      Tel: 800-BUY-VADS

20) 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 the ADABOOKS.HLP file
      on the AdaIC Bulletin Board and in the public/ada-info directory
      on the AJPO host (ajpo.sei.cmu.edu).

      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.

21) 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.

      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 will 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 it 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.

==============================================================================

From: hawk@hpavla.lf.hp.com (Dave Hawk)
Date: Thu, 5 Nov 1992 13:02:21 GMT
Subject: Re: Who uses Ada??
Organization: Hewlett-Packard Little Falls Site