From: drew@verdix.com (Drew Johnson)
Subject: FAQ
Organization: Verdix Corp.
Date: Fri, 14 Aug 1992 14:56:13 GMT
Expires: 14 Oct 92

Sorry for the long haitus between postings, but I have been very busy.  I
intend to post this about once a month.  I am still working (albeit very
slowly) on getting it into news.answers.

This has only minor changes from the last post.  There is a question about
aflex/ayacc, and a couple of vendor updates.  As always, I welcome comments
and criticism.



  Frequently Asked Questions about comp.lang.ada

Table of Contents:

  1) Where can I get a list of validated Ada compilers?
  2) Where can I get a yacc/ayacc grammar to read Ada code?
  3) Is there an Ada-mode for Emacs?
  4) You know, I think Ada could really benefit from having <choose_a_feature> 
   from <choose_a_language>...
  5) I just saw a very anti-Ada post that I think is definitely wrong.  Why
   didn't anybody post a response to it?  Should I?
  6) Where can I get a public domain Ada compiler?
  7) Is Ada a registered trademark of the US government?
  8) I have seen the language name capitalized as ADA, as well as Ada.  Which
   is right?
  9) What is Ada 9X?
  10) What is Anna, and where can I get it?
  11) What is DRAGOON, and where can I get it?
  12) Does anyone have a list of commercial Ada projects?
  13) Are there versions of lex and yacc that generate Ada code?
  14) What ftp sites exist that contain information about Ada or Ada source?
  15) What organizations exist that deal with Ada and Ada issues? (Long)
  16) What cheap (<500$) Ada compilers are available?
  17) Are there any dialup BBS systems that deal with Ada?
  18) Does anyone know where I can get X bindings for Ada?
  19) Is there a list of Ada vendor email contacts?
  20) Is there a list of good Ada books? (Long)

1) Where can I get a list of validated Ada compilers?
	
    (from tjmesler@vnet.ibm.com)
    By anonymous ftp from ajpo.sei.cmu.edu. Latest list is in the
    /public/ada-info directory. Only the latest list is kept, it
    has the name val-comp.hlp.ddmmmyy, where dd stands for date,
    mmm for month (3 letter abreviation), and yy stands for year.
    For example, the current list id val-comp.hlp.01Jun92.
    If the list is updated during the month the previous one
    is lost and the name of the file will change.

2) Where can I get a yacc/ayacc grammar to read Ada code?

    (from garym@flash.telesoft.com (Gary Morris @lone))
    masticol@dumas.rutgers.edu has kindly sent in a yacc and lex
    grammar for Ada.  It's available via FTP from the archives at
    primost.cs.wisc.edu and via mail from the compilers server at
    compilers-server@iecc.cambridge.ma.us.

3) Is there an Ada-mode for Emacs?

   (from boubaker@mailhost.cenatls.cena.dgac.fr (Heddy Boubaker))
   There are, in fact, 3 ada modes for emacs
   - There is a simple ada-mode shipped as part of the emacs distribution.
   - a more elaborate one from Steven D. Litvintchouk of Mitre Corp called
     electric-ada
   - and gnu-ada mode.  Here is a small description of the features of
     this mode:
      1/ 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.
      2/ 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 :-(
      3/ you can consult Ada LRM(*) during parsing error message 
	    (*)You can get one in wsmr-simtel20.army.mil or any repository
	    mirror site.
      4/ smart indentation
       Tries hard to do all the indenting automatically.
       Emphasizes correct insertion of new code using smart templates.
      5/ 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 role 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.
      6/ 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. 
      7/ Move from procedure to procedure or package to package ...
      8/ tags Ada
      9/ and other things ...

    (from obry@enthuse.bellcore.com (Pascal OBRY)
    You can find the gnu-ada mode in
    ajpo.sei.cmu.edu
    cd /public/infoada/gnu
    file r1.06a-ada.tar.Z


4) You know, I think Ada could really benefit from having <choose_a_feature> 
   from <choose_a_language>
     or
   You know, I think Ada is clearly <inferior_or_superior> to
   <choose_a_language> because it has <choose_a_feature>
 
    Such posts almost always result in religious wars about langauge, and
    never result in anything more productive than wasted bandwidth.  PLEASE
    refrain from such posts unless you have a specific question about Ada.
    For example, the following kind of question *is* appropriate:
    "In <choose_a_language> I can do <choose_a_feature>.  How would I go
    about doing this in Ada?"

5) I just saw a very anti-Ada post that I think is definitely wrong.  Why
   didn't anybody post a response to it?  Should I?

    Ada apparently gets more than its share of attacks, probably due to its
    unique origins, and the fact that it is a requirement for some government
    software.  For the same reasons as in (4) above, PLEASE refrain from
    posting a response to these, unless you feel there is something of
    *significant* importance that you can contribute.  Posts containing
    factual corrections are probably OK, but posts like "Well, I've used Ada
    on many projects, and all have been very successful" accomplish nothing.
    If you are really dead-set on driving your point home to the poster,
    do it via email.

6) Where can I get a public domain Ada compiler?

    There is currently no public domain Ada compiler available.  However,
    there is an interpreter, and a compiler is in the works:

    (from Michael Feldman <mfeldman@cs.washington.edu>)
    While there is no PD 'compiler', Ada/Ed is available, which is an
    Ada interpreter.  It is available for PC's, Unix-based machines, Amiga,
    and Atari systems.  Excerpt from the Ada/Ed README:

      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 being released today.

      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. 

    GNU is officially working on a free Ada compiler:
    (from schonber@acf3.NYU.EDU (Ed Schonberg))
	The Computer Science Department of the Courant Institute of Mathematical
	Sciences at New York University is pleased to announce that it has received 
	a contract from the Ada/9X Project Office  to develop a GNU/Ada system.
	The work is being cosponsored by DARPA and the Ada Joint Project Office,
	under the direction of Christine M. Anderson.

	The project involves the implementation of a highly efficient compiler
	system for the Ada language. The compiler is to be an integral part
	of the GCC system, distributed by the Free Software Foundation.
	Richard Stallman, head of the FSF, is cooperating closely with NYU to 
	ensure that the new Ada component will fit smoothly into GCC.
	GNU/Ada will be distributed as a standard part of the GCC system.

	The project is under the direction of Professors Robert B. K. Dewar and 
	Edmond Schonberg. The design team includes members of the NYUADA project
	as well as GCC designers. Bernard Banner, Franco Gasperoni,
	Brett Porter and Gail Schenker have participated in various aspects of the
	design and implementation of Ada/Ed. Richard Kenner has retargetted the GCC 
	backend to several modern RISC architectures. Sam Figueroa, Laurent Bardet 
	and several graduate students will participate in the design and 
    implementation of selected modules of the run-time. Finally, Jean-Pierre 
    Rosen, one of the original designers of Ada/Ed, will be acting as a
	consultant in the area of tasking. Collectively, this group represents
	over a hundred person-years of experience in Ada implementation and
	compiler technology.

	The project has an opening for one additional senior staff person.
	Substantial experience in compiler technology is required, as well as 
	fluency in Ada. Those interested should send e-mail to dewar@cs.nyu.edu
	or schonberg@cs.nyu.edu. 

	The main goal of the project, nicknamed GNAT (GNU NYU Ada Translator) 
	is to provide a free implementation of Ada/9X, the new version of Ada 
    currently being designed. As is well-known, the name Ada/9X reflects the 
    fact that the completion date for its standardization is not yet known, 
    although it is expected that X will be 3 or 4. GNAT will implement
	as much as possible of the Ada/9X design over the 18 month duration of the
	project; it is anticipated that all the important functionality
	of Ada/9X will be covered. The project does not include any commitment
	to formal validation, since neither the approved standard, nor the 
    validation suite will be available in time. Instead, the objective is to 
	provide to the Ada community, in the most timely fashion, a reasonably
	complete implementation distributed with full sources under the standard
	GNU public licence. The system will allow implementors, educators, and 
	software professionals to experiment with the new language at the earliest
	possible time.

	Since ANSI Ada/83 is, with very few exceptions, a subset of
	Ada/9X, the GNU/Ada system will be able to process and correctly
	execute Ada/83 programs as well as Ada/9X programs. Two major
	releases of the system are scheduled, at staged levels of functionality:
	one in June 1993, and the second at the end of calendar 1993.

	We are establishing an external mailing list for distribution of GNAT 
	documents and design information. If you would like to be on 
	this distribution list, please send mail to gnat-request@cs.nyu.edu.

7) Is Ada a registered trademark of the US government?

    (from the AdaIC)
    Prior to November 30, 1987, the name "Ada" was a registered trademark.  In 
    the December 1987 issue of the Ada Information Clearinghouse Newsletter, Ms.
    Virginia Castor, then Director of the Ada Joint Program Office (AJPO), 
    announced that the Department of Defense would thereafter rely on a 
    certification mark instead of a trademark.

    (The certification mark is a Pentagon-shaped symbol with a "Validated Ada" 
    message, and can be seen on the documentation of validated Ada compilers.)

    The following is the text of the 1987 AJPO announcement.

			     From the Director, AJPO

    The Ada Joint Program Office has announced that the Federal registration of 
    Ada as a trademark will not be maintained after November 30, 1987.

    Under the rules for trademark registrations, the owner of a Federally 
    registered trademark must file an affidavit after the mark has been 
    registered for five years, but before the sixth anniversary of registration
    in order to keep its Federally recognized status.  A legal representative 
    of the AJPO explained at a meeting of the Ada Board on October 27, 1987, 
    that a decision was made over a year ago to allow the registration to lapse.

    A trademark is a word, name, symbol, or device adopted and used by a 
    manufacturer or merchant to identify his goods, to distinguish them from 
    those manufactured and sold by others, and to indicate the source of the 
    goods (see Title 15 United States Code section 1127).  The AJPO adopted Ada 
    as a trademark in 1979 and first used it on computer programs and literature
    associated with computer programs on May 8, 1979.  The primary reason for 
    obtaining Federal recognition of the trademark use was to be able to police 
    the use of the term Ada and assure that it was not used to describe any 
    unauthorized subsets or supersets of the Ada computer programming language.  
    The AJPO has freely granted licenses to use the Ada mark to persons 
    complying or agreeing to comply with certain trademark guidelines.

    In July of 1986, the AJPO realized that, in view of the widespread use of 
    the term Ada referring to the Ada computer programming language rather 
    than a specific program or manual from the AJPO or a licensee, the law 
    provided a method more appropriate than a trademark for recognizing the 
    preservation of the integrity of the Ada language.  The same section of the 
    United States Code that defines a trade mark also defines another type of 
    mark called a "certification mark."  Such a mark may be used to certify 
    "quality, accuracy, or other characteristics" of goods or services.

    In order to be a validated Ada compiler, a compiler must pass an extensive 
    suite of programs called the Ada Compiler Validation Capability (ACVC).  The
    AJPO has adopted a certification mark to show that a compiler has passed the
    ACVC and is a validated compiler or a compiler derived from a validated base
    compiler as defined in the Ada Compiler Validations Procedures and 
    Guidelines (version 1.1 of which was issued in January 1987).  The 
    certification mark may also be used on certain literature accompanying or 
    documenting a validated compiler.  Information concerning the proper use 
    of the certification mark was distributed to interested parties during the 
    summer of 1987.

8) I have seen the language name capitalized as ADA, as well as Ada.  Which
   is right?

    The correct capitalization is Ada.  Using all-caps usually implies an
    acronym, and we are not talking about the American Dental Association :).

9) What is Ada 9X?

	Ada 9X refers to the revised version of Ada 83, the current ANSI/ISO         
	standard. The Ada 9X Project Office is responsible for the revision,
	and is working closely with the international community to ensure it
	retains its ISO status. The Ada 9X process is very open. Volunteer
	Reviewers are welcome and should contact ada9x-vr@ajpo.sei.cmu.edu.
	Many draft documents are on-line on the Ada 9X bulletin board, 1-800
	Ada9X 25. For further information contact the Ada 9X Project Office,
	PL/VTET, Kirtland AFB New Mexico 87117-6008.

	Ada 9X includes three major areas of enhancement: support for object-
	oriented programming, programming-in-the-large, and realtime systems.

	A great deal of attention is being focused on transitioning to Ada 9X.
	The validation test suite will be available early (in draft form prior
	to ANSI/ISO approval with official release 3 months after ANSI/ISO
	approval). However for a two year period vendors will be able to
	focus on enhanced areas of the language that their customer base wants
	first ie., the first validation test suite will be modularly constructed
	Vendors are also being encouraged to release beta-versions of their
	Ada 9X implementations prior to validation.

	There will also be a GNU Ada 9X compilation system available in late
	1993.

10) 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.  We have
    implemented a whole lot of tools 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.  We are currently in the process of enhancing this tool
       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 (4) 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 mail to
    anna-request@anna.stanford.edu for answers to such questions.  Actually,
    we also have a mailing list - anna-users@anna.stanford.edu.  Send 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 on the machine anna.stanford.edu in the 
    anonymous ftp directory pub/anna.

11) What is DRAGOON, and where can I get it?


    DRAGOON is a language, implemented as an Ada preprocessor (ie. generates 
    pure Ada).  DRAGOON supports the development of Ada in a truly object-
    oriented manner, 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 succintly and
	completely.

	For a copy of the preprocessor, you can contact:

	  Mr. Andrea Di Maio
	  TXT Ingegneria Informatica S.p.A.
	  Via Socrate, 41
	  20128 Milan, ITALY
	  0039-2-27001001

12) Does anyone have a list of commercial Ada projects?

    The AdaIC maintains a list of known Ada projects, both commercial and
	government-related.  Details on contacting the AdaIC are below.  

13) Are there versions of lex and yacc that generate Ada code?
	The Arcadia project produced aflex and yacc, that are written in Ada
    and produce Ada code.  These can be found in the STARS repository
    (source.asset.com -- see below), as well as other sites.

14) What ftp sites exist that contain information about Ada or Ada source?

    Ada Software Repository:  wsmr-simtel20.army.mil
	Internet address: 192.88.110.20
    Mirror of Ada Software Repository:  wuarchive.wustl.edu
	Internet address: 128.252.135.4
    AJPO and AdaIC repository:  ajpo.sei.cmu.edu
	Internet address: 128.237.2.253
    Source for aflex and ayacc:  liege.ics.uci.edu (~ftp/pub/irus)
	Internet address: 128.195.1.5, 128.195.13.1
    European Repository:  cnam.cnam.fr
	Internet address: 192.33.159.6
    STARS(Software Technology for Adaptable, Reliable Systems): source.asset.com
        Internet Address: 192.131.125.10
    Unisys/STARS source: stars.rosslyn.unisys.com
        Internet Address: 128.126.164.2

15) What organizations exist that deal with Ada and Ada issues? (Long)

    Ada Joint Program Office (AJPO) 
NOTE: I could put in what I think they do, but I would rather get something
from the source.  Any input would be greatly appreciated.  

    Ada Information Clearinghouse (AdaIC)
    (from Michele L. Kee <adainfo@ajpo.sei.cmu.edu>)
    The Ada Information Clearinghouse (AdaIC) provides a full spectrum of
    information on Ada to anyone interested in finding out more about the
    programming language.  The AdaIC can be reached at (800) AdaIC-11 or
    (703) 685-1477.
    IIT Research Institute operates the AdaIC for the Ada Joint Program Office.
      The AdaIC publishes a quarterly newsletter, which contains current
    news, Ada conference reports, announcements from the Ada Joint Program
    Office (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.

    Special Interest Group Ada (SIGAda): 
NOTE: Another group for which I would like to get a succinct description.
I would also like to get a list of all the 'official' WG's under SIGAda,
and brief descriptions of each.  Anyone care to volunteer?

    ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9):
    This is a working group in ISO that deals with Ada.  Within it are several
    Rapporteur (rap) groups:
    (from Goodenough@SEI.CMU.EDU)
      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).

    (from emery@d74sun.mitre.org (David Emery))
      Uniformity Rapporteur Group (URG): Responsible for evaluating Uniformity
      Issues (UI's).  UI's 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.

      CRG: Character Rapporteur Group - International Character Sets
      RRG: Real-Time Rapporteur Group - ExTRA
      NRG: Numerics Rapporteur Group  - NUMWG packages
      SRG: SQL Interfaces Rapporteur Group - SAMeDL
      IRG: Information Systems Rapporteur Group - Decimal Arithmetic
      XRG: Ada 9X Rapporteur Group

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

    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-003 for more info.

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

    AdaIC BBS: (US)703-614-0215  AUTOVON: 224-0215
    (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 Susan Carlson <carlsons@ajpo.sei.cmu.edu>)
    Naval Computer Telecommunications Command
    Phone Number: 804-444-7841

    Software Technology Support Center (STSC) BBS
      Phone Number: 801/777-7553 or DSN 458-7553
      Baud: 2400, 1200, 300
      Bits: 8
      Parity: None
      Stop Bits: 1

    PIWG Ada Benchmarks BBS
      Phone Number: 301/765-5555

    AFSC MCCR  Ada - Air Force Policy
      Phone Number: 301/735-8124

    Embedded Systems Programming Magazine BBS
	  Phone Number: 415/905-2689

    Journal of Pascal, Ada, Modula2 (JPAM) Magazine BBS
      Phone Number: 415/967-7241

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

18) Does anyone know where I can get X bindings for Ada?
    This question turns out to be pretty darn hard to answer easily.  There are
    at least 3 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 (ie just need bindings to
	  Xlib, want Openlook as opposed to Motif, etc).
    Once you fill all 3 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.08Jun92
      access:	anonymous FTP

    Free versions:
      STARS: bindings to Xlib and Xt.  freely available via ftp on
	stars.rosslyn.unisys.com

    Non-free versions:
      SERC: bindings to Xlib/Xt/Motif
	 contact: mendal@anna.Stanford.EDU (Geoff Mendal)

      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 (telno 703-264-1900)

      Telesoft: TeleUSE
	contact: philippe@telesoft.com
      
      EVB software: Heragraph
	contact: heragraph@evb.com

      Sun Microsystems: DevGuide
	contact: ???

19) Is there a list of Ada vendor email contacts?

    Alsys sales:  no email (Scott Dorman) 
	Telno: (617) 270-0030

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

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

    IBM/Ada questions: malcho@torolab6.vnet.ibm.com (Don Malcho)
    Telno: (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)
    Telno: (412) 856 3600

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

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

20) Is there a list of good Ada books?
(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.


Send any changes/additions to drew@verdix.com.

Disclaimer:  Any and all opinions or statements expressed above are either
mine, or given to me by someone else.
==============================================================================
Newsgroups: comp.lang.ada