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

comp.lang.ada Frequently Asked Questions (FAQ) part 1 of 2

Currently, the comp.lang.ada FAQ is maintained by the Ada Information
Clearinghouse (cla-faq@ajpo.sei.cmu.edu).

Individuals are encouraged to submit both questions and answers.  In many
answers below, submitters are noted in parentheses at the beginning of
comments.  (Comments may be slightly edited.)

It should be noted that report of a product, service, or event, etc., does
not constitute an endorsement by the AdaIC or the Ada Joint Program Office.
Opinions expressed are those of the submitters.

Changes since the last FAQ:

Perhaps the most notable change is just that Drew Johnson (Verdix), who
started the FAQ, will no longer be maintaining it, and that the AdaIC will
be responsible for it.

Other than that, besides slight editing changes, the major changes are:

Additional info in 15 (organizations) and 18 (bindings), a new number
for PIWG in 17 (BBSs), a new host for STARS in 18, additional info in 
19 (vendor e-mail), and there's a new question -- 21 (translators).  
7) has been shortened.

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 bindings for Ada?  X-Windows?
      Others?
  19) Is there a list of Ada compiler vendor e-mail contacts?
  20) Is there a list of good Ada books?  (Long)
  21) Where can I get language translators?  And should I?

 1) Where can I get a list of validated Ada compilers?

      (from tjmesler@vnet.ibm.com)

      By anonymous ftp from ajpo.sei.cmu.edu.  The 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 is val-comp.hlp.01Oct92.  If the
      list is updated during the month, the previous one is deleted
      and the date part of 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 e-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
          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 roll your own grammars (e.g., your design grammar or an
          ADL) and put them in *.bnf files ..
          ; The BNF rule set is stored as a list of rules.

          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>

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

      Such posts almost always result in religious wars about langauge
      and produce only 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?

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

      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, you
      can do it via e-mail.

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

      There is currently no public-domain Ada compiler available.
      However, a compiler for Ada 9X is in the works, and there is an
      interpreter for Ada 83.  The interpreter is available from the
      New York University host (cd.nyu.edu, Internet address
      128.122.140.24).

      Interpreter for Ada 83:
      (from mfeldman@cs.washington.edu (Michael Feldman))

      While there is no PD 'compiler', Ada/Ed is available, which is
      an Ada interpreter.  It is available for PCs, 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
      [available from the NYU host.]

      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.

      Compiler for Ada 9X:
      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 e-mail to
      gnat-request@cs.nyu.edu.

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

      (from the AdaIC)

      No, but it used to be; there's a "certification mark", though,
      which is to be used only for validated compilers.

      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 text of the 1987 AJPO announcement is available as an AdaIC
      file (trademrk.hlp.25Apr91) in the public/ada-info directory on
      the AJPO host (ajpo.sei.cmu.edu).

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

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

      The correct capitalization is Ada.  It's a proper name, for Ada
      Lovelace (1815-1852), who is regarded to be the world's first
      programmer.

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

9) What is Ada 9X?

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

      Ada 9X refers to the revised version of Ada.  (Ada 83 is 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 Ada 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; i.e., 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?

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

      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 (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 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 on the machine anna.stanford.edu in
      the anonymous ftp directory pub/anna.

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

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

      DRAGOON is a language, implemented as an Ada preprocessor (i.e.,
      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
      succinctly 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?

      (from the AdaIC)

      The Ada Information Clearinghouse maintains a list of Ada
      projects that have submitted information for the AdaIC's Ada
      Usage Database.  It is only a sample of Ada projects, but it
      includes both commercial and government-related projects.
      Details on contacting the AdaIC are below (question 15).

13) Are there versions of lex and yacc that generate Ada code?

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

      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?

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

      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)

      (from AdaIC)

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

      The address is:
      Ada Joint Program Office
      The Pentagon, 3E118
      Washington, DC 20301-3081
      703/614-0208 (autovon 224-0208)
      fax: 703/685-7019

      The current Director and Deputy Directors are:

      Director:                         Dr. John Solomond
                                          (solomond@ajpo.sei.cmu.edu)
      Air Force Deputy Director:        Maj M. Dirk Rogers
                                          (rogersd@ajpo.sei.cmu.edu)
      Navy Deputy Director:             Mr. W. Currie Colket
                                          (colket@ajpo.sei.cmu.edu)
      Army Deputy Director              vacant

      Ada Information Clearinghouse (AdaIC)
      (from adainfo@ajpo.sei.cmu.edu (Michele L. Kee))

      Ada Information Clearinghouse
      c/o IIT Research Institute
      4600 Forbes Boulevard
      Lanham, MD 20906-4320
      1-800-AdaIC-11, 703/685-1477; fax: 703/685-7019

      The Ada Information Clearinghouse (AdaIC) provides a full
      spectrum of information on Ada to anyone interested in finding
      out more about the programming language.  IIT Research Institute
      operates the AdaIC for the Ada Joint Program Office (AJPO).  The
      AdaIC publishes a quarterly newsletter, which contains current
      news, Ada conference reports, announcements from the AJPO
      Director, and articles on projects using Ada.  If you would like
      to receive a copy of the AdaIC newsletter, please call and
      request a subscription.  There's no charge.  The AdaIC also
      regularly updates and publishes more than 70 separate
      information flyers.  Flyer topics include:

           Ada Validated Compilers
           Ada News and Current Events
           Ada Usage
           Ada 9X Project
           On-line sources of Ada Information
           Ada Bibliographies
           Ada Compiler Validation and Evaluation
           Resources for Ada Education and Training
           Ada Software, Tools, and Interfaces
           Ada Regulations, Policies, and Mandates
           Ada Historical Information

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

      *Practically all AdaIC flyers are available via anonymous ftp
      from the AJPO host (ajpo.sei.cmu.edu, in the public/
      directories).*

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

      SIGAda's bimonthly publication is Ada Letters: Non-members $37;
      (Annual ACM membership dues, $71; students, $21).  $15 per year
      to ACM members; $10 per year ACM student members.

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

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

      ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9):
      This is a working group that deals with Ada within the
      Internation Standardization Organization.  Within WG-9, are
      several Rapporteur (rap) groups:

      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

      Ada Rapporteur Group (ARG):
      (from Goodenough@SEI.CMU.EDU)

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

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

      Uniformity Rapporteur Group (URG):
      (from emery@d74sun.mitre.org (David Emery))

      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.
Newsgroups: comp.lang.ada