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


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

[This is a repost.  Our site refused to spread this article last week. --MK]


                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

This is part 1 of a 3-part posting.
Part 2 begins with question 5.3.
Part 3 begins with question 9.2.
They should be the next postings in this thread.

Introduction

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, etc. All Ada compilers must pass a
   validation test.
   
   Ada is defined by an international standard (the language reference
   manual, or LRM). Ada is in use around the world (not just in the USA).
   
   
   NOTE: This document now has a home on the Ada WWW Server, in hypertext
   format (URL http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html).
   
Maintenance

   For the past year or so, the comp.lang.ada FAQ has been maintained by
   the Ada Information Clearinghouse (cla-faq@ajpo.sei.cmu.edu); prior to
   that, it was maintained on an individual volunteer basis.
   
   This FAQ is now again maintained on an individual volunteer basis, by
   Magnus Kempe (Magnus.Kempe@di.epfl.ch). [Note: This is done as a
   hobby, not in my capacity as an employee at the Swiss Federal
   Institute of Technology. --MK]
   
   The AdaIC has announced it will maintain its own FAQ pointing to Ada
   items available on the Ada Joint Program Office's host. In the
   meantime, this FAQ still contains pointers to AJPO and AdaIC material.
   
   
   
     _________________________________________________________________
   
   Report of a product, service, or event, etc., does not constitute an
   endorsement. Opinions (if any) expressed are those of the submitters
   and/or maintainer.
     _________________________________________________________________
   
   
   
Table of Contents:

   
     * 1: Recent changes to the FAQ
     * 2: Information about this document
     * 3: Elementary questions
          + 3.1: What is Ada?
               o 3.1.1: Where can I get other information on Ada?
          + 3.2: I have seen the language name capitalized as ADA, as
            well as Ada. Which is right?
          + 3.3: What is Ada 9X?
               o 3.3.1: Are there already Ada 9X books?
          + 3.4: Is Ada a registered trademark (TM) of the US government?
          + 3.5: Where can I find an electronic version of the Ada
            language reference manual (LRM)?
          + 3.6: Is Ada used in commercial applications?
          + 3.7: I think Ada could really benefit from having
            [choose_a_feature] from [choose_a_language] ...
          + 3.8: 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?
          + 3.9: I very strongly agree/disagree with the Ada mandate (or
            a post dealing with it). Why doesn't anyone praise/criticize
            it? Should I?
          + 3.10: I don't have FTP service on the host where I have an
            account. Is there any other way I can access FTP sites?
               o 3.10.1: The AJPO host has a special e-mail service for
                 FTP.
     * 4: Compilers
          + 4.1: Is there a list of validated Ada compilers?
          + 4.2: Is there a public-domain/free/shareware Ada compiler or
            interpreter?
               o 4.2.1: Ada/Ed -- An Interpreter for Ada 83 
               o 4.2.2: GW-Ada/Ed -- a souped-up version of Ada/Ed for
                 386/486 DOS and Macintosh machines
               o 4.2.3: GNAT, The GNU NYU Ada Translator -- An Ada 9X
                 Compiler
          + 4.3: What cheap (<500$) Ada compilers are available?
          + 4.4: Is there an Ada compiler for machine X/operating system
            Y?
               o 4.4.1: on the Macintosh?
               o 4.4.2: native for OS/2?
          + 4.5: How can I contact Ada compiler vendor?
     * 5: Organizations that deal with Ada and Ada issues
          + 5.1: Ada Joint Program Office (AJPO)
          + 5.2: Ada Information Clearinghouse (AdaIC)
          + 5.3: ACM/SIGAda
          + 5.4: ISO WG 9
     * 6: Tools
          + 6.1: Is there an Ada-mode for Emacs?
          + 6.2: Are there versions of lex and yacc that generate Ada
            code?
          + 6.3: Where can I get a yacc/ayacc grammar to read Ada code?
          + 6.4: What is Anna, and where can I get it?
          + 6.5: What is DRAGOON, and where can I get it?
          + 6.6: Where can I get language translators? And should I?
          + 6.7: What is ASIS?
               o 6.7.1: How can I get hold of ASIS?
               o 6.7.2: How can I find out more about ASIS? and Can I
                 take part in its development?
     * 7: Bindings
          + 7.1: General
          + 7.2: POSIX
               o 7.2.1: What is the status of the POSIX/Ada work?
               o 7.2.2: How can I get a copy of POSIX/Ada?
               o 7.2.3: Is POSIX/Ada available via FTP?
          + 7.3: X Window System
     * 8: Is there a list of good Ada books?
     * 9: Resources
          + 9.1: What FTP sites exist that contain information about Ada
            or Ada source?
          + 9.2: Reuse
               o 9.2.1: Are there any free, public-domain, or other
                 general-access software repositories that contain Ada
                 source code and information on reuse?
               o 9.2.2: Is there a database of reusable Ada software
                 components?
          + 9.3: Where can I get Ada benchmark programs?
          + 9.4: Are there any dial-up BBS systems that deal with Ada?
     * 10: Credits
     * 11: Copying this FAQ
       
   
   
   
     _________________________________________________________________
   
   
   
1: Recent changes to the FAQ

   
     * 10/10: Updated the list of Ada books.
     * 9/16: How to access FTP by email.
     * 8/31: What is Ada, and where can one get more information?
     * 8/30: Ada 9X books.
     * 8/18: added an explicit copyright statement.
     * 8/17: love/hatred of the Ada mandate.
     * 8/16: where are yacc grammars for Ada?
     * 8/16: where are electronic versions of the Ada LRM?
     * 8/15: made into a hypertext version to browse on WWW.
     * 8/15: is there an Ada compiler for machine X/operating system Y?
     * 8/15: pointer to list of reusable components.
     * 8/12: references to network resources now follow the URL
       convention.
     * 8/12: completely revised the structure.
     * July: new maintainer.
       
   
   
   What's important and missing:
     * description of the ACVC.
     * CD-ROMs.
     * list of regular Ada-related events.
       
   
   
     _________________________________________________________________
   
   
   
2: Information about this document

   This file has been posted to comp.lang.ada, comp.answers, and
   news.answers.
   
   This document has a home on the Ada WWW Server, in hypertext format
   (URL http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html).
   
   A previous version of the FAQ is still available for downloading via
   anonymous FTP from the AJPO host (ajpo.sei.cmu.edu), in
   ftp://ajpo.sei.cmu.edu/public/comp-lang-ada/ (files cla-faq1 and
   cla-faq2).
   
   (When posted again in *.answers, it will also be available on
   rtfm.mit.edu, which archives FAQ files posted to news.answers; for the
   old version, see
   ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/comp-lang-ada/.)
   
   
   For notes on FTP, or the lack thereof, see question 3.10, describing
   how to use FTP by e-mail.
   
   Magnus Kempe maintains this document; it's not a job, it's a hobby.
   Feedback about it is to be sent via e-mail to magnus.kempe@di.epfl.ch.
   Thanks.
   
   In all cases, the most up-to-date version of the FAQ is the version
   maintained on the Ada WWW Server. Please excuse any formatting
   inconsistencies in the posted version of this document, as it is
   automatically generated from the on-line version.
   
     _________________________________________________________________
   
   
   
3: Elementary questions

   
   
3.1: What is Ada?

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, et caetera. All Ada compilers must pass a
   validation test.
   
   
    3.1.1: Where can I get other information on Ada?
    
   If you have questions which this FAQ does not answer, you may contact
   the Ada Information Clearinghouse (see below, question 5.2), use the
   Usenet newsgroup comp.lang.ada, read the Ada Yearbook published by Ada
   UK, or the Ada Resources published by the ACM.
   
   To find out more, you may also use the Ada WWW Server, URL
   http://lglwww.epfl.ch/Ada/, which has a companion FAQ:
   Ada/ada-www-server (also regularly posted to comp.lang.ada).
   
   I encourage you to check out the changes listed early in the document
   each time this FAQ is posted.
   
   
3.2: I have seen the language name capitalized as ADA, as well as Ada. Which
is right?

   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 this forum is not
   devoted to the American Dental Association :-).
   
   
3.3: What is Ada 9X?

   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 documents are available for
   downloading from the ftp://ajpo.sei.cmu.edu/public/ada9x/ directory on
   the AJPO host (see question 9.1, FTP sites for more information.) For
   further information, contact the Ada 9X Project Office, PL/VTES,
   Kirtland AFB, New Mexico 87117-5776.
   
   Ada 9X includes four major areas of enhancement: support for
   object-oriented programming, data-oriented synchronization,
   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 is also a (still partial) GNU Ada 9X compilation system (GNAT)
   available since late 1993. (See question 4.2.3.)
   
   
    3.3.1: Are there already Ada 9X books?
    
   The Ada 9X Rationale explains how to use the new mechanisms of the
   language. The new Reference Manual is THE reference, of course. The
   Annotated Reference Manual provides detailed explanations of the rules
   of the language (good for implementors and language lawyers). All
   three are available by FTP from the AJPO host, in
   ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x (v5.0).
   
   There are also a few commercial books which have sections on Ada 9X or
   have integrated the revised definition of the language into their
   presentation:
     * J. Barnes. Programming in Ada: Plus an Overview of Ada 9X.
       Addison Wesley. Price $43.25. ISBN 0-201-62407-9.
     * G. Booch and D. Bryan. Software Engineering with Ada.
       3rd ed., Benjamin/Cummings, 1994. ISBN 0-8053-0608-0.
     * Naiditch. Rendez-vous with Ada 9X.
       2nd ed., John Wiley & Sons, Inc. Price $44.95. ISBN 0-471-01276-9.
     * J. Skansholm. Ada From the Beginning.
       2nd ed., Addison-Wesley
       
   
   
   
3.4: Is Ada a registered trademark (TM) of the US government?

   No, but it used to be; there is 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
   on the AJPO host, in
   ftp://ajpo.sei.cmu.edu/public/policy/trademrk.txt.
   
   
3.5: Where can I find an electronic version of the Ada reference manual (LRM)?


   The Ada 83 LRM is available in plain ASCII files in
   ftp://ajpo.sei.cmu.edu/public/lrm/.
   
   The Ada 9X Draft RM is available in plain ASCII and Postscript files
   in ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x/.
   
   Both Ada 83 and Ada 9X reference manuals exist in hypertext format,
   accessible through the Ada WWW Server (see the companion FAQ:
   Ada/ada-www-server).
   
   
3.6: Is Ada used in commercial applications?

   Yes. Ada is used in e.g. airplanes, air traffic control systems,
   financial systems, telecommunications systems, medical devices.
     * The AJPO host on the Internet contains a report of Commercial Ada
       Users Working Group (CAUWG) of the Association for Computing
       Machinery's Special Interest Group on Ada (ACM SIGAda). Dated June
       1993, the report is a survey of applications from around the world
       that are written in Ada. It is in
       ftp://ajpo.sei.cmu.edu/public/document/cauwg.txt.
       
     * 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. For details on
       contacting the AdaIC, see question 5.2.
       
     * On the AJPO host, the ftp://ajpo.sei.cmu.edu/public/usage/
       directory contains a summary of the Ada Usage Database and a
       number of individual project descriptions that may be of interest.
       
       
   
   
   
   
3.7: I think Ada could really benefit from having [choose_a_feature] from
[choose_a_language],
or:
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 language wars and only
   waste 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?"
   
   
3.8: 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 the preceding
   question, 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 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.
   
   
3.9: I very strongly agree/disagree with the Ada mandate. Should I
praise/criticize it?

   First, it is a fact that there is an Ada standard, on which the US
   DoD is aligned (the so-called "mandate"). No shouting match will
   change that. Second, don't believe rumors (about the mandate, its
   withdrawal, its being ignored, etc.) you read in comp.lang.ada, unless
   you have reasons to (i.e. you know the author is trustworthy, or the
   author provides references which you can check, and which you have
   checked yourself at least a couple of times.)
   
   For your information, here is the text of "Public Law 101-511 Sec
   8092":
   
     Notwithstanding any other provisions of law, after June 1, 1991,
     where cost effective, all Department of Defense software shall be
     written in the programming language Ada, in the absence of special
     exemption by an official designated by the Secretary of Defense.
     
    What about discussing the US Ada mandate?
    
   If you want to argue either for or against US Government Ada policies
   please restrict your postings to "usa" (field "Distribution:").
   Remember that Ada is an international standard, but the US mandate is
   not an international issue.
   
   Praise of the mandate is usually based on the ideas that a) it is
   better to have one language than 1500 obscure, proprietary languages
   for all DoD-owned non-COTS systems, and b) Ada is a good software
   engineering language, especially when it comes to maintenance.
   
   Criticism of the mandate is usually based on the ideas that a) a good
   language should not need a mandate (which ignores the fact that before
   standardizing on Ada the DoD had to maintain for 20+ years software
   written in 1500 obscure, proprietary programming languages--which is
   hard and costly), and b) the mandate is mostly ineffective, since
   either it is ignored, or too many waivers are granted, or none is
   necessary (a policy issue which will in all likelihood NOT be resolved
   by discussions on comp.lang.ada).
   
   Finally, whenever you see a message criticizing the Ada language (or
   Ada companies) for losing completely both in the market and under the
   mandate, check the facts for yourself. For the most part, the Ada
   mandate is enforced; in many critical, commercial systems, Ada is the
   language of choice and its adoption a success; in the slowly-changing
   competition of programming languages, FORTRAN and COBOL dominate, and
   Smalltalk, C++, Eiffel, and Ada are all slowly growing. Ada is
   (finally, and we hope seriously) penetrating academia. There is a GNU
   Ada 9X compiler available. And remember that Ada 9X will be the first
   standardized object-oriented programming language.
   
   If you have some new, additional facts, with approriate references so
   that everyone can check for himself, then posting on a mandate-related
   issue is OK. If NOT, then refrain from posting. PLEASE, if someone
   starts a non-factual discussion, the best policy is simply to ignore
   it or, if you have to, you may reply by private e-mail. Try to hold
   the same standards as you would in discussing problem-solving with the
   programming language itself, and put your information in a way which
   encourages positive action; criticism of inefficiency and/or
   ineptitude is fine, as long as it is honest, documented, and polite.
   
   
3.10: I don't have FTP service on the host where I have an account. Is there
any other way I can access FTP sites?

   If you are not connected to the Internet but do send and receive
   email from the net, you can use an "ftp by mail" agent, such as
   ftpmail, which is provided by DEC's Western Research Labs (DECWRL).
   The mail server may be reached by sending a mail message to
   uucp!decwrl!ftpmail or ftpmail@decwrl.dec.com .
   
   Complete instructions for using ftpmail may be retrieved with a
   message to the above address with subject "ftpmail" and the single
   word "help" as the text of your message. Example query:

To: ftpmail@decwrl.dec.com
Subject: ftpmail

help

   
   
   
3.10.1: The AJPO host has a special e-mail service for FTP.

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

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

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

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

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

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

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

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

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

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

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

Subject: directory compiler

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

Subject: directory p*

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

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

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

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

Subject: file-request compiler/README

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

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

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

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

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

Here is a brief description of the available services:

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

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

help:         This service returns this help message.

info:         This service returns this help message.

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

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

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

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

   
   
     _________________________________________________________________
   
   
   
4: Compilers

   
   
4.1: Is there a list of validated Ada compilers?

   
   
   Yes, indeed, there is. The latest list can be retrieved by anonymous
   FTP. It is in ftp://ajpo.sei.cmu.edu/public/compiler/val-comp.txt (a
   PostScript version is also available in
   ftp://ajpo.sei.cmu.edu/public/compiler/val-comp.ps). If the list is
   updated during the month, the previous one is replaced.
   
   
4.2: Is there a public-domain/free/shareware Ada compiler or interpreter?

   There ARE free Ada systems, and there is a choice: Ada/Ed for Ada 83,
   and GNAT for Ada 9X.
   
   (Strictly speaking these are NOT "public-domain". They are
   "free"--under copyright conditions known as "GNU Copyleft". In short:
   there is no warranty, and you are allowed to copy, modify, and
   distribute them; but you can't charge anyone for the software itself,
   and if the software (necessarily including source code) is further
   distributed, it must be done under the same conditions--i.e. copyable,
   with sources and modifications, available to everyone else, etc.)
   
   
    4.2.1: Ada/Ed -- An Interpreter for Ada 83
    
   Ada/Ed is available for PCs, Unix-based machines, Amiga, and Atari
   systems. The Ada/Ed interpreter for Ada 83 is available from the New
   York University host, in ftp://cs.nyu.edu/pub/adaed/ (Internet address
   128.122.140.24). There you will find a version for UNIX-based
   machines, and a version for 386/486 DOS machines.
   
   Ada/Ed is a translator-interpreter for Ada. It is intended as a
   teaching tool, and does not have the capacity, performance, or
   robustness of commercial Ada compilers. Ada/Ed was developed at New
   York University, as part of a long-range project in language
   definition and software prototyping. The project produced the first
   validated translator for Ada, in the form of an executable definition
   of the language written in SETL. The SETL system served as design
   document and prototype for the C version.
   
   Ada/Ed was last validated under version 1.7 of the ACVC tests.
   Therefore it is not currently a validated Ada system, and users can
   expect to find small discrepancies between Ada/Ed and currently
   validated compilers.
   
   Apart from the 100-odd tests of ACVC 1.11 that Ada/Ed currently fails,
   the major deficiency of the system is that, being an interpreter, it
   does not implement most representation clauses, and thus does not
   support systems programming close to the machine level.
   
   
    4.2.2: GW-Ada/Ed -- a souped-up version of Ada/Ed for 386/486 DOS and
    Macintosh machines
    
   GW-Ada/Ed is available from the PAL, by anonymous FTP; it is in
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/adaed/gwu/. The
   files are located in subdirectories "dos" and "mac".
   
   This project was sponsored by The George Washington University, and in
   part by the United States Advanced Research Projects Agency (ARPA).
   
   This distribution contains the executables for GWAda, which consists
   of the NYU Ada/Ed translator/interpreter system together with an
   integrated editor developed by Prof. Arthur Vargas Lopes of the
   Pontifical University at Porto Alegre, Brazil. Lopes began his work on
   GWAda while he was a doctoral student at The George Washington
   University. There is also in the DOS version a very nice extended
   runtime facility, with interesting kinds of source tracing.
   
   GWAda is being freely distributed at no charge. In the near future the
   developers will make the source code available under the GNU General
   Public License. Source code is not being provided because the system
   is still in the developmental stage. Source code for Ada/Ed itself is
   available from NYU (see above) and from PAL (see questions 9.1 and
   9.3).
   
   Note that under DOS you do not have to use the GWAda integrated
   environment, but can execute the various parts of NYU Ada/Ed from the
   DOS command line, as described in the NYU instructions.
   
   System requirements:
     * IBM PC Compatible, 386 or 486, running MS-DOS or PC-DOS, with at
       least 3.6 MB available extended memory, and at least 5 MB free
       hard-disk space.
       
     * Mac with a 68030 or 68040 processor, System 7, with at least 4 MB
       of RAM, and around 10 MB free hard-disk space.
       
   
   
   
    4.2.3: GNAT, The GNU NYU Ada Translator -- An Ada 9X Compiler
    
   GNAT is available from the New York University host, in
   ftp://cs.nyu.edu/pub/gnat/. There are versions for UNIX-based
   systems, and versions for DOS and 386/486 OS/2 machines. Usually the
   latest version is made available for both Sun SPARC (SunOS 4.1) and
   OS/2 machines.
   
   It is also available in the Public Ada Library (PAL -- formerly the
   Ada Software Repository), under
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/gnat/ (Internet
   address: 128.252.135.4). A mirror site of the PAL also carries GNAT:
   ftp://ftp.cdrom.com/pub/languages/ada/compiler/gnat/.
   
   You can also get a copy from the AdaIC Bulletin Board. But this is a
   dial-up operation (703/614-0215), and since the files sizes are large,
   connect times may be lengthy. The bulletin board is best used as a
   back-up source for those who don't have Internet/FTP access.
   
      General
      
   (excerpted from "Free Source Code for GNAT 9X Compiler to be Available
   on Internet", by Robert Dewar and Edmond Schonberg, New York
   University, Ada Information Clearinghouse Newsletter August 1993)
   
   The Computer Science Department of the Courant Institute of
   Mathematical Sciences at New York University received a contract from
   the Ada 9X Project Office, under the direction of Christine M.
   Anderson, to develop a GNU/Ada system. The work is being cosponsored
   by ARPA and the Ada Joint Program Office.
   
   The final delivery will be a full Ada 9X implementation with as much
   of the core language and annexes implemented as possible. At final
   delivery, the developers expect to demonstrate to the Ada community a
   reasonably complete and solid implementation of the core language, and
   at least part of the language annexes. This delivery will include full
   sources, and executables for at least the Sun Sparc and PC on OS/2.
   (On PCs, GNAT will need a full 32-bit environment with several
   megabytes of memory.)
   
   There are a number of official GNAT e-mail addresses:
   
   gnat-request@cs.nyu.edu
          Send a message to this address to be placed on our external
          mailing list. We send out progress reports, technical reports,
          digests of technical comments and other information.
          
   gnatchat@cs.nyu.edu
          Send messages to this address for our general consideration.
          Where appropriate, we will digest these comments for
          redistribution to the external mailing list -- unless you
          specifically request that they be considered private.
          
   gnat-report@cs.nyu.edu
          This address is to be used specifically to report problems with
          the currently available version of the GNAT system. Please be
          as specific as possible in reporting problems. Do not report
          missing features for now!
          
   
   
      OS/2 Version
      
   The executables and sources for the OS/2 version of GNAT are split and
   compressed into two files, each of which can fit on one 3.5-inch
   high-density diskette. Although it is possible to install GNAT on an
   OS/2 machine on FAT (MS-DOS-compatble) partition, such an installation
   will not be fully functional. In fact, GNAT does not support
   installations on FAT partitions. You will need about 8.5 MB of free
   disk space after you have copied the appropriate files to your hard
   drive. About half of this amount is taken up by the source code.
   
   In case you want to modify and re-compile GNAT, you will need about 24
   MB of free disk space after you have installed GNAT for OS/2 and
   copied the necessary source files to your hard drive.
   
      Ports
      
   Several ports of GNAT have been produced by volunteers for a number of
   additional platforms (e.g. SPARCStations Solaris 2.1, i386/i486 Linux,
   DECstation (MIPS chip) Ultrix, DOS, SCO Unix). Users should allow time
   for the volunteers to catch up with the new releases.
   
   Note: The DOS version requires installation of DJGPP, DJ Delorie's
   port of GCC, GNU loader (ld), and GNU assembler (as) to DOS. DJGPP
   also includes the GO32 memory extender, which works with both VCPI and
   DPMI standards, which allows working in a Microsoft Window. There is
   information on DJGPP stored together with GNAT.
   
   
4.3: What cheap (<500$) Ada compilers are available?

   What follows is absolutely *not* exhaustive, but inexpensive
   compilers are available, and some vendors offer educational discounts
   or free programs for educational sites. Among those offering
   educational discounts are Alsys, DDC-I, Encore, Harris, IBM, Irvine
   Compiler, Meridian, PSS, Rational, R.R., Tartan, and TeleSoft (now
   part of Alsys).
   
   Meridian: Among choices for inexpensive compilers, Meridian offers one
   for $99. (Meridian Software Systems (A Verdix Company), 205 Van Buren
   Street - 4th floor, Herndon, VA 22070; contact: Gary Newman,
   800/653-2522, 703/318-5810.)
   
   Alsys (US pricing only): FirstAda for 286 DOS is $595. It will run on
   286 and higher, and will generate applications for any x86 PC. Comes
   with a full toolset. Alsys does run specials on it periodically. Call
   Pat Michalowski at 619/457-2700 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.
   
   Rational: Rational provides free software (Rational Apex) to
   accredited educational institutions, including military academies, in
   the United States and Canada. This is under its Software Engineering
   for Educational Development (SEED) program. To receive information on
   the program, send your contact information via e-mail to
   SEED_Info@Rational.com.
   
   R.R. Software: R.R.'s Janus/Ada Professional Development System --
   80386 MS-DOS -- regularly goes for $500. (R.R. Software, P.O. Box
   1512, Madison, WI 53701; contact: Randall Brukardt 608/251-3133;
   e-mail: rbrukardt@bix.com.)
   
   
4.4: Is there an Ada compiler for machine X/operating system Y?

   There are hundreds of Ada compilers available on the market. Some
   answers for Frequently Asked Compilers are listed below. If your
   specific question is not answered here, check the comprehensive list
   of validated Ada compilers.
   
   
    4.4.1: For the Macintosh
    
   Meridian sells a compiler with a Toolbox binding and MPW 3.2. It has
   one limitation for large programs: Packages which contain more than
   32K bytes of data will compile, but not link. It works with System 7,
   and has been reported both as working and not-working on PowerPCs
   (maybe due to a problem with Inits). The interpreter GW/Ada (see
   question 4.2.2) works on all Mac architectures.
   
   
    4.4.2: Native compilers for OS/2
    
   There are several good fully validated compilers. E.g. Alsys has one,
   and has a partial Ada 9X compiler for Windows; RR Software specializes
   in the Intel x86 architecture (AETECH repackages and distributes their
   compilers as IntegrAda) -- and they advertise a partial Ada 9X
   compiler. GNAT is available for OS/2.
   
   
4.5: How can I contact Ada compiler vendors?

   Note: The AdaIC's Validated Compiler List now contains--at the end of
   the list--addresses, including e-mail, for compiler-vendor points of
   contact. Here is a non-exhaustive list (possibly out-of-date, for the
   moment).

Alsys sales (e-mail contact only): tne@world.std.com (Tom Erickson)
Alsys sales (voice) Pat Michalowski
Tel: 619/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

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

Tartan questions: customer-support@tartan.com
Tel: 412/856-3600 (ext 150)

TeleSoft questions: adasupport@alsys.com
(Note that TeleSoft is now part of Alsys.)
Tel: 619/457-2700
TeleSoft Sales: marketng@alsys.com
Tel: 619/457-2700

Verdix questions: drew@verdix.com (Drew Johnson)
Verdix sales information: moskow@verdix.com (Paul Moskowitz)
(Note that Verdix has now merged with Rational.)
Tel: 800-BUY-VADS

   
   
     _________________________________________________________________
   
   
   
5: Organizations that deal with Ada and Ada issues

   
   
5.1: Ada Joint Program Office (AJPO)

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

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

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

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

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

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


   One of the most commonly requested flyers is the Validated Compilers
   List. This list, which is updated monthly, contains Ada compilers that
   have been validated by the AJPO. For the most current information on
   validated Ada compilers, contact the AdaIC.
   
   Practically all AdaIC flyers are available via anonymous FTP from the
   AJPO host, in ftp://ajpo.sei.cmu.edu/public/.
   
   



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

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


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

                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

This is part 1 of a 3-part posting.
Part 2 begins with question 5.2.
Part 3 begins with question 9.2.
They should be the next postings in this thread.

Introduction

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, etc. All Ada compilers must pass a
   validation test.
   
   Ada is defined by an international standard (the language reference
   manual, or LRM). Ada is in use around the world (not just in the USA).
   
   
   NOTE: This document now has a home on the Ada WWW Server, in hypertext
   format (URL http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html).
   
Maintenance

   For the past year or so, the comp.lang.ada FAQ has been maintained by
   the Ada Information Clearinghouse (cla-faq@ajpo.sei.cmu.edu); prior to
   that, it was maintained on an individual volunteer basis.
   
   This FAQ is now again maintained on an individual volunteer basis, by
   Magnus Kempe (Magnus.Kempe@di.epfl.ch). [Note: This is done as a
   hobby, not in my capacity as an employee at the Swiss Federal
   Institute of Technology. --MK]
   
   The AdaIC has announced it will maintain its own FAQ pointing to Ada
   items available on the Ada Joint Program Office's host. In the
   meantime, this FAQ still contains pointers to AJPO and AdaIC material.
   
   
   
     _________________________________________________________________
   
   Report of a product, service, or event, etc., does not constitute an
   endorsement. Opinions (if any) expressed are those of the submitters
   and/or maintainer.
     _________________________________________________________________
   
   
   
Table of Contents:

   
     * 1: Recent changes to the FAQ
     * 2: Information about this document
     * 3: Elementary questions
          + 3.1: What is Ada?
               o 3.1.1: Where can I get other information on Ada?
          + 3.2: I have seen the language name capitalized as ADA, as
            well as Ada. Which is right?
          + 3.3: What is Ada 9X?
               o 3.3.1: Are there already Ada 9X books?
          + 3.4: Is Ada a registered trademark (TM) of the US government?
          + 3.5: Where can I find an electronic version of the Ada
            language reference manual (LRM)?
          + 3.6: Is Ada used in commercial applications?
          + 3.7: How do I do [choose_a_goal] in Ada?
          + 3.8: I think Ada could really benefit from having
            [choose_a_feature] from [choose_a_language] ...
          + 3.9: 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?
          + 3.10: I very strongly agree/disagree with the Ada mandate (or
            a post dealing with it). Why doesn't anyone praise/criticize
            it? Should I?
          + 3.11: I don't have FTP service on the host where I have an
            account. Is there any other way I can access FTP sites?
               o 3.11.1: The AJPO host has a special e-mail service for
                 FTP.
     * 4: Compilers
          + 4.1: Is there a list of validated Ada compilers?
          + 4.2: Is there a public-domain/free/shareware Ada compiler or
            interpreter?
               o 4.2.1: Ada/Ed -- An Interpreter for Ada 83 
               o 4.2.2: GW-Ada/Ed -- a souped-up version of Ada/Ed for
                 386/486 DOS and Macintosh machines
               o 4.2.3: GNAT, The GNU NYU Ada Translator -- An Ada 9X
                 Compiler
          + 4.3: What cheap (<500$) Ada compilers are available?
          + 4.4: Is there an Ada compiler for common machine X/common
            operating system Y?
               o 4.4.1: on the Macintosh?
               o 4.4.2: native for OS/2?
          + 4.5: How can I contact Ada compiler vendor?
     * 5: Organizations that deal with Ada and Ada issues
          + 5.1: Ada Joint Program Office (AJPO)
          + 5.2: Ada Information Clearinghouse (AdaIC)
          + 5.3: ACM/SIGAda
          + 5.4: ISO WG 9
     * 6: Tools
          + 6.1: Is there an Ada-mode for Emacs?
          + 6.2: Are there versions of lex and yacc that generate Ada
            code?
          + 6.3: Where can I get a yacc/ayacc grammar to read Ada code?
          + 6.4: What is Anna, and where can I get it?
          + 6.5: What is DRAGOON, and where can I get it?
          + 6.6: Where can I get language translators? And should I?
          + 6.7: What is ASIS?
               o 6.7.1: How can I get hold of ASIS?
               o 6.7.2: How can I find out more about ASIS? and Can I
                 take part in its development?
     * 7: Bindings
          + 7.1: General
          + 7.2: POSIX
               o 7.2.1: What is the status of the POSIX/Ada work?
               o 7.2.2: How can I get a copy of POSIX/Ada?
               o 7.2.3: Is POSIX/Ada available via FTP?
          + 7.3: X Window System
     * 8: Is there a list of good Ada books?
     * 9: Resources
          + 9.1: What FTP sites exist that contain information about Ada
            or Ada source?
          + 9.2: Reuse
               o 9.2.1: Are there any free, public-domain, or other
                 general-access software repositories that contain Ada
                 source code and information on reuse?
               o 9.2.2: Is there a database of reusable Ada software
                 components?
          + 9.3: Where can I get Ada benchmark programs?
          + 9.4: Are there any dial-up BBS systems that deal with Ada?
     * 10: Credits
     * 11: Copying this FAQ
       
   
   
   
     _________________________________________________________________
   
   
   
1: Recent changes to the FAQ

   
     * 10/19: How do I do [choose_a_goal] in Ada?
     * 10/10: Updated the list of Ada books.
     * 09/16: How to access FTP by email.
     * 08/31: What is Ada, and where can one get more information?
     * 08/30: Ada 9X books.
     * 08/18: added an explicit copyright statement.
     * 08/17: love/hatred of the Ada mandate.
     * 08/16: where are yacc grammars for Ada?
     * 08/16: where are electronic versions of the Ada LRM?
     * 08/15: made into a hypertext version to browse on WWW.
     * 08/15: is there an Ada compiler for common machine X/common
       operating system Y?
     * 08/15: pointer to list of reusable components.
     * 08/12: references to network resources now follow the URL
       convention.
     * 08/12: completely revised the structure.
     * July: new maintainer.
       
   
   
   What's important and missing:
     * description of the ACVC.
     * CD-ROMs.
     * list of regular Ada-related events.
     * the companion Ada Programming FAQ (under construction).
       
   
   
     _________________________________________________________________
   
   
   
2: Information about this document

   This file has been posted to comp.lang.ada (and submitted for
   approval on comp.answers and news.answers).
   
   This document has a home on the Ada WWW Server, in hypertext format
   (URL http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html). The text-only
   version is also available in ftp://lglftp.epfl.ch/pub/Ada/FAQ.
   
   A previous version of the FAQ is still available for downloading via
   anonymous FTP from the AJPO host (ajpo.sei.cmu.edu), in
   ftp://ajpo.sei.cmu.edu/public/comp-lang-ada (files cla-faq1 and
   cla-faq2).
   
   (When posted again in *.answers, it will also be available on
   rtfm.mit.edu, which archives FAQ files posted to news.answers; for the
   old version, see
   ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/comp-lang-ada/.)
   
   
   For notes on FTP, or the lack thereof, see question 3.10, describing
   how to use FTP by e-mail.
   
   Magnus Kempe maintains this document; it's not a job, it's a hobby.
   Feedback (corrections, suggestions, ideas) about it is to be sent via
   e-mail to magnus.kempe@di.epfl.ch. Thanks.
   
   In all cases, the most up-to-date version of the FAQ is the version
   maintained on the Ada WWW Server. Please excuse any formatting
   inconsistencies in the posted, text-only version of this document, as
   it is automatically generated from the on-line, hypertext version.
   
     _________________________________________________________________
   
   
   
3: Elementary questions

   
   
3.1: What is Ada?

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, et caetera. All Ada compilers must pass a
   validation test.
   
   
    3.1.1: Where can I get other information on Ada?
    
   If you have questions which this FAQ does not answer, you may contact
   the Ada Information Clearinghouse (see below, question 5.2), use the
   Usenet newsgroup comp.lang.ada, read the Ada Yearbook published by Ada
   UK, or the Ada Resources published by the ACM.
   
   To find out more, you may also use the Ada WWW Server, URL
   http://lglwww.epfl.ch/Ada/, which has a companion FAQ:
   Ada/ada-www-server (also regularly posted to comp.lang.ada).
   
   I encourage you to check out the changes listed early in the document
   each time this FAQ is posted.
   
   
3.2: I have seen the language name capitalized as ADA, as well as Ada. Which
is right?

   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 this forum
   is not devoted to the American Dental Association :-).
   
   In addition, ISO and IEEE recommend as a general guideline to spell
   like proper names the language names that are pronounced as they are
   spelled (e.g. Ada, Pascal, Cobol, Basic, Fortran). Note: that a name
   originally resulted from abbreviation is considered irrelevant. For
   language names that are phonetically spelled (e.g. C, C++, APL, PL/1),
   they should be spelled in all uppercase.
   
   
3.3: What is Ada 9X?

   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 documents are available for
   downloading from the ftp://ajpo.sei.cmu.edu/public/ada9x/ directory on
   the AJPO host (see question 9.1, FTP sites for more information.) For
   further information, contact the Ada 9X Project Office, PL/VTES,
   Kirtland AFB, New Mexico 87117-5776.
   
   Ada 9X includes four major areas of enhancement: support for
   object-oriented programming, data-oriented synchronization,
   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 is also a (still partial) GNU Ada 9X compilation system (GNAT)
   available since late 1993. (See question 4.2.3.)
   
   
    3.3.1: Are there already Ada 9X books?
    
   The Ada 9X Rationale explains how to use the new mechanisms of the
   language; it is quite readable. The new Reference Manual is THE
   reference, of course. The Annotated Reference Manual provides detailed
   explanations of the rules of the language (good for implementors and
   language lawyers). All three are available by FTP from the AJPO host,
   in ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x (v5.0).
   
   There are also a few commercial books which have sections on Ada 9X or
   have integrated the revised definition of the language into their
   presentation:
     * J. Barnes. Programming in Ada: Plus an Overview of Ada 9X.
       Addison Wesley. Price $43.25. ISBN 0-201-62407-9.
     * G. Booch and D. Bryan. Software Engineering with Ada.
       3rd ed., Benjamin/Cummings, 1994. ISBN 0-8053-0608-0.
     * Naiditch. Rendez-vous with Ada 9X.
       2nd ed., John Wiley & Sons, Inc. Price $44.95. ISBN 0-471-01276-9.
     * J. Skansholm. Ada From the Beginning.
       2nd ed., Addison-Wesley
       
   
   
   
3.4: Is Ada a registered trademark (TM) of the US government?

   No, but it used to be; there is 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
   on the AJPO host, in
   ftp://ajpo.sei.cmu.edu/public/policy/trademrk.txt.
   
   
3.5: Where can I find an electronic version of the Ada reference manual (LRM)?


   The Ada 83 LRM is available in plain ASCII files in
   ftp://ajpo.sei.cmu.edu/public/lrm/.
   
   The Ada 9X Draft RM is available in plain ASCII and Postscript files
   in ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x/.
   
   Both Ada 83 and Ada 9X reference manuals exist in hypertext format,
   accessible through the Ada WWW Server (see the companion FAQ:
   Ada/ada-www-server).
   
   
3.6: Is Ada used in commercial applications?

   Yes. Ada is used in e.g. airplanes, air traffic control systems,
   financial systems, telecommunications systems, medical devices.
     * The AJPO host on the Internet contains a report of Commercial Ada
       Users Working Group (CAUWG) of the Association for Computing
       Machinery's Special Interest Group on Ada (ACM SIGAda). Dated June
       1993, the report is a survey of applications from around the world
       that are written in Ada. It is in
       ftp://ajpo.sei.cmu.edu/public/document/cauwg.txt.
       
     * 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. For details on
       contacting the AdaIC, see question 5.2.
       
     * On the AJPO host, the ftp://ajpo.sei.cmu.edu/public/usage/
       directory contains a summary of the Ada Usage Database and a
       number of individual project descriptions that may be of interest.
       
   
   
   
3.7: How do I do [choose_a_goal] in Ada?

   This kind of question often revolves around an issue which is
   dependent on a specific implementation or operating system. Thus, in
   order to improve the odds of getting a useful answer, one should
   indicate what the host and target environments are (Ada vendor,
   compiler version, OS version, machine). Ada implementations normally
   come with a vendor-supplied library which provides hooks to the
   environment (operating system, graphics, etc.); check the
   documentation.
   
   Even in the case of things that are in the language, there are
   implementation dependencies that make it helpful to always have this
   information at hand if people want the most effective help. Note that
   annex F requires "the reference manual of each Ada implementation" to
   "include an appendix (called Appendix F) that describes all
   implementation-dependent characteristics."
   
   
3.8: I think Ada could really benefit from having [choose_a_feature] from
[choose_a_language],
or:
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 language wars and only
   waste 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?"
   
   
3.9: 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 the preceding
   question, 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 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.
   
   
3.10: I very strongly agree/disagree with the Ada mandate. Should I
praise/criticize it?

   First, it is a fact that there is an Ada standard, on which the US
   DoD is aligned (the so-called "mandate"). No shouting match will
   change that. Second, don't believe rumors (about the mandate, its
   withdrawal, its being ignored, etc.) you read in comp.lang.ada, unless
   you have reasons to (i.e. you know the author is trustworthy, or the
   author provides references which you can check, and which you have
   checked yourself at least a couple of times.)
   
   For your information, here is the text of "Public Law 101-511 Sec
   8092":
   
     Notwithstanding any other provisions of law, after June 1, 1991,
     where cost effective, all Department of Defense software shall be
     written in the programming language Ada, in the absence of special
     exemption by an official designated by the Secretary of Defense.
     
    What about discussing the US Ada mandate?
    
   If you want to argue either for or against US Government Ada policies
   please restrict your postings to "usa" (field "Distribution:").
   Remember that Ada is an international standard, but the US mandate is
   not an international issue.
   
   Praise of the mandate is usually based on the ideas that a) it is
   better to have one language than 1500 obscure, proprietary languages
   for all DoD-owned non-COTS systems, and b) Ada is a good software
   engineering language, especially when it comes to maintenance.
   
   Criticism of the mandate is usually based on the ideas that a) a good
   language should not need a mandate (which ignores the fact that before
   standardizing on Ada the DoD had to maintain for 20+ years software
   written in 1500 obscure, proprietary programming languages--which is
   hard and costly), b) the mandate is mostly ineffective, since either
   it is ignored, or too many waivers are granted, or none is necessary
   (a policy issue which will in all likelihood NOT be resolved by
   discussions on comp.lang.ada), and c) no programming language is the
   most appropriate for every problem (true, but
   irrelevant--standardizing on a single good language for all DoD
   development and maintenance is practical, economical, and much better
   than not standardizing at all).
   
   Finally, whenever you see a message criticizing the Ada language (or
   Ada companies) for losing completely both in the market and under the
   mandate, check the facts for yourself. For the most part, the Ada
   mandate is enforced; in many critical, commercial systems, Ada is the
   language of choice and its adoption a success; in the slowly-changing
   competition of programming languages, FORTRAN and COBOL dominate, and
   Smalltalk, C++, Eiffel, and Ada are all slowly growing. Ada is
   (finally, and we hope seriously) penetrating academia. There is a GNU
   Ada 9X compiler available. And remember that Ada 9X will be the first
   standardized object-oriented programming language.
   
   If you have some new, additional facts, with approriate references so
   that everyone can check for himself, then posting on a mandate-related
   issue is OK. If NOT, then refrain from posting. PLEASE, if someone
   starts a non-factual discussion, the best policy is simply to ignore
   it or, if you have to, you may reply by private e-mail. Try to hold
   the same standards as you would in discussing problem-solving with the
   programming language itself, and put your information in a way which
   encourages positive action; criticism of inefficiency and/or
   ineptitude is fine, as long as it is honest, documented, and polite.
   
   
3.11: I don't have FTP service on the host where I have an account. Is there
any other way I can access FTP sites?

   If you are not connected to the Internet but do send and receive
   email from the net, you can use an "ftp by mail" agent, such as
   ftpmail, which is provided by DEC's Western Research Labs (DECWRL).
   The mail server may be reached by sending a mail message to
   uucp!decwrl!ftpmail or ftpmail@decwrl.dec.com .
   
   Complete instructions for using ftpmail may be retrieved with a
   message to the above address with subject "ftpmail" and the single
   word "help" as the text of your message. Example query:

To: ftpmail@decwrl.dec.com
Subject: ftpmail

help

   
   
   
3.11.1: The AJPO host has a special e-mail service for FTP.

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

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

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

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

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

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

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

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

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

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

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

Subject: directory compiler

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

Subject: directory p*

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

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

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

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

Subject: file-request compiler/README

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

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

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

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

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

Here is a brief description of the available services:

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

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

help:         This service returns this help message.

info:         This service returns this help message.

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

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

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

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

   
   
     _________________________________________________________________
   
   
   
4: Compilers

   
   
4.1: Is there a list of validated Ada compilers?

   
   
   Yes, indeed, there is. The latest list can be retrieved by anonymous
   FTP. It is in ftp://ajpo.sei.cmu.edu/public/compiler/val-comp.txt (a
   PostScript version is also available in
   ftp://ajpo.sei.cmu.edu/public/compiler/val-comp.ps). If the list is
   updated during the month, the previous one is replaced.
   
   
4.2: Is there a public-domain/free/shareware Ada compiler or interpreter?

   There ARE free Ada systems, and there is a choice: Ada/Ed for Ada 83,
   and GNAT for Ada 9X.
   
   (Strictly speaking these are NOT "public-domain". They are
   "free"--under copyright conditions known as "GNU Copyleft". In short:
   there is no warranty, and you are allowed to copy, modify, and
   distribute them; but you can't charge anyone for the software itself,
   and if the software (necessarily including source code) is further
   distributed, it must be done under the same conditions--i.e. copyable,
   with sources and modifications, available to everyone else, etc.)
   
   
    4.2.1: Ada/Ed -- An Interpreter for Ada 83
    
   Ada/Ed is available for PCs, Unix-based machines, Amiga, and Atari
   systems. The Ada/Ed interpreter for Ada 83 is available from the New
   York University host, in ftp://cs.nyu.edu/pub/adaed/ (Internet address
   128.122.140.24). There you will find a version for UNIX-based
   machines, and a version for 386/486 DOS machines.
   
   Ada/Ed is a translator-interpreter for Ada. It is intended as a
   teaching tool, and does not have the capacity, performance, or
   robustness of commercial Ada compilers. Ada/Ed was developed at New
   York University, as part of a long-range project in language
   definition and software prototyping. The project produced the first
   validated translator for Ada, in the form of an executable definition
   of the language written in SETL. The SETL system served as design
   document and prototype for the C version.
   
   Ada/Ed was last validated under version 1.7 of the ACVC tests.
   Therefore it is not currently a validated Ada system, and users can
   expect to find small discrepancies between Ada/Ed and currently
   validated compilers.
   
   Apart from the 100-odd tests of ACVC 1.11 that Ada/Ed currently fails,
   the major deficiency of the system is that, being an interpreter, it
   does not implement most representation clauses, and thus does not
   support systems programming close to the machine level.
   
   
    4.2.2: GW-Ada/Ed -- a souped-up version of Ada/Ed for 386/486 DOS and
    Macintosh machines
    
   GW-Ada/Ed is available from the PAL, by anonymous FTP; it is in
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/adaed/gwu/. The
   files are located in subdirectories "dos" and "mac".
   
   This project was sponsored by The George Washington University, and in
   part by the United States Advanced Research Projects Agency (ARPA).
   
   This distribution contains the executables for GWAda, which consists
   of the NYU Ada/Ed translator/interpreter system together with an
   integrated editor developed by Prof. Arthur Vargas Lopes of the
   Pontifical University at Porto Alegre, Brazil. Lopes began his work on
   GWAda while he was a doctoral student at The George Washington
   University. There is also in the DOS version a very nice extended
   runtime facility, with interesting kinds of source tracing.
   
   GWAda is being freely distributed at no charge. In the near future the
   developers will make the source code available under the GNU General
   Public License. Source code is not being provided because the system
   is still in the developmental stage. Source code for Ada/Ed itself is
   available from NYU (see above) and from PAL (see questions 9.1 and
   9.3).
   
   Note that under DOS you do not have to use the GWAda integrated
   environment, but can execute the various parts of NYU Ada/Ed from the
   DOS command line, as described in the NYU instructions.
   
   System requirements:
     * IBM PC Compatible, 386 or 486, running MS-DOS or PC-DOS, with at
       least 3.6 MB available extended memory, and at least 5 MB free
       hard-disk space.
       
     * Mac with a 68030 or 68040 processor, System 7, with at least 4 MB
       of RAM, and around 10 MB free hard-disk space.
       
   
   
   
    4.2.3: GNAT, The GNU NYU Ada Translator -- An Ada 9X Compiler
    
   GNAT is available from the New York University host, in
   ftp://cs.nyu.edu/pub/gnat/. There are versions for UNIX-based
   systems (Sun, DEC, IBM, Next, ...), and versions for DOS, OS/2, and NT
   386/486 systems. Usually the latest version is made available for both
   Sun SPARC (SunOS 4.1) and OS/2 systems.
   
   It is also available in the Public Ada Library (PAL -- formerly the
   Ada Software Repository), under
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/gnat/ (Internet
   address: 128.252.135.4). A mirror site of the PAL also carries GNAT:
   ftp://ftp.cdrom.com/pub/languages/ada/compiler/gnat/.
   
   You can also get a copy from the AdaIC Bulletin Board. But this is a
   dial-up operation (703/614-0215), and since the files sizes are large,
   connect times may be lengthy. The bulletin board is best used as a
   back-up source for those who don't have Internet/FTP access.
   
      General
      
   (excerpted from "Free Source Code for GNAT 9X Compiler to be Available
   on Internet", by Robert Dewar and Edmond Schonberg, New York
   University, Ada Information Clearinghouse Newsletter August 1993)
   
   The Computer Science Department of the Courant Institute of
   Mathematical Sciences at New York University received a contract from
   the Ada 9X Project Office, under the direction of Christine M.
   Anderson, to develop a GNU/Ada system. The work is being cosponsored
   by ARPA and the Ada Joint Program Office.
   
   The final delivery will be a full Ada 9X implementation with as much
   of the core language and annexes implemented as possible. At final
   delivery, the developers expect to demonstrate to the Ada community a
   reasonably complete and solid implementation of the core language, and
   at least part of the language annexes. This delivery will include full
   sources, and executables for at least the Sun Sparc and PC on OS/2.
   (On PCs, GNAT will need a full 32-bit environment with several
   megabytes of memory.)
   
   There are a number of official GNAT e-mail addresses:
   
   gnat-request@cs.nyu.edu
          Send a message to this address to be placed on our external
          mailing list. We send out progress reports, technical reports,
          digests of technical comments and other information.
          
   gnatchat@cs.nyu.edu
          Send messages to this address for our general consideration.
          Where appropriate, we will digest these comments for
          redistribution to the external mailing list -- unless you
          specifically request that they be considered private.
          
   gnat-report@cs.nyu.edu
          This address is to be used specifically to report problems with
          the currently available version of the GNAT system. Please be
          as specific as possible in reporting problems. Do not report
          missing features for now!
          
   
   
      OS/2 Version
      
   The executables and sources for the OS/2 version of GNAT are split and
   compressed into two files, each of which can fit on one 3.5-inch
   high-density diskette. Although it is possible to install GNAT on an
   OS/2 machine on FAT (MS-DOS-compatble) partition, such an installation
   will not be fully functional. In fact, GNAT does not support
   installations on FAT partitions. You will need about 8.5 MB of free
   disk space after you have copied the appropriate files to your hard
   drive. About half of this amount is taken up by the source code.
   
   In case you want to modify and re-compile GNAT, you will need about 24
   MB of free disk space after you have installed GNAT for OS/2 and
   copied the necessary source files to your hard drive.
   
      Ports
      
   Several ports of GNAT have been produced by volunteers for a number of
   additional platforms (e.g. SPARCStations Solaris 2.1, i386/i486 Linux,
   DECstation (MIPS chip) Ultrix, DOS, SCO Unix). Users should allow time
   for the volunteers to catch up with the new releases.
   
   Note: The DOS version requires installation of DJGPP, DJ Delorie's
   port of GCC, GNU loader (ld), and GNU assembler (as) to DOS. DJGPP
   also includes the GO32 memory extender, which works with both VCPI and
   DPMI standards, which allows working in a Microsoft Window. There is
   information on DJGPP stored together with GNAT.
   
   
4.3: What cheap (<500$) Ada compilers are available?

   What follows is absolutely *not* exhaustive, but inexpensive
   compilers are available, and some vendors offer educational discounts
   or free programs for educational sites. Among those offering
   educational discounts are Alsys, DDC-I, Encore, Harris, IBM, Irvine
   Compiler, Meridian, PSS, Rational, R.R., Tartan, and TeleSoft (now
   part of Alsys).
   
   Meridian: Among choices for inexpensive compilers, Meridian offers one
   for $99. (Meridian Software Systems (A Verdix Company), 205 Van Buren
   Street - 4th floor, Herndon, VA 22070; contact: Gary Newman,
   800/653-2522, 703/318-5810.)
   
   Alsys (US pricing only): FirstAda for 286 DOS is $595. It will run on
   286 and higher, and will generate applications for any x86 PC. Comes
   with a full toolset. Alsys does run specials on it periodically. Call
   Pat Michalowski at 619/457-2700 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.
   
   Rational: Rational provides free software (Rational Apex) to
   accredited educational institutions, including military academies, in
   the United States and Canada. This is under its Software Engineering
   for Educational Development (SEED) program. To receive information on
   the program, send your contact information via e-mail to
   SEED_Info@Rational.com.
   
   R.R. Software: R.R.'s Janus/Ada Professional Development System --
   80386 MS-DOS -- regularly goes for $500. (R.R. Software, P.O. Box
   1512, Madison, WI 53701; contact: Randall Brukardt 608/251-3133;
   e-mail: rbrukardt@bix.com.)
   
   
4.4: Is there an Ada compiler for common machine X/common operating system Y?

   There are hundreds of Ada compilers available on the market. Some
   answers for Frequently Asked Compilers are listed below. If your
   specific question is not answered here, check the comprehensive list
   of validated Ada compilers (see 4.1).
   
   
    4.4.1: For the Macintosh
    
   Meridian sells a compiler with a Toolbox binding and MPW 3.2. It has
   one limitation for large programs: Packages which contain more than
   32K bytes of data will compile, but not link. It works with System 7,
   and has been reported both as working and not-working on PowerPCs
   (maybe due to a problem with Inits). The interpreter GW/Ada (see
   question 4.2.2) works on all Mac architectures.
   
   
    4.4.2: Native compilers for OS/2
    
   There are several good fully validated compilers. E.g. Alsys has one,
   and has a partial Ada 9X compiler for Windows; RR Software specializes
   in the Intel x86 architecture (AETECH repackages and distributes their
   compilers as IntegrAda) -- and they advertise a partial Ada 9X
   compiler. GNAT is available for OS/2.
   
   
4.5: How can I contact Ada compiler vendors?

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

Alsys sales (e-mail contact only): tne@world.std.com (Tom Erickson)
Alsys sales (voice) Pat Michalowski
Tel: 619/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

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

Tartan questions: customer-support@tartan.com
Tel: 412/856-3600 (ext 150)

TeleSoft questions: adasupport@alsys.com
(Note that TeleSoft is now part of Alsys.)
Tel: 619/457-2700
TeleSoft Sales: marketng@alsys.com
Tel: 619/457-2700

Verdix questions: drew@verdix.com (Drew Johnson)
Verdix sales information: moskow@verdix.com (Paul Moskowitz)
(Note that Verdix has now merged with Rational.)
Tel: 800-BUY-VADS

   
   
     _________________________________________________________________
   
   
   
5: Organizations that deal with Ada and Ada issues

   
   
5.1: Ada Joint Program Office (AJPO)

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

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

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




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

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


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

                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

This is part 1 of a 3-part posting.
Part 2 begins with question 5.
Part 3 begins with question 9.
They should be the next postings in this thread.


Introduction

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, etc. All Ada compilers must pass a
   validation test.
   
   Ada is defined by an international standard (the language reference
   manual, or LRM). Ada is in use around the world (not just in the USA).
   
   
   NOTE: This document now has a home on the Ada WWW Server, in hypertext
   format (URL http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html).
   
Maintenance

   For the past year or so, the comp.lang.ada FAQ has been maintained by
   the Ada Information Clearinghouse (cla-faq@ajpo.sei.cmu.edu); prior to
   that, it was maintained on an individual volunteer basis.
   
   This FAQ is now again maintained on an individual volunteer basis, by
   Magnus Kempe (Magnus.Kempe@di.epfl.ch). [Note: This is done as a
   hobby, not in my capacity as an employee at the Swiss Federal
   Institute of Technology. --MK]
   
   The AdaIC has announced it will maintain its own FAQ pointing to Ada
   items available on the Ada Joint Program Office's host. In the
   meantime, this FAQ still contains pointers to AJPO and AdaIC material.
   
   
   
     _________________________________________________________________
   
   Report of a product, service, or event, etc., does not constitute an
   endorsement. Opinions (if any) expressed are those of the submitters
   and/or maintainer.
     _________________________________________________________________
   
   
   
Table of Contents:

   
     * 1: Recent changes to the FAQ
     * 2: Information about this document
     * 3: Elementary questions
          + 3.1: What is Ada?
               o 3.1.1: Where can I get other information on Ada?
          + 3.2: I have seen the language name capitalized as ADA, as
            well as Ada. Which is right?
          + 3.3: What is Ada 9X?
               o 3.3.1: Are there already Ada 9X books?
          + 3.4: Is Ada a registered trademark (TM) of the US government?
          + 3.5: Where can I find an electronic version of the Ada
            language reference manual (LRM)?
          + 3.6: Is Ada used in commercial applications?
          + 3.7: How do I do [choose_a_goal] in Ada?
          + 3.8: I think Ada could really benefit from having
            [choose_a_feature] from [choose_a_language] ...
          + 3.9: 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?
          + 3.10: I very strongly agree/disagree with the Ada mandate (or
            a post dealing with it). Why doesn't anyone praise/criticize
            it? Should I?
          + 3.11: I don't have FTP service on the host where I have an
            account. Is there any other way I can access FTP sites?
               o 3.11.1: The AJPO host has a special e-mail service for
                 FTP.
     * 4: Compilers
          + 4.1: Is there a list of validated Ada compilers?
          + 4.2: Is there a public-domain/free/shareware Ada compiler or
            interpreter?
               o 4.2.1: Ada/Ed -- An Interpreter for Ada 83 
               o 4.2.2: GW-Ada/Ed -- a souped-up version of Ada/Ed for
                 386/486 DOS and Macintosh machines
               o 4.2.3: GNAT, The GNU NYU Ada Translator -- An Ada 9X
                 Compiler
          + 4.3: What cheap (<500$) Ada compilers are available?
          + 4.4: Is there an Ada compiler for common machine X/common
            operating system Y?
               o 4.4.1: on the Macintosh?
               o 4.4.2: native for OS/2?
          + 4.5: How can I contact Ada compiler vendor?
     * 5: Organizations that deal with Ada and Ada issues
          + 5.1: Ada Joint Program Office (AJPO)
          + 5.2: Ada Information Clearinghouse (AdaIC)
          + 5.3: ACM/SIGAda
          + 5.4: ISO WG 9
     * 6: Tools
          + 6.1: Is there an Ada-mode for Emacs?
          + 6.2: Are there versions of lex and yacc that generate Ada
            code?
          + 6.3: Where can I get a yacc/ayacc grammar to read Ada code?
          + 6.4: What is Anna, and where can I get it?
          + 6.5: What is DRAGOON, and where can I get it?
          + 6.6: Where can I get language translators? And should I?
          + 6.7: What is ASIS?
               o 6.7.1: How can I get hold of ASIS?
               o 6.7.2: How can I find out more about ASIS? and Can I
                 take part in its development?
     * 7: Bindings
          + 7.1: General
          + 7.2: POSIX
               o 7.2.1: What is the status of the POSIX/Ada work?
               o 7.2.2: How can I get a copy of POSIX/Ada?
               o 7.2.3: Is POSIX/Ada available via FTP?
          + 7.3: X Window System
     * 8: Is there a list of good Ada books?
     * 9: Resources
          + 9.1: What FTP sites exist that contain information about Ada
            or Ada source?
          + 9.2: Reuse
               o 9.2.1: Are there any free, public-domain, or other
                 general-access software repositories that contain Ada
                 source code and information on reuse?
               o 9.2.2: Is there a database of reusable Ada software
                 components?
          + 9.3: Where can I get Ada benchmark programs?
          + 9.4: Are there any dial-up BBS systems that deal with Ada?
     * 10: Credits
     * 11: Copying this FAQ
       
   
   
   
     _________________________________________________________________
   
   
   
1: Recent changes to the FAQ

   
     * 941219: added Nebbe's rule.
     * 941219: fixed ftp URLs.
     * 941209: How to contact vendors.
     * 941019: How do I do [choose_a_goal] in Ada?
     * 941010: Updated the list of Ada books.
     * 940916: How to access FTP by email.
     * 940831: What is Ada, and where can one get more information?
     * 940830: Ada 9X books.
     * 940818: added an explicit copyright statement.
     * 940817: love/hatred of the Ada mandate.
     * 940816: where are yacc grammars for Ada?
     * 940816: where are electronic versions of the Ada LRM?
     * 940815: made into a hypertext version to browse on WWW.
     * 940815: is there an Ada compiler for common machine X/common
       operating system Y?
     * 940815: pointer to list of reusable components.
     * 940812: references to network resources now follow the URL
       convention.
     * 940812: completely revised the structure.
     * 9408: new maintainer.
       
   
   
   What's important and missing:
     * description of the ACVC.
     * CD-ROMs.
     * list of regular Ada-related events.
       
   
   
     _________________________________________________________________
   
   
   
2: Information about this document

   This file has been posted to comp.lang.ada (and submitted for
   approval on comp.answers and news.answers).
   
   This document has a home on the Ada WWW Server, in hypertext format
   (URL http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html). The text-only
   version is also available in directory
   ftp://lglftp.epfl.ch/pub/Ada/FAQ.
   
   A previous version of the FAQ is still available for downloading via
   anonymous FTP from the AJPO host (ajpo.sei.cmu.edu), in directory
   ftp://ajpo.sei.cmu.edu/public/comp-lang-ada (files cla-faq1 and
   cla-faq2).
   
   (When posted again in *.answers, it will also be available on
   rtfm.mit.edu, which archives FAQ files posted to news.answers; for the
   old version, see directory
   ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/comp-lang-ada.)
   
   For notes on FTP, or the lack thereof, see question 3.10, describing
   how to use FTP by e-mail.
   
   Magnus Kempe maintains this document; it's not a job, it's a hobby.
   Feedback (corrections, suggestions, ideas) about it is to be sent via
   e-mail to magnus.kempe@di.epfl.ch. Thanks.
   
   In all cases, the most up-to-date version of the FAQ is the version
   maintained on the Ada WWW Server. Please excuse any formatting
   inconsistencies in the posted, text-only version of this document, as
   it is automatically generated from the on-line, hypertext version.
   
     _________________________________________________________________
   
   
   
3: Elementary questions

   
   
3.1: What is Ada?

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, et caetera. All Ada compilers must pass a
   validation test.
   
   
    3.1.1: Where can I get other information on Ada?
    
   If you have questions which this FAQ does not answer, you may contact
   the Ada Information Clearinghouse (see below, question 5.2), use the
   Usenet newsgroup comp.lang.ada, read the Ada Yearbook published by Ada
   UK, or the Ada Resources published by the ACM.
   
   To find out more, you may also use the Ada WWW Server, URL
   http://lglwww.epfl.ch/Ada/, which has a companion FAQ:
   Ada/ada-www-server (also regularly posted to comp.lang.ada).
   
   I encourage you to check out the changes listed early in the document
   each time this FAQ is posted.
   
   
3.2: I have seen the language name capitalized as ADA, as well as Ada. Which
is right?

   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 this forum
   is not devoted to the American Dental Association :-).
   
   In addition, ISO and IEEE recommend as a general guideline to spell
   like proper names the language names that are pronounced as they are
   spelled (e.g. Ada, Pascal, Cobol, Basic, Fortran). Note: that a name
   originally resulted from abbreviation is considered irrelevant. For
   language names that are phonetically spelled (e.g. C, C++, APL, PL/1),
   they should be spelled in all uppercase.
   
   
3.3: What is Ada 9X?

   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 documents are available for
   downloading from directory ftp://ajpo.sei.cmu.edu/public/ada9x on the
   AJPO host (see question 9.1, FTP sites for more information.) For
   further information, contact the Ada 9X Project Office, PL/VTES,
   Kirtland AFB, New Mexico 87117-5776.
   
   Ada 9X includes four major areas of enhancement: support for
   object-oriented programming, data-oriented synchronization,
   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 is also a (still partial) GNU Ada 9X compilation system (GNAT)
   available since late 1993. (See question 4.2.3.)
   
   
    3.3.1: Are there already Ada 9X books?
    
   The Ada 9X Rationale explains how to use the new mechanisms of the
   language; it is quite readable. The new Reference Manual is THE
   reference, of course. The Annotated Reference Manual provides detailed
   explanations of the rules of the language (good for implementors and
   language lawyers). All three are available by FTP from the AJPO host,
   in directory ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x (v5.0).
   
   There are also a few commercial books which have sections on Ada 9X or
   have integrated the revised definition of the language into their
   presentation:
     * J. Barnes. Programming in Ada: Plus an Overview of Ada 9X.
       Addison Wesley. Price $43.25. ISBN 0-201-62407-9.
     * G. Booch and D. Bryan. Software Engineering with Ada.
       3rd ed., Benjamin/Cummings, 1994. ISBN 0-8053-0608-0.
     * Naiditch. Rendez-vous with Ada 9X.
       2nd ed., John Wiley & Sons, Inc. Price $44.95. ISBN 0-471-01276-9.
     * J. Skansholm. Ada From the Beginning.
       2nd ed., Addison-Wesley
       
   
   
   
3.4: Is Ada a registered trademark (TM) of the US government?

   No, but it used to be; there is 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
   on the AJPO host, in
   ftp://ajpo.sei.cmu.edu/public/policy/trademrk.txt.
   
   
3.5: Where can I find an electronic version of the Ada reference manual (LRM)?


   The Ada 83 LRM is available in plain ASCII files in directory
   ftp://ajpo.sei.cmu.edu/public/lrm.
   
   The Ada 9X Draft RM is available in plain ASCII and Postscript files
   in directory ftp://ajpo.sei.cmu.edu/public/ada9x/rm9x.
   
   Both Ada 83 and Ada 9X reference manuals exist in hypertext format,
   accessible through the Ada WWW Server (see the companion FAQ:
   Ada/ada-www-server).
   
   
3.6: Is Ada used in commercial applications?

   Yes. Ada is used in e.g. airplanes, air traffic control systems,
   financial systems, telecommunications systems, medical devices.
     * The AJPO host on the Internet contains a report of Commercial Ada
       Users Working Group (CAUWG) of the Association for Computing
       Machinery's Special Interest Group on Ada (ACM SIGAda). Dated June
       1993, the report is a survey of applications from around the world
       that are written in Ada. It is in
       ftp://ajpo.sei.cmu.edu/public/document/cauwg.txt.
       
     * 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. For details on
       contacting the AdaIC, see question 5.2.
       
     * On the AJPO host, directory ftp://ajpo.sei.cmu.edu/public/usage
       contains a summary of the Ada Usage Database and a number of
       individual project descriptions that may be of interest.
       
   
   
   
3.7: How do I do [choose_a_goal] in Ada?

   This kind of question often revolves around an issue which is
   dependent on a specific implementation or operating system. Thus, in
   order to improve the odds of getting a useful answer, one should
   indicate what the host and target environments are (Ada vendor,
   compiler version, OS version, machine). Ada implementations normally
   come with a vendor-supplied library which provides hooks to the
   environment (operating system, graphics, etc.); check the
   documentation.
   
   Even in the case of things that are in the language, there are
   implementation dependencies that make it helpful to always have this
   information at hand if people want the most effective help. Note that
   annex F requires "the reference manual of each Ada implementation" to
   "include an appendix (called Appendix F) that describes all
   implementation-dependent characteristics."
   
   
3.8: I think Ada could really benefit from having [choose_a_feature] from
[choose_a_language],
or:
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 language wars and only
   waste 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?"
   
   Further, if you are going to compare programming languages, please
   note "Nebbe's rule":
   
     If you can't think of a least one area where a language is better
     than your preferred language then you probably aren't competent to
     comment on it.
     
   
   
   
3.9: 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 the preceding
   question, 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 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.
   
   
3.10: I very strongly agree/disagree with the Ada mandate. Should I
praise/criticize it?

   First, it is a fact that there is an Ada standard, on which the US
   DoD is aligned (the so-called "mandate"). No shouting match will
   change that. Second, don't believe rumors (about the mandate, its
   withdrawal, its being ignored, etc.) you read in comp.lang.ada, unless
   you have reasons to (i.e. you know the author is trustworthy, or the
   author provides references which you can check, and which you have
   checked yourself at least a couple of times.)
   
   For your information, here is the text of "Public Law 101-511 Sec
   8092":
   
     Notwithstanding any other provisions of law, after June 1, 1991,
     where cost effective, all Department of Defense software shall be
     written in the programming language Ada, in the absence of special
     exemption by an official designated by the Secretary of Defense.
     
    What about discussing the US Ada mandate?
    
   If you want to argue either for or against US Government Ada policies
   please restrict your postings to "usa" (field "Distribution:").
   Remember that Ada is an international standard, but the US mandate is
   not an international issue.
   
   Praise of the mandate is usually based on the ideas that a) it is
   better to have one language than 1500 obscure, proprietary languages
   for all DoD-owned non-COTS systems, and b) Ada is a good software
   engineering language, especially when it comes to maintenance.
   
   Criticism of the mandate is usually based on the ideas that a) a good
   language should not need a mandate (which ignores the fact that before
   standardizing on Ada the DoD had to maintain for 20+ years software
   written in 1500 obscure, proprietary programming languages--which is
   hard and costly), b) the mandate is mostly ineffective, since either
   it is ignored, or too many waivers are granted, or none is necessary
   (a policy issue which will in all likelihood NOT be resolved by
   discussions on comp.lang.ada), and c) no programming language is the
   most appropriate for every problem (true, but
   irrelevant--standardizing on a single good language for all DoD
   development and maintenance is practical, economical, and much better
   than not standardizing at all).
   
   Finally, whenever you see a message criticizing the Ada language (or
   Ada companies) for losing completely both in the market and under the
   mandate, check the facts for yourself. For the most part, the Ada
   mandate is enforced; in many critical, commercial systems, Ada is the
   language of choice and its adoption a success; in the slowly-changing
   competition of programming languages, FORTRAN and COBOL dominate, and
   Smalltalk, C++, Eiffel, and Ada are all slowly growing. Ada is
   (finally, and we hope seriously) penetrating academia. There is a GNU
   Ada 9X compiler available. And remember that Ada 9X will be the first
   standardized object-oriented programming language.
   
   If you have some new, additional facts, with approriate references so
   that everyone can check for himself, then posting on a mandate-related
   issue is OK. If NOT, then refrain from posting. PLEASE, if someone
   starts a non-factual discussion, the best policy is simply to ignore
   it or, if you have to, you may reply by private e-mail. Try to hold
   the same standards as you would in discussing problem-solving with the
   programming language itself, and put your information in a way which
   encourages positive action; criticism of inefficiency and/or
   ineptitude is fine, as long as it is honest, documented, and polite.
   
   
3.11: I don't have FTP service on the host where I have an account. Is there
any other way I can access FTP sites?

   If you are not connected to the Internet but do send and receive
   email from the net, you can use an "ftp by mail" agent, such as
   ftpmail, which is provided by DEC's Western Research Labs (DECWRL).
   The mail server may be reached by sending a mail message to
   uucp!decwrl!ftpmail or ftpmail@decwrl.dec.com .
   
   Complete instructions for using ftpmail may be retrieved with a
   message to the above address with subject "ftpmail" and the single
   word "help" as the text of your message. Example query:

To: ftpmail@decwrl.dec.com
Subject: ftpmail

help

   
   
   
3.11.1: The AJPO host has a special e-mail service for FTP.

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

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

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

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

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

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

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

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

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

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

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

Subject: directory compiler

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

Subject: directory p*

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

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

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

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

Subject: file-request compiler/README

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

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

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

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

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

Here is a brief description of the available services:

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

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

help:         This service returns this help message.

info:         This service returns this help message.

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

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

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

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

   
   
     _________________________________________________________________
   
   
   
4: Compilers

   
   
4.1: Is there a list of validated Ada compilers?

   
   
   Yes, indeed, there is. The latest list can be retrieved by anonymous
   FTP. It is in ftp://ajpo.sei.cmu.edu/public/compiler/val-comp.txt (a
   PostScript version is also available in
   ftp://ajpo.sei.cmu.edu/public/compiler/val-comp.ps). If the list is
   updated during the month, the previous one is replaced.
   
   
4.2: Is there a public-domain/free/shareware Ada compiler or interpreter?

   There ARE free Ada systems, and there is a choice: Ada/Ed for Ada 83,
   and GNAT for Ada 9X.
   
   (Strictly speaking these are NOT "public-domain". They are
   "free"--under copyright conditions known as "GNU Copyleft". In short:
   there is no warranty, and you are allowed to copy, modify, and
   distribute them; but you can't charge anyone for the software itself,
   and if the software (necessarily including source code) is further
   distributed, it must be done under the same conditions--i.e. copyable,
   with sources and modifications, available to everyone else, etc.)
   
   
    4.2.1: Ada/Ed -- An Interpreter for Ada 83
    
   Ada/Ed is available for PCs, Unix-based machines, Amiga, and Atari
   systems. The Ada/Ed interpreter for Ada 83 is available from the New
   York University host, in directory ftp://cs.nyu.edu/pub/adaed
   (Internet address 128.122.140.24). There you will find a version for
   UNIX-based machines, and a version for 386/486 DOS machines.
   
   Ada/Ed is a translator-interpreter for Ada. It is intended as a
   teaching tool, and does not have the capacity, performance, or
   robustness of commercial Ada compilers. Ada/Ed was developed at New
   York University, as part of a long-range project in language
   definition and software prototyping. The project produced the first
   validated translator for Ada, in the form of an executable definition
   of the language written in SETL. The SETL system served as design
   document and prototype for the C version.
   
   Ada/Ed was last validated under version 1.7 of the ACVC tests.
   Therefore it is not currently a validated Ada system, and users can
   expect to find small discrepancies between Ada/Ed and currently
   validated compilers.
   
   Apart from the 100-odd tests of ACVC 1.11 that Ada/Ed currently fails,
   the major deficiency of the system is that, being an interpreter, it
   does not implement most representation clauses, and thus does not
   support systems programming close to the machine level.
   
   
    4.2.2: GW-Ada/Ed -- a souped-up version of Ada/Ed for 386/486 DOS and
    Macintosh machines
    
   GW-Ada/Ed is available from the PAL, by anonymous FTP; it is in
   directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/adaed/gwu. The
   files are located in subdirectories "dos" and "mac".
   
   This project was sponsored by The George Washington University, and in
   part by the United States Advanced Research Projects Agency (ARPA).
   
   This distribution contains the executables for GWAda, which consists
   of the NYU Ada/Ed translator/interpreter system together with an
   integrated editor developed by Prof. Arthur Vargas Lopes of the
   Pontifical University at Porto Alegre, Brazil. Lopes began his work on
   GWAda while he was a doctoral student at The George Washington
   University. There is also in the DOS version a very nice extended
   runtime facility, with interesting kinds of source tracing.
   
   GWAda is being freely distributed at no charge. In the near future the
   developers will make the source code available under the GNU General
   Public License. Source code is not being provided because the system
   is still in the developmental stage. Source code for Ada/Ed itself is
   available from NYU (see above) and from PAL (see questions 9.1 and
   9.3).
   
   Note that under DOS you do not have to use the GWAda integrated
   environment, but can execute the various parts of NYU Ada/Ed from the
   DOS command line, as described in the NYU instructions.
   
   System requirements:
     * IBM PC Compatible, 386 or 486, running MS-DOS or PC-DOS, with at
       least 3.6 MB available extended memory, and at least 5 MB free
       hard-disk space.
       
     * Mac with a 68030 or 68040 processor, System 7, with at least 4 MB
       of RAM, and around 10 MB free hard-disk space.
       
   
   
   
    4.2.3: GNAT, The GNU NYU Ada Translator -- An Ada 9X Compiler
    
   GNAT is available from the New York University host, in directory
   ftp://cs.nyu.edu/pub/gnat. There are versions for UNIX-based systems
   (Sun, DEC, IBM, Next, ...), and versions for DOS, OS/2, and NT 386/486
   systems. Usually the latest version is made available for both Sun
   SPARC (SunOS 4.1) and OS/2 systems.
   
   It is also available in the Public Ada Library (PAL -- formerly the
   Ada Software Repository), under directory
   ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/gnat (Internet
   address: 128.252.135.4). A mirror site of the PAL also carries GNAT,
   directory: ftp://ftp.cdrom.com/pub/languages/ada/compiler/gnat.
   
   You can also get a copy from the AdaIC Bulletin Board. But this is a
   dial-up operation (703/614-0215), and since the files sizes are large,
   connect times may be lengthy. The bulletin board is best used as a
   back-up source for those who don't have Internet/FTP access.
   
      General
      
   (excerpted from "Free Source Code for GNAT 9X Compiler to be Available
   on Internet", by Robert Dewar and Edmond Schonberg, New York
   University, Ada Information Clearinghouse Newsletter August 1993)
   
   The Computer Science Department of the Courant Institute of
   Mathematical Sciences at New York University received a contract from
   the Ada 9X Project Office, under the direction of Christine M.
   Anderson, to develop a GNU/Ada system. The work is being cosponsored
   by ARPA and the Ada Joint Program Office.
   
   The final delivery will be a full Ada 9X implementation with as much
   of the core language and annexes implemented as possible. At final
   delivery, the developers expect to demonstrate to the Ada community a
   reasonably complete and solid implementation of the core language, and
   at least part of the language annexes. This delivery will include full
   sources, and executables for at least the Sun Sparc and PC on OS/2.
   (On PCs, GNAT will need a full 32-bit environment with several
   megabytes of memory.)
   
   There are a number of official GNAT e-mail addresses:
   
   gnat-request@cs.nyu.edu
          Send a message to this address to be placed on our external
          mailing list. We send out progress reports, technical reports,
          digests of technical comments and other information.
          
   gnatchat@cs.nyu.edu
          Send messages to this address for our general consideration.
          Where appropriate, we will digest these comments for
          redistribution to the external mailing list -- unless you
          specifically request that they be considered private.
          
   gnat-report@cs.nyu.edu
          This address is to be used specifically to report problems with
          the currently available version of the GNAT system. Please be
          as specific as possible in reporting problems. Do not report
          missing features for now!
          
   
   
      OS/2 Version
      
   The executables and sources for the OS/2 version of GNAT are split and
   compressed into two files, each of which can fit on one 3.5-inch
   high-density diskette. Although it is possible to install GNAT on an
   OS/2 machine on FAT (MS-DOS-compatble) partition, such an installation
   will not be fully functional. In fact, GNAT does not support
   installations on FAT partitions. You will need about 8.5 MB of free
   disk space after you have copied the appropriate files to your hard
   drive. About half of this amount is taken up by the source code.
   
   In case you want to modify and re-compile GNAT, you will need about 24
   MB of free disk space after you have installed GNAT for OS/2 and
   copied the necessary source files to your hard drive.
   
      Ports
      
   Several ports of GNAT have been produced by volunteers for a number of
   additional platforms (e.g. SPARCStations Solaris 2.1, i386/i486 Linux,
   DECstation (MIPS chip) Ultrix, DOS, SCO Unix). Users should allow time
   for the volunteers to catch up with the new releases.
   
   Note: The DOS version requires installation of DJGPP, DJ Delorie's
   port of GCC, GNU loader (ld), and GNU assembler (as) to DOS. DJGPP
   also includes the GO32 memory extender, which works with both VCPI and
   DPMI standards, which allows working in a Microsoft Window. There is
   information on DJGPP stored together with GNAT.
   
   
4.3: What cheap (<500$) Ada compilers are available?

   What follows is absolutely *not* exhaustive, but inexpensive
   compilers are available, and some vendors offer educational discounts
   or free programs for educational sites. Among those offering
   educational discounts are Alsys, DDC-I, Encore, Harris, IBM, Irvine
   Compiler, PSS, Rational, R.R., Tartan, and TeleSoft (now part of
   Alsys).
   
   Alsys (US pricing only): FirstAda for 286 DOS is $595. It will run on
   286 and higher, and will generate applications for any x86 PC. Comes
   with a full toolset. Alsys does run specials on it periodically. Call
   Pat Michalowski at 619/457-2700 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.
   
   Rational: Rational provides free software (Rational Apex) to
   accredited educational institutions, including military academies, in
   the United States and Canada. This is under its Software Engineering
   for Educational Development (SEED) program. To receive information on
   the program, send your contact information via e-mail to
   SEED_Info@Rational.com.
   
   Rational also offers OpenAda for $99. (Rational Software Corporation,
   2800 San Tomas Expressway, Santa Clara, CA 95051-0951; tel:
   1-800-RAT-1212)
   
   R.R. Software: R.R.'s Janus/Ada Professional Development System --
   80386 MS-DOS -- regularly goes for $500. (R.R. Software, P.O. Box
   1512, Madison, WI 53701; contact: Randall Brukardt 608/251-3133;
   e-mail: rbrukardt@bix.com)
   
   
4.4: Is there an Ada compiler for common machine X/common operating system Y?

   There are hundreds of Ada compilers available on the market. Some
   answers for Frequently Asked Compilers are listed below. If your
   specific question is not answered here, check the comprehensive list
   of validated Ada compilers (see 4.1).
   
   
    4.4.1: For the Macintosh
    
   Rational sells a compiler with a Toolbox binding and MPW 3.2. It has
   one limitation for large programs: Packages which contain more than
   32K bytes of data will compile, but not link. It works with System 7,
   and has been reported both as working and not-working on PowerPCs
   (maybe due to a problem with Inits). The interpreter GW/Ada (see
   question 4.2.2) works on all Mac architectures.
   
   
    4.4.2: Native compilers for OS/2
    
   There are several good fully validated compilers. E.g. Alsys has one,
   and has a partial Ada 9X compiler for Windows; RR Software specializes
   in the Intel x86 architecture (AETECH repackages and distributes their
   compilers as IntegrAda) -- and they advertise a partial Ada 9X
   compiler. GNAT is available for OS/2.
   
   
4.5: How can I contact Ada compiler vendors?

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

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

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

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

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

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

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

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

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

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

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

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

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

Tartan
  questions
    customer-support@tartan.com
    Tel: 412/856-3600 (ext 150)

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

   
     _________________________________________________________________




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

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


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

                                comp.lang.ada
                      Frequently Asked Questions (FAQ)

This is part 1 of a 3-part posting.
Part 2 begins with question 4.5.
Part 3 begins with question 9.
They should be the next postings in this thread.


    Recent changes to this FAQ are listed in the first section after the table
    of contents.

Introduction

   Ada is an advanced, modern programming language, designed and
   standardized to support and strongly encourage widely recognized
   software engineering principles: reliability, portability, modularity,
   reusability, programming as a human activity, efficiency,
   maintainability, information hiding, abstract data types, genericity,
   concurrent programming, object-oriented programming, etc.

   All Ada compilers must pass a validation test. Ada is not a superset
   or extension of any other language. Ada does not allow the dangerous
   practices or effects of old languages, although it does provide
   standardized mechanisms to interface with other languages such as
   Fortran, Cobol, and C.

   Ada is recognized as an excellent vehicle for education in programming
   and software engineering, including for a first programming course.

   Ada is defined by an international standard (the language reference
   manual, or LRM), which has been revised in 1995. Ada is taught and
   used all around the world (not just in the USA). Ada is used in a very
   wide range of applications: banking, medical devices,
   telecommunications, air traffic control, airplanes, railroad
   signalling, satellites, rockets, etc.

   The latest version of this FAQ is always accessible through WWW as
   http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html

Maintenance

   This FAQ is maintained on an individual volunteer basis, by Magnus
   Kempe (Magnus.Kempe@di.epfl.ch). [Note: This is done as a hobby, not
   in my capacity as an employee at the Swiss Federal Institute of
   Technology. --MK]


     _________________________________________________________________

   Report of a product, service, or event, etc., does not constitute an
   endorsement. Opinions (if any) expressed are those of the submitters
   and/or maintainer.
     _________________________________________________________________

Table of Contents:

     * 1: Recent changes to the FAQ

     * 2: Information about this document

     * 3: Elementary questions
          + 3.1: What is Ada?
               o 3.1.1: Where can I get other information on Ada?
          + 3.2: I have seen the language name capitalized as ADA, as
            well as Ada. Which is right?
          + 3.3: What is Ada 95 (aka Ada 9X)?
               o 3.3.1: Are there already Ada 95 books?
          + 3.4: Is Ada a registered trademark (TM) of the US government?
          + 3.5: Where can I find an electronic version of the Ada
            language reference manual (LRM)?
          + 3.6: Is Ada used in commercial applications?
          + 3.7: How do I do [choose_a_goal] in Ada?
          + 3.8: I think Ada could really benefit from having
            [choose_a_feature] from [choose_a_language] ...
          + 3.9: 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?
          + 3.10: I very strongly agree/disagree with the Ada mandate (or
            a post dealing with it). Why doesn't anyone praise/criticize
            it? Should I?
          + 3.11: Why shouldn't I cross-post my comp.lang.ada messages to
            other comp.lang.* newsgroups?
          + 3.12: I don't have FTP service on the host where I have an
            account. Is there any other way I can access FTP sites?
               o 3.12.1: The AJPO host has a special e-mail service for
                 FTP.


     * 4: Compilers
          + 4.1: Is there a list of validated Ada compilers?
          + 4.2: Is there a public-domain/free/shareware Ada compiler or
            interpreter?
               o 4.2.1: Ada/Ed -- An Interpreter for Ada 83 
               o 4.2.2: GW-Ada/Ed -- a souped-up version of Ada/Ed for
                 386/486 DOS and Macintosh machines
               o 4.2.3: GNAT, The GNU NYU Ada Translator -- An Ada 95
                 Compiler
          + 4.3: What cheap (<500$) Ada compilers are available?
          + 4.4: Is there an Ada compiler for common machine X/common
            operating system Y?
               o 4.4.1: on the Macintosh?
               o 4.4.2: native for OS/2?
          + 4.5: How can I contact Ada compiler vendor?


     * 5: Organizations that deal with Ada and Ada issues
          + 5.1: Ada Joint Program Office (AJPO)
          + 5.2: Ada Information Clearinghouse (AdaIC)
          + 5.3: ACM/SIGAda
          + 5.4: ISO WG 9


     * 6: Tools
          + 6.1: Is there an Ada-mode for Emacs?
          + 6.2: Are there versions of lex and yacc that generate Ada
            code?
          + 6.3: Where can I get a yacc/ayacc grammar to read Ada code?
          + 6.4: What is Anna, and where can I get it?
          + 6.5: What is DRAGOON, and where can I get it?
          + 6.6: Where can I get language translators? And should I?
          + 6.7: What is ASIS?
               o 6.7.1: How can I get hold of ASIS?
               o 6.7.2: How can I find out more about ASIS? and Can I
                 take part in its development?


     * 7: Bindings
          + 7.1: General
          + 7.2: POSIX
               o 7.2.1: What is the status of the POSIX/Ada work?
               o 7.2.2: How can I get a copy of POSIX/Ada?
               o 7.2.3: Is POSIX/Ada available via FTP?
          + 7.3: X Window System


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

     * 9: Resources
          + 9.1: What FTP sites exist that contain information about Ada
            or Ada source?
          + 9.2: Reuse
               o 9.2.1: Are there any free, public-domain, or other
                 general-access software repositories that contain Ada
                 source code and information on reuse?
               o 9.2.2: Is there a database of reusable Ada software
                 components?
          + 9.3: Where can I get Ada benchmark programs?
          + 9.4: Are there any dial-up BBS systems that deal with Ada?


     * 10: Credits

     * 11: Copying this FAQ


     _________________________________________________________________


1: Recent changes to the FAQ


     * 950320: updated How to contact vendors (email, phone, WWW).
     * 950228: general URL updates: AdaIC host changed (no longer AJPO).
     * 950221: Ada 9X is officially Ada 95 since February 15, 1995.
     * 950221: added AdaBasis repository.
     * 950207: revised introduction.
     * 950126: revised BBS section.
     * 950124: approved for posting in *.answers.
     * 950111: Alsys changed name to Thomson Software Products.
     * 950109: electronic versions of the Ada LRM.
     * 950106: Updated annotated list of books.
     * 950104: Don't cross-post from comp.lang.ada.
     * 941222: updated list of FTP sites.
     * 941219: added Nebbe's rule.
     * 941219: fixed ftp URLs.
     * 941019: How do I do [choose_a_goal] in Ada?
     * 941010: Updated the list of Ada books.
     * 940916: How to access FTP by email.
     * 940831: What is Ada, and where can one get more information?
     * 940830: Ada 95 books.
     * 940818: added an explicit copyright statement.
     * 940817: love/hatred of the Ada mandate.
     * 940816: where are yacc grammars for Ada?
     * 940815: made into a hypertext version to browse on WWW.
     * 940815: is there an Ada compiler for machine X with OS Y?
     * 940815: pointer to list of reusable components.
     * 940812: references to network resources now follow the URL
       convention.
     * 940812: completely revised the structure.
     * 9408: new maintainer.


   What's important and missing:
     * description of the ACVC.
     * CD-ROMs.
     * list of regular Ada-related events.


     _________________________________________________________________


2: Information about this document

   This file is posted monthly to comp.lang.ada, comp.answers, and
   news.answers.

   This document has a home on the Ada WWW Server, in hypertext format,
   URL http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html

   It is available --as posted in *.answers-- on rtfm.mit.edu, which
   archives all FAQ files posted to *.answers; see directory
   ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/computer-lang/Ada

   The text-only version is also available in directory
   ftp://lglftp.epfl.ch/pub/Ada/FAQ

   Magnus Kempe maintains this document; it's a hobby, not a job.
   Feedback (corrections, suggestions, ideas) about it is to be sent via
   e-mail to magnus.kempe@di.epfl.ch
   Thanks.

   In all cases, the most up-to-date version of the FAQ is the version
   maintained on the Ada WWW Server. Please excuse any formatting
   inconsistencies in the posted, text-only version of this document, as
   it is automatically generated from the on-line, hypertext version.

     _________________________________________________________________


3: Elementary questions


3.1: What is Ada?

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, et caetera. All Ada compilers must pass a
   validation test.


    3.1.1: Where can I get other information on Ada?

   If you have questions which this FAQ does not answer, you may contact
   the Ada Information Clearinghouse (see below, question 5.2), use the
   Usenet newsgroup comp.lang.ada, read the Ada Yearbook published by Ada
   UK, or the Ada Resources published by the ACM.

   To find out more, you may also use the Ada WWW Server, URL
   http://lglwww.epfl.ch/Ada/, which has a companion FAQ:
   Ada/ada-www-server (also regularly posted to comp.lang.ada).

   I encourage you to check out the changes listed early in the document
   each time this FAQ is posted.


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

   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 this forum
   is not devoted to the American Dental Association :-).

   In addition, the ISO and IEEE recommend as a general guideline that
   one spell like proper names the language names that are pronounced as
   they are spelled (e.g. Ada, Pascal, Cobol, Basic, Fortran). Note: that
   a name originally resulted from abbreviation is considered irrelevant.
   For language names that are phonetically spelled (e.g. C, C++, APL,
   PL/1), they should be spelled in all uppercase.


3.3: What is Ada 95 (aka Ada 9X)?

   Ada 95 refers to the current, revised version of the Ada standard.
   (Ada 83 was the original ANSI/ISO standard.) The Ada 9X Project Office
   was responsible for the revision, and worked closely with the
   international community to ensure Ada retains its ISO status. The Ada
   9X process was very open. Many documents are available for downloading
   from directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/9Xproject on the
   AdaIC host (see question 9.1, FTP sites for more information.) For
   further information, contact the Ada 9X Project Office, PL/VTES,
   Kirtland AFB, New Mexico 87117-5776.

   Ada 95 includes four major areas of enhancement: support for
   object-oriented programming, data-oriented synchronization,
   programming-in-the-large, and realtime systems.

   A great deal of attention is being focused on transitioning to Ada 95.
   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 95 implementations prior to validation.

   There is also a (still partial) GNU Ada 95 compilation system (GNAT)
   available since late 1993. (See question 4.2.3.)


    3.3.1: Are there already Ada 95 books?

   The Ada 95 Rationale explains how to use the new mechanisms of the
   language; it is quite readable. The new Reference Manual is THE
   reference, of course. The Annotated Reference Manual provides detailed
   explanations of the rules of the language (good for implementors and
   language lawyers). All three are available in their final versions by
   FTP from the AJPO host, in directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
   (v6.0).

   There are also a few commercial books which have sections on Ada 95 or
   have integrated the revised definition of the language into their
   presentation:
     * J. Barnes. Programming in Ada: Plus an Overview of Ada 9X.
       Addison Wesley. Price $43.25. ISBN 0-201-62407-9.
     * G. Booch and D. Bryan. Software Engineering with Ada.
       3rd ed., Benjamin/Cummings, 1994. ISBN 0-8053-0608-0.
     * Naiditch. Rendez-vous with Ada 9X.
       2nd ed., John Wiley & Sons, Inc. Price $44.95. ISBN 0-471-01276-9.
     * J. Skansholm. Ada From the Beginning.
       2nd ed., Addison-Wesley


3.4: Is Ada a registered trademark (TM) of the US government?

   No, but it used to be; there is 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 on the AdaIC host,
   in
   ftp://sw-eng.falls-church.va.us/public/AdaIC/pol-hist/policy/trademrk.txt


3.5: Where can I find an electronic version of the Ada reference manual (LRM)?


   The revised Reference Manual (RM for Ada 95--v6.0 final version) is
   available, in plain ASCII and Postscript files, in directories
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
       /v6.0
   and (compressed files)
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
       /v6.0.compressed

   This version was released in December 1994 and is freely
   distributable. For language lawyers and implementors, the Annotated
   Ada Reference Manual (AARM) is also available there.

   The old, Ada 83 LRM is available in a compressed set of ASCII files in
   directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/83lrm

   Both Ada 83 and Ada 95 reference manuals also exist in hypertext
   format, accessible through the Ada WWW Server (see the companion FAQ:
   Ada/ada-www-server).


3.6: Is Ada used in commercial applications?

   Yes. Ada is used in e.g. airplanes, air traffic control systems,
   financial systems, telecommunications systems, medical devices.
     * The AdaIC host on the Internet contains a report of Commercial Ada
       Users Working Group (CAUWG) of the Association for Computing
       Machinery's Special Interest Group on Ada (ACM SIGAda). Dated June
       1993, the report is a survey of applications from around the world
       that are written in Ada. It is in
       ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/usage/cauwg.txt

     * 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. For details on
       contacting the AdaIC, see question 5.2.

     * On the AdaIC host, directory
       ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/usage contains
       a summary of the Ada Usage Database and a number of individual
       project descriptions that may be of interest.


3.7: How do I do [choose_a_goal] in Ada?

   This kind of question often revolves around an issue which is
   dependent on a specific implementation or operating system. Thus, in
   order to improve the odds of getting a useful answer, one should
   indicate what the host and target environments are (Ada vendor,
   compiler version, OS version, machine). Ada implementations normally
   come with a vendor-supplied library which provides hooks to the
   environment (operating system, graphics, etc.); check the
   documentation.

   Even in the case of things that are in the language, there are
   implementation dependencies that make it helpful to always have this
   information at hand if people want the most effective help. Note that
   annex F requires "the reference manual of each Ada implementation" to
   "include an appendix (called Appendix F) that describes all
   implementation-dependent characteristics."


3.8: I think Ada could really benefit from having [choose_a_feature] from
[choose_a_language],
or:
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 language wars and only
   waste 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?"

   Further, if you are going to compare programming languages, please
   note "Nebbe's rule":

     If you can't think of a least one area where a language is better
     than your preferred language then you probably aren't competent to
     comment on it.


3.9: 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 the preceding
   question, 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 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.


3.10: I very strongly agree/disagree with the Ada mandate. Should I
praise/criticize it?

   First, it is a fact that there is an Ada standard, on which the US
   DoD is aligned (the so-called "mandate"). No shouting match will
   change that. Second, don't believe rumors (about the mandate, its
   withdrawal, its being ignored, etc.) you read in comp.lang.ada, unless
   you have reasons to (i.e. you know the author is trustworthy, or the
   author provides references which you can check, and which you have
   checked yourself at least a couple of times.)

   For your information, here is the text of "Public Law 101-511 Sec
   8092":

     Notwithstanding any other provisions of law, after June 1, 1991,
     where cost effective, all Department of Defense software shall be
     written in the programming language Ada, in the absence of special
     exemption by an official designated by the Secretary of Defense.

    What about discussing the US Ada mandate?

   If you want to argue either for or against US Government Ada policies
   please restrict your postings to "usa" (field "Distribution:").
   Remember that Ada is an international standard, but the US mandate is
   not an international issue.

   Praise of the mandate is usually based on the ideas that a) it is
   better to have one language than 1500 obscure, proprietary languages
   for all DoD-owned non-COTS systems, and b) Ada is a good software
   engineering language, especially when it comes to maintenance.

   Criticism of the mandate is usually based on the ideas that a) a good
   language should not need a mandate (which ignores the fact that before
   standardizing on Ada the DoD had to maintain for 20+ years software
   written in 1500 obscure, proprietary programming languages--which is
   hard and costly), b) the mandate is mostly ineffective, since either
   it is ignored, or too many waivers are granted, or none is necessary
   (a policy issue which will in all likelihood NOT be resolved by
   discussions on comp.lang.ada), and c) no programming language is the
   most appropriate for every problem (true, but
   irrelevant--standardizing on a single good language for all DoD
   development and maintenance is practical, economical, and much better
   than not standardizing at all).

   Finally, whenever you see a message criticizing the Ada language (or
   Ada companies) for losing completely both in the market and under the
   mandate, check the facts for yourself. For the most part, the Ada
   mandate is enforced; in many critical, commercial systems, Ada is the
   language of choice and its adoption a success; in the slowly-changing
   competition of programming languages, FORTRAN and COBOL dominate, and
   Smalltalk, C++, Eiffel, and Ada are all slowly growing. Ada is
   (finally, and we hope seriously) penetrating academia. There is a GNU
   Ada 95 compiler available. And remember that Ada 95 is the first
   internationally standardized object-oriented programming language.

   If you have some new, additional facts, with approriate references so
   that everyone can check for himself, then posting on a mandate-related
   issue is OK. If NOT, then refrain from posting. PLEASE, if someone
   starts a non-factual discussion, the best policy is simply to ignore
   it or, if you have to, you may reply by private e-mail. Try to hold
   the same standards as you would in discussing problem-solving with the
   programming language itself, and put your information in a way which
   encourages positive action; criticism of inefficiency and/or
   ineptitude is fine, as long as it is honest, documented, and polite.


3.11: Why shouldn't I cross-post my comp.lang.ada messages to other
comp.lang.* newsgroups?

   The huge majority of the comp.lang.ada messages are Ada specific, and
   many are from people supporting Ada, so that all threads developing on
   c.l.a end up dealing with Ada.

   Cross-posting should be used with caution and careful thought, for
   various reasons:
     * First, avoid annoying readers of other newsgroup with irrelevant
       Ada messages. If you expect to successfully proselytize by
       cross-posting into newsgroups dedicated to other programming
       languages, think twice! Note that if you are replying to a
       cross-posted article, it is your responsibility to pare down the
       newsgroup lists ("Newsgroups: c.l.a,xyz,xyz" and "Followup-to:
       c.l.a,xyz").

     * Second, the subject line ("Subject: xyz") should be relevant to
       all cross-posted groups (e.g. if the thread originated in c.l.a
       and then is cross-posted, think about the message--if there is
       any--explicitly carried over by the subject; some people read the
       subject line only).

     * Finally, it is good and polite practice to mention explicitly in
       the text of a cross-posted article that it is cross-posted and
       where you would like followup articles to go.


   Exaggerated cross-posting is in the same category as junk mail:
   negative publicity.


3.12: I don't have FTP service on the host where I have an account. Is there
any other way I can access FTP sites?

   If you are not connected to the Internet but do send and receive
   email from the net, you can use an "ftp by mail" agent, such as
   ftpmail, which is provided by DEC's Western Research Labs (DECWRL).
   The mail server may be reached by sending a mail message to
   uucp!decwrl!ftpmail or ftpmail@decwrl.dec.com .

   Complete instructions for using ftpmail may be retrieved with a
   message to the above address with subject "ftpmail" and the single
   word "help" as the text of your message. Example query:

To: ftpmail@decwrl.dec.com
Subject: ftpmail

help


3.12.1: The AJPO host has a special e-mail service for FTP.

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

   The following are common examples on how to request services from the
   AJPO host mail server:

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

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

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

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

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

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

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

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

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

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

Subject: directory compiler

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

Subject: directory p*

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

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

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

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

Subject: file-request compiler/README

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

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

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

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

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

Here is a brief description of the available services:

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

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

help:         This service returns this help message.

info:         This service returns this help message.

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

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

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

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


     _________________________________________________________________


4: Compilers


4.1: Is there a list of validated Ada compilers?


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


4.2: Is there a public-domain/free/shareware Ada compiler or interpreter?

   There ARE free Ada systems, and there is a choice: Ada/Ed for Ada 83,
   and GNAT for Ada 95.

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


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

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

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

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

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


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

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

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

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

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

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

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

     * Mac with a 68030 or 68040 processor, System 7, with at least 4 MB
       of RAM, and around 10 MB free hard-disk space.


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

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

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

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

      General

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

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

   The final delivery will be a full Ada 95 implementation with as much
   of the core language and annexes implemented as possible. At final
   delivery, the developers expect to demonstrate to the Ada community a
   reasonably complete and solid implementation of the core language, and
   at least part of the language annexes. This delivery will include full
   sources, and executables for at least the Sun Sparc and PC on OS/2.
   (On PCs, GNAT will need a full 32-bit environment with several
   megabytes of memory.)

   There are a number of official GNAT e-mail addresses:

   gnat-request@cs.nyu.edu
          Send a message to this address to be placed on our external
          mailing list. We send out progress reports, technical reports,
          digests of technical comments and other information.

   gnatchat@cs.nyu.edu
          Send messages to this address for our general consideration.
          Where appropriate, we will digest these comments for
          redistribution to the external mailing list -- unless you
          specifically request that they be considered private.

   gnat-report@cs.nyu.edu
          This address is to be used specifically to report problems with
          the currently available version of the GNAT system. Please be
          as specific as possible in reporting problems. Do not report
          missing features for now!


      OS/2 Version

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

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

      Ports

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

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


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

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

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

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

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

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

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


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

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


    4.4.1: For the Macintosh

   Rational sells a compiler with a Toolbox binding and MPW 3.2. It has
   one limitation for large programs: Packages which contain more than
   32K bytes of data will compile, but not link. It works with System 7,
   and has been reported both as working and not-working on PowerPCs
   (maybe due to a problem with Inits). The interpreter GW/Ada (see
   question 4.2.2) works on all Mac architectures.


    4.4.2: Native compilers for OS/2

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



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

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


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

                                comp.lang.ada
                      Frequently Asked Questions (FAQ)

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

This is part 1 of a 3-part posting.
Part 2 begins with question 4.5.
Part 3 begins with question 9.
They should be the next postings in this thread.


Introduction

   Ada is an advanced, modern programming language, designed and
   standardized to support and strongly encourage widely recognized
   software engineering principles: reliability, portability, modularity,
   reusability, programming as a human activity, efficiency,
   maintainability, information hiding, abstract data types, genericity,
   concurrent programming, object-oriented programming, etc.

   All validated Ada compilers (i.e. a huge majority of the commercial
   Ada compilers) have passed a controlled validation process using an
   extensive validation suite. Ada is not a superset or extension of any
   other language. Ada does not allow the dangerous practices or effects
   of old languages, although it does provide standardized mechanisms to
   interface with other languages such as Fortran, Cobol, and C.

   Ada is recognized as an excellent vehicle for education in programming
   and software engineering, including for a first programming course.

   Ada is defined by an international standard (the language reference
   manual, or LRM), which has been revised in 1995. Ada is taught and
   used all around the world (not just in the USA). Ada is used in a very
   wide range of applications: banking, medical devices,
   telecommunications, air traffic control, airplanes, railroad
   signalling, satellites, rockets, etc.

   The latest version of this FAQ is always accessible through WWW as
   http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html

Maintenance

   This FAQ is maintained on an individual volunteer basis, by Magnus
   Kempe (Magnus.Kempe@di.epfl.ch). [Note: This is done as a hobby, not
   in my capacity as an employee at the Swiss Federal Institute of
   Technology. --MK]


     _________________________________________________________________

   Report of a product, service, or event, etc., does not constitute an
   endorsement. Opinions (if any) expressed are those of the submitters
   and/or maintainer.
     _________________________________________________________________

Table of Contents:

     * 1: Recent changes to this FAQ

     * 2: Information about this document

     * 3: Elementary questions
          + 3.1: What is Ada?
               o 3.1.1: What are the LRM, RM, and AARM?
               o 3.1.2: Where can I get other information on Ada?
          + 3.2: I have seen the language name capitalized as ADA, as
            well as Ada. Which is right?
          + 3.3: What is Ada 95 (aka Ada 9X)?
               o 3.3.1: Are there already Ada 95 books?
          + 3.4: Is Ada a registered trademark (TM) of the US government?
          + 3.5: Where can I find an electronic version of the Ada
            language reference manual (LRM)?
          + 3.6: Is Ada used in commercial applications?
          + 3.7: How do I do [choose_a_goal] in Ada?
          + 3.8: I think Ada could really benefit from having
            [choose_a_feature] from [choose_a_language] ...
          + 3.9: 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?
          + 3.10: I very strongly agree/disagree with the Ada mandate (or
            a post dealing with it). Why doesn't anyone praise/criticize
            it? Should I?
          + 3.11: Why shouldn't I cross-post my comp.lang.ada messages to
            other comp.lang.* newsgroups?
          + 3.12: I don't have FTP service on the host where I have an
            account. Is there any other way I can access FTP sites?
               o 3.12.1: The AJPO host has a special e-mail service for
                 FTP.


     * 4: Compilers
          + 4.1: Is there a list of validated Ada compilers?
          + 4.2: Is there a public-domain/free/shareware Ada compiler or
            interpreter?
               o 4.2.1: Ada/Ed -- An Interpreter for Ada 83 
               o 4.2.2: GW-Ada/Ed -- a souped-up version of Ada/Ed for
                 386/486 DOS and Macintosh machines
               o 4.2.3: GNAT, The GNU NYU Ada Translator -- An Ada 95
                 Compiler
          + 4.3: What cheap (<500$) Ada compilers are available?
          + 4.4: Is there an Ada compiler for common machine X/common
            operating system Y?
               o 4.4.1: on the Macintosh?
               o 4.4.2: native for OS/2?
          + 4.5: How can I contact Ada compiler vendor?
          + 4.6: Are Ada 95 compilers compatible with Ada 83?


     * 5: Organizations that deal with Ada and Ada issues
          + 5.1: Ada Joint Program Office (AJPO)
          + 5.2: Ada Information Clearinghouse (AdaIC)
          + 5.3: ACM/SIGAda
          + 5.4: ISO WG 9


     * 6: Tools
          + 6.1: Is there an Ada-mode for Emacs?
          + 6.2: Are there versions of lex and yacc that generate Ada
            code?
          + 6.3: Where can I get a yacc/ayacc grammar to read Ada code?
          + 6.4: What is Anna, and where can I get it?
          + 6.5: What is DRAGOON, and where can I get it?
          + 6.6: Where can I get language translators? And should I?
          + 6.7: What is ASIS?
               o 6.7.1: How can I get hold of ASIS?
               o 6.7.2: How can I find out more about ASIS? and Can I
                 take part in its development?


     * 7: Bindings
          + 7.1: General
          + 7.2: POSIX
               o 7.2.1: What is the status of the POSIX/Ada work?
               o 7.2.2: How can I get a copy of POSIX/Ada?
               o 7.2.3: Is POSIX/Ada available via FTP?
          + 7.3: X Window System


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

     * 9: Resources
          + 9.1: What FTP sites exist that contain information about Ada
            or Ada source?
          + 9.2: Reuse
               o 9.2.1: Are there any free, public-domain, or other
                 general-access software repositories that contain Ada
                 source code and information on reuse?
               o 9.2.2: Is there a database of reusable Ada software
                 components?
          + 9.3: Where can I get Ada benchmark programs?
          + 9.4: Are there any dial-up BBS systems that deal with Ada?


     * 10: Credits

     * 11: Copying this FAQ


     _________________________________________________________________

1: Recent changes to this FAQ

     * 950406: upward compatibility between Ada 83 and Ada 95.
     * 950320: updated How to contact vendors (email, phone, WWW).
     * 950228: general URL updates: AdaIC host changed (no longer AJPO).
     * 950221: Ada 9X is officially Ada 95 since February 15, 1995.
     * 950221: added AdaBasis repository.
     * 950207: revised introduction.
     * 950126: revised BBS section.
     * 950124: approved for posting in *.answers.
     * 950111: Alsys changed name to Thomson Software Products.
     * 950109: electronic versions of the Ada LRM.
     * 950106: Updated annotated list of books.
     * 950104: Don't cross-post from comp.lang.ada.
     * 941222: updated list of FTP sites.
     * 941219: added Nebbe's rule.
     * 941219: fixed ftp URLs.
     * 941019: How do I do [choose_a_goal] in Ada?
     * 941010: Updated the list of Ada books.
     * 940916: How to access FTP by email.
     * 940831: What is Ada, and where can one get more information?
     * 940830: Ada 95 books.
     * 940818: added an explicit copyright statement.
     * 940817: love/hatred of the Ada mandate.
     * 940816: where are yacc grammars for Ada?
     * 940815: made into a hypertext version to browse on WWW.
     * 940815: is there an Ada compiler for machine X with OS Y?
     * 940815: pointer to list of reusable components.
     * 940812: references to network resources now follow the URL
       convention.
     * 940812: completely revised the structure.
     * 9408: new maintainer.


   What's important and missing:
     * description of the ACVC.
     * CD-ROMs.
     * list of regular Ada-related events.


     _________________________________________________________________


2: Information about this document

   This file is posted monthly to comp.lang.ada, comp.answers, and
   news.answers.

   This document has a home on the Home of the Brave Ada Programmers
   (HBAP) WWW Server, in hypertext format, URL
   http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html

   It is available --as posted in *.answers-- on rtfm.mit.edu, which
   archives all FAQ files posted to *.answers; see directory
   ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/computer-lang/Ada

   The text-only version is also available in directory
   ftp://lglftp.epfl.ch/pub/Ada/FAQ

   Magnus Kempe maintains this document; it's a hobby, not a job.
   Feedback (corrections, suggestions, ideas) about it is to be sent via
   e-mail to Magnus.Kempe@di.epfl.ch
   Thanks.

   In all cases, the most up-to-date version of the FAQ is the version
   maintained on the HBAP WWW Server. Please excuse any formatting
   inconsistencies in the posted, text-only version of this document, as
   it is automatically generated from the on-line, hypertext version.

     _________________________________________________________________


3: Elementary questions


3.1: What is Ada?

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, et caetera. All Ada compilers must pass a
   validation test.


    3.1.1: What are the LRM, RM, and AARM? 

   LRM is the abbreviated name of the Language Reference Manual,
   sometimes called Ada Reference Manual. "LRM" was often used in the
   days of Ada 83; "RM" or "rm95" is frequently used since the 1995
   revision of the language. Ada 95 is for the most part an extension of
   Ada 83.

   What is the AARM for Ada 83?
          Compiled by K. Nyberg, it contains the full text of
          ANSI/MIL-STD-1815A with inline annotations derived from the Ada
          Rapporteur Group of the International Organization for
          Standards responsible for maintaining the Ada language.

          Distribution has been transferred by Grebyn Corporation to the
          Ada Resource Association, (614) 538-9232. The organization is
          going to be offering it as a "member benefit", or something
          like that for individual members, and will probably sell
          additional copies.

   What is the AARM for Ada 95?
          Contains the entire text of the Ada 95 standard (ISO/IEC
          8652:1995(E)), plus various annotations. It is intended
          primarily for compiler writers, validation test writers, and
          other language lawyers. The annotations include detailed
          rationale for individual rules and explanations of some of the
          more arcane interactions among the rules.


    3.1.2: Where can I get other information on Ada?

   If you have questions which this FAQ does not answer, you may contact
   the Ada Information Clearinghouse (see below, question 5.2), use the
   Usenet newsgroup comp.lang.ada, read the Ada Yearbook published by Ada
   UK, or the Ada Resources published by the ACM.

   To find out more, you may also use the HBAP WWW Server, URL
   http://lglwww.epfl.ch/Ada/, which has a companion FAQ:
   Ada/ada-www-server (also regularly posted to comp.lang.ada).

   I encourage you to check out the changes listed early in the document
   each time this FAQ is posted.


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

   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 this forum
   is not devoted to the American Dental Association :-).

   In addition, the ISO and IEEE recommend as a general guideline that
   one spell like proper names the language names that are pronounced as
   they are spelled (e.g. Ada, Pascal, Cobol, Basic, Fortran). Note: that
   a name originally resulted from abbreviation is considered irrelevant.
   For language names that are phonetically spelled (e.g. C, C++, APL,
   PL/1), they should be spelled in all uppercase.


3.3: What is Ada 95 (aka Ada 9X)?

   Ada 95 refers to the current, revised version of the Ada standard.
   (Ada 83 was the original ANSI/ISO standard.) The Ada 9X Project Office
   was responsible for the revision, and worked closely with the
   international community to ensure Ada retains its ISO status. The Ada
   9X process was very open. Many documents are available for downloading
   from directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/9Xproject on the
   AdaIC host (see question 9.1, FTP sites for more information.) For
   further information, contact the Ada 9X Project Office, PL/VTES,
   Kirtland AFB, New Mexico 87117-5776.

   Ada 95 includes four major areas of enhancement: support for
   object-oriented programming, data-oriented synchronization,
   programming-in-the-large, and realtime systems.

   A great deal of attention is being focused on transitioning to Ada 95.
   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 95 implementations prior to validation.

   There is also a (still partial) GNU Ada 95 compilation system (GNAT)
   available since late 1993. (See question 4.2.3.)


    3.3.1: Are there already Ada 95 books?

   The Ada 95 Rationale explains how to use the new mechanisms of the
   language; it is quite readable. The new Reference Manual is THE
   reference, of course. The Annotated Reference Manual provides detailed
   explanations of the rules of the language (good for implementors and
   language lawyers). All three are available in their final versions by
   FTP from the AJPO host, in directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
   (v6.0).

   There are also a few commercial books which have sections on Ada 95 or
   have integrated the revised definition of the language into their
   presentation:
     * J. Barnes. Programming in Ada: Plus an Overview of Ada 9X.
       Addison Wesley. Price $43.25. ISBN 0-201-62407-9.
     * G. Booch and D. Bryan. Software Engineering with Ada.
       3rd ed., Benjamin/Cummings, 1994. ISBN 0-8053-0608-0.
     * Naiditch. Rendez-vous with Ada 9X.
       2nd ed., John Wiley & Sons, Inc. Price $44.95. ISBN 0-471-01276-9.
     * J. Skansholm. Ada From the Beginning.
       2nd ed., Addison-Wesley


3.4: Is Ada a registered trademark (TM) of the US government?

   No, but it used to be; there is 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 on the AdaIC host,
   in
   ftp://sw-eng.falls-church.va.us/public/AdaIC/pol-hist/policy/trademrk.txt


3.5: Where can I find an electronic version of the Ada reference manual (LRM)?


   The revised Reference Manual (RM for Ada 95--v6.0 final version) is
   available, in plain ASCII and Postscript files, in directories
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
       /v6.0
   and (compressed files)
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/95lrm_rat
       /v6.0.compressed

   This version was released in December 1994 and is freely
   distributable. For language lawyers and implementors, the Annotated
   Ada Reference Manual (AARM) is also available there.

   The old, Ada 83 LRM is available in a compressed set of ASCII files in
   directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/standard/83lrm

   Both Ada 83 and Ada 95 reference manuals also exist in hypertext
   format, accessible through the HBAP WWW Server (see the companion FAQ:
   Ada/ada-www-server).


3.6: Is Ada used in commercial applications?

   Yes. Ada is used in e.g. airplanes, air traffic control systems,
   financial systems, telecommunications systems, medical devices.
     * The AdaIC host on the Internet contains a report of Commercial Ada
       Users Working Group (CAUWG) of the Association for Computing
       Machinery's Special Interest Group on Ada (ACM SIGAda). Dated June
       1993, the report is a survey of applications from around the world
       that are written in Ada. It is in
       ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/usage/cauwg.txt

     * 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. For details on
       contacting the AdaIC, see question 5.2.

     * On the AdaIC host, directory
       ftp://sw-eng.falls-church.va.us/public/AdaIC/docs/usage contains
       a summary of the Ada Usage Database and a number of individual
       project descriptions that may be of interest.


3.7: How do I do [choose_a_goal] in Ada?

   This kind of question often revolves around an issue which is
   dependent on a specific implementation or operating system. Thus, in
   order to improve the odds of getting a useful answer, one should
   indicate what the host and target environments are (Ada vendor,
   compiler version, OS version, machine). Ada implementations normally
   come with a vendor-supplied library which provides hooks to the
   environment (operating system, graphics, etc.); check the
   documentation.

   Even in the case of things that are in the language, there are
   implementation dependencies that make it helpful to always have this
   information at hand if people want the most effective help. Note that
   annex F requires "the reference manual of each Ada implementation" to
   "include an appendix (called Appendix F) that describes all
   implementation-dependent characteristics."


3.8: I think Ada could really benefit from having [choose_a_feature] from
[choose_a_language],
or:
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 language wars and only
   waste 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?"

   Further, if you are going to compare programming languages, please
   note "Nebbe's rule":

     If you can't think of a least one area where a language is better
     than your preferred language then you probably aren't competent to
     comment on it.


3.9: 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 the preceding
   question, 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 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.


3.10: I very strongly agree/disagree with the Ada mandate. Should I
praise/criticize it?

   First, it is a fact that there is an Ada standard, on which the US
   DoD is aligned (the so-called "mandate"). No shouting match will
   change that. Second, don't believe rumors (about the mandate, its
   withdrawal, its being ignored, etc.) you read in comp.lang.ada, unless
   you have reasons to (i.e. you know the author is trustworthy, or the
   author provides references which you can check, and which you have
   checked yourself at least a couple of times.)

   For your information, here is the text of "Public Law 101-511 Sec
   8092":

     Notwithstanding any other provisions of law, after June 1, 1991,
     where cost effective, all Department of Defense software shall be
     written in the programming language Ada, in the absence of special
     exemption by an official designated by the Secretary of Defense.

    What about discussing the US Ada mandate?

   If you want to argue either for or against US Government Ada policies
   please restrict your postings to "usa" (field "Distribution:").
   Remember that Ada is an international standard, but the US mandate is
   not an international issue.

   Praise of the mandate is usually based on the ideas that a) it is
   better to have one language than 1500 obscure, proprietary languages
   for all DoD-owned non-COTS systems, and b) Ada is a good software
   engineering language, especially when it comes to maintenance.

   Criticism of the mandate is usually based on the ideas that a) a good
   language should not need a mandate (which ignores the fact that before
   standardizing on Ada the DoD had to maintain for 20+ years software
   written in 1500 obscure, proprietary programming languages--which is
   hard and costly), b) the mandate is mostly ineffective, since either
   it is ignored, or too many waivers are granted, or none is necessary
   (a policy issue which will in all likelihood NOT be resolved by
   discussions on comp.lang.ada), and c) no programming language is the
   most appropriate for every problem (true, but
   irrelevant--standardizing on a single good language for all DoD
   development and maintenance is practical, economical, and much better
   than not standardizing at all).

   Finally, whenever you see a message criticizing the Ada language (or
   Ada companies) for losing completely both in the market and under the
   mandate, check the facts for yourself. For the most part, the Ada
   mandate is enforced; in many critical, commercial systems, Ada is the
   language of choice and its adoption a success; in the slowly-changing
   competition of programming languages, FORTRAN and COBOL dominate, and
   Smalltalk, C++, Eiffel, and Ada are all slowly growing. Ada is
   (finally, and we hope seriously) penetrating academia. There is a GNU
   Ada 95 compiler available. And remember that Ada 95 is the first
   internationally standardized object-oriented programming language.

   If you have some new, additional facts, with approriate references so
   that everyone can check for himself, then posting on a mandate-related
   issue is OK. If NOT, then refrain from posting. PLEASE, if someone
   starts a non-factual discussion, the best policy is simply to ignore
   it or, if you have to, you may reply by private e-mail. Try to hold
   the same standards as you would in discussing problem-solving with the
   programming language itself, and put your information in a way which
   encourages positive action; criticism of inefficiency and/or
   ineptitude is fine, as long as it is honest, documented, and polite.


3.11: Why shouldn't I cross-post my comp.lang.ada messages to other
comp.lang.* newsgroups?

   The huge majority of the comp.lang.ada messages are Ada specific, and
   many are from people supporting Ada, so that all threads developing on
   c.l.a end up dealing with Ada.

   Cross-posting should be used with caution and careful thought, for
   various reasons:
     * First, avoid annoying readers of other newsgroup with irrelevant
       Ada messages. If you expect to successfully proselytize by
       cross-posting into newsgroups dedicated to other programming
       languages, think twice! Note that if you are replying to a
       cross-posted article, it is your responsibility to pare down the
       newsgroup lists ("Newsgroups: c.l.a,xyz,xyz" and "Followup-to:
       c.l.a,xyz").

     * Second, the subject line ("Subject: xyz") should be relevant to
       all cross-posted groups (e.g. if the thread originated in c.l.a
       and then is cross-posted, think about the message--if there is
       any--explicitly carried over by the subject; some people read the
       subject line only).

     * Finally, it is good and polite practice to mention explicitly in
       the text of a cross-posted article that it is cross-posted and
       where you would like followup articles to go.


   Exaggerated cross-posting is in the same category as junk mail:
   negative publicity.


3.12: I don't have FTP service on the host where I have an account. Is there
any other way I can access FTP sites?

   If you are not connected to the Internet but do send and receive
   email from the net, you can use an "ftp by mail" agent, such as
   ftpmail, which is provided by DEC's Western Research Labs (DECWRL).
   The mail server may be reached by sending a mail message to
   uucp!decwrl!ftpmail or ftpmail@decwrl.dec.com .

   Complete instructions for using ftpmail may be retrieved with a
   message to the above address with subject "ftpmail" and the single
   word "help" as the text of your message. Example query:

To: ftpmail@decwrl.dec.com
Subject: ftpmail

help


3.12.1: The AJPO host has a special e-mail service for FTP.

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

   The following are common examples on how to request services from the
   AJPO host mail server:

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

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

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

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

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

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

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

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

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

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

Subject: directory compiler

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

Subject: directory p*

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

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

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

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

Subject: file-request compiler/README

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

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

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

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

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

Here is a brief description of the available services:

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

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

help:         This service returns this help message.

info:         This service returns this help message.

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

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

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

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


     _________________________________________________________________


4: Compilers


4.1: Is there a list of validated Ada compilers?


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


4.2: Is there a public-domain/free/shareware Ada compiler or interpreter?

   There ARE free Ada systems, and there is a choice: Ada/Ed for Ada 83,
   and GNAT for Ada 95.

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


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

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

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

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

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


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

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

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

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

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

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

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

     * Mac with a 68030 or 68040 processor, System 7, with at least 4 MB
       of RAM, and around 10 MB free hard-disk space.


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

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

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

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

      General

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

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

   The final delivery will be a full Ada 95 implementation with as much
   of the core language and annexes implemented as possible. At final
   delivery, the developers expect to demonstrate to the Ada community a
   reasonably complete and solid implementation of the core language, and
   at least part of the language annexes. This delivery will include full
   sources, and executables for at least the Sun Sparc and PC on OS/2.
   (On PCs, GNAT will need a full 32-bit environment with several
   megabytes of memory.)

   There are a number of official GNAT e-mail addresses:

   gnat-request@cs.nyu.edu
          Send a message to this address to be placed on our external
          mailing list. We send out progress reports, technical reports,
          digests of technical comments and other information.

   gnatchat@cs.nyu.edu
          Send messages to this address for our general consideration.
          Where appropriate, we will digest these comments for
          redistribution to the external mailing list -- unless you
          specifically request that they be considered private.

   gnat-report@cs.nyu.edu
          This address is to be used specifically to report problems with
          the currently available version of the GNAT system. Please be
          as specific as possible in reporting problems. Do not report
          missing features for now!


      OS/2 Version

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

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

      Ports

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

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


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

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

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

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

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

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

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


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

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


    4.4.1: For the Macintosh

   Rational sells a compiler with a Toolbox binding and MPW 3.2. It has
   one limitation for large programs: Packages which contain more than
   32K bytes of data will compile, but not link. It works with System 7,
   and has been reported both as working and not-working on PowerPCs
   (maybe due to a problem with Inits). The interpreter GW/Ada (see
   question 4.2.2) works on all Mac architectures.


    4.4.2: Native compilers for OS/2

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




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

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


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

                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

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

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


Introduction

   Ada is an advanced, modern programming language, designed and
   standardized to support and strongly encourage widely recognized
   software engineering principles: reliability, portability, modularity,
   reusability, programming as a human activity, efficiency,
   maintainability, information hiding, abstract data types, genericity,
   concurrent programming, object-oriented programming, etc.

   All validated Ada compilers (i.e. a huge majority of the commercial
   Ada compilers) have passed a controlled validation process using an
   extensive validation suite. Ada is not a superset or extension of any
   other language. Ada does not allow the dangerous practices or effects
   of old languages, although it does provide standardized mechanisms to
   interface with other languages such as Fortran, Cobol, and C.

   Ada is recognized as an excellent vehicle for education in programming
   and software engineering, including for a first programming course.

   Ada is defined by an international standard (the language reference
   manual, or LRM), which has been revised in 1995. Ada is taught and
   used all around the world (not just in the USA). Ada is used in a very
   wide range of applications: banking, medical devices,
   telecommunications, air traffic control, airplanes, railroad
   signalling, satellites, rockets, etc.

   The latest version of this FAQ is always accessible through WWW as
   http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html#title

Maintenance

   This FAQ is maintained on an individual volunteer basis, by Magnus
   Kempe (Magnus.Kempe@di.epfl.ch). [Note: This is done as a hobby, not
   in my capacity as an employee at the Swiss Federal Institute of
   Technology. --MK]


     _________________________________________________________________

   Report of a product, service, or event, etc., does not constitute an
   endorsement. Opinions (if any) expressed are those of the submitters
   and/or maintainer.
     _________________________________________________________________

Table of Contents:

     * 1: Recent changes to this FAQ

     * 2: Information about this document

     * 3: Elementary questions
          + 3.1: What is Ada?
               o 3.1.1: What are the LRM, RM, and AARM?
               o 3.1.2: Where can I get other information on Ada?
          + 3.2: I have seen the language name capitalized as ADA, as
            well as Ada. Which is right?
          + 3.3: What is Ada 95 (aka Ada 9X)?
               o 3.3.1: Are there already Ada 95 books?
          + 3.4: Is Ada a registered trademark (TM) of the US government?
          + 3.5: Where can I find an electronic version of the Ada
            language reference manual (LRM)?
          + 3.6: Is Ada used in commercial applications?
          + 3.7: How do I do [choose_a_goal] in Ada?
          + 3.8: I think Ada could really benefit from having
            [choose_a_feature] from [choose_a_language] ...
          + 3.9: 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?
               o 3.9.1: Person X is a heckler, should I answer him in
                 public?
          + 3.10: I very strongly agree/disagree with the Ada mandate (or
            a post dealing with it). Why doesn't anyone praise/criticize
            it? Should I?
          + 3.11: Why shouldn't I cross-post my comp.lang.ada messages to
            other comp.lang.* newsgroups?
          + 3.12: I don't have FTP service on the host where I have an
            account. Is there any other way I can access FTP sites?
               o 3.12.1: The AdaIC host has a special e-mail service for
                 FTP.
          + 3.13: Common Confusions
               o 3.13.1: Wasn't Ada designed by some committee? What kind
                 of a language could you possibly get from a committee?
               o 3.13.2: I've heard the DoD is dropping all Military
                 standards to reduce costs, doesn't that mean the
                 mandate to use Ada goes away too?


     * 4: Compilers
          + 4.1: Is there a list of validated Ada compilers?
          + 4.2: Is there a free Ada compiler (or interpreter)?
               o 4.2.1: GNAT, The GNU NYU Ada Translator -- An Ada 95
                 Compiler
               o 4.2.2: Ada/Ed -- An Interpreter for Ada 83 
               o 4.2.3: GW-Ada/Ed -- a souped-up version of Ada/Ed for
                 386/486 DOS and Macintosh machines
          + 4.3: What cheap (<500$) Ada compilers are available?
          + 4.4: Is there an Ada compiler for common machine X/common
            operating system Y?
               o 4.4.1: on the Macintosh?
               o 4.4.2: native for OS/2?
          + 4.5: How can I contact Ada compiler vendor?
          + 4.6: Are Ada 95 compilers compatible with Ada 83?


     * 5: Organizations that deal with Ada and Ada issues
          + 5.1: Ada Joint Program Office (AJPO)
          + 5.2: Ada Information Clearinghouse (AdaIC)
          + 5.3: ACM/SIGAda
          + 5.4: ISO WG 9


     * 6: Tools
          + 6.1: Is there an Ada-mode for Emacs?
          + 6.2: Are there versions of lex and yacc that generate Ada
            code?
          + 6.3: Where can I get a yacc/ayacc grammar to read Ada code?
          + 6.4: What is Anna, and where can I get it?
          + 6.5: What is DRAGOON, and where can I get it?
          + 6.6: Where can I get language translators? And should I?
          + 6.7: What is ASIS?


     * 7: Bindings
          + 7.1: General
          + 7.2: POSIX
               o 7.2.1: What is the status of the POSIX/Ada work?
               o 7.2.2: How can I get a copy of POSIX/Ada?
               o 7.2.3: Is POSIX/Ada available via FTP?
          + 7.3: X Window System


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

     * 9: Resources
          + 9.1: What FTP sites contain information about Ada or Ada
            source?
          + 9.2: Reuse
               o 9.2.1: Are there any free, public-domain, or other
                 general-access software repositories that contain Ada
                 source code and information on reuse?
               o 9.2.2: Is there a database of reusable Ada software
                 components?
          + 9.3: Where can I get Ada benchmark programs?
          + 9.4: Are there any dial-up BBS systems that deal with Ada?


     * 10: Credits

     * 11: Copying this FAQ


     _________________________________________________________________

1: Recent changes to this FAQ

     * 960415: update on GNAT (4.2.1).
     * 960322: updated list of Ada 95 books (3.3.1).
     * 960309: moved annotated list of books (8) to the new Learning Ada
       FAQ.
     * 960228: updated AJPO (5.1) and AdaIC (5.2)information.
     * 960228: updated AdaIC e-mail service for FTP (3.12.1)
     * 960228: ASIS info (6.7) updated.
     * 960228: revised BBS section (9.4).
     * 960130: update and reorg of free Ada compilers (4.2).
     * 960130: updated AJPO information (5.1).
     * 960111: list of vendors (4.5) updated.
     * 960111: validated Ada 95 compilers (4.1).
     * 960111: updated list of Ada 95 books (3.3.1).
     * 960105: please ignore hecklers (3.9.1).
     * 950925: clearing some common confusions: Ada was NOT desiged by
       committee (3.13.1) and the DoD has NOT dropped the mandate
       (3.13.2).
     * 950913: update on Mac compilers (4.4.1)
     * 950828: the change logs now indicate the section/question number.
     * 950819: POSIX bindings status update (7.2.1).
     * 950819: a lot of URL updates: AdaIC files keep moving around.
     * 950725: GW-Ada for Mac info updated (4.2.3).
     * 950630: list of vendors updated (4.5) (email, phone, WWW).
     * 950623: ASIS info updated (6.7).
     * 950613: ACES info updated (9.3).
     * 950406: what are the LRM, RM, and AARM (3.1.1).
     * 950321: upward compatibility between Ada 83 and Ada 95 (4.6).
     * 950228: general URL updates: AdaIC host changed (no longer AJPO).
     * 950221: Ada 9X is officially Ada 95 since February 15, 1995.
     * 950221: added AdaBasis repository (9.2.1).
     * 950207: revised introduction.
     * 950126: revised BBS section (9.4).
     * 950124: approved for posting in *.answers.


   What's important and missing:
     * description of the ACVC
     * CD-ROMs
     * list of regular Ada-related events


     _________________________________________________________________

2: Information about this document

   This file is posted monthly to comp.lang.ada, comp.answers, and
   news.answers.

   This document has a home on the Home of the Brave Ada Programmers
   (HBAP) WWW Server, in hypertext format, URL
   http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html#title

   It is available --as posted in *.answers-- on rtfm.mit.edu, which
   archives all FAQ files posted to *.answers; see directory
   ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/computer-lang/Ada

   The text-only version is also available in directory
   ftp://lglftp.epfl.ch/pub/Ada/FAQ

   Magnus Kempe maintains this document; it's a hobby, not a job.
   Feedback (corrections, suggestions, ideas) about it is to be sent via
   e-mail to Magnus.Kempe@di.epfl.ch
   Thanks.

   In all cases, the most up-to-date version of the FAQ is the version
   maintained on the HBAP WWW Server. Please excuse any formatting
   inconsistencies in the posted, text-only version of this document, as
   it is automatically generated from the on-line, hypertext version.

     _________________________________________________________________


3: Elementary questions


3.1: What is Ada?

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, et caetera. All Ada compilers must pass a
   validation test.


    3.1.1: What are the LRM, RM, and AARM? 

   LRM is the abbreviated name of the Language Reference Manual,
   sometimes called Ada Reference Manual. "LRM" was often used in the
   days of Ada 83; "RM" or "rm95" is frequently used since the 1995
   revision of the language. Ada 95 is for the most part an extension of
   Ada 83.

   What is the AARM for Ada 83?
          Compiled by K. Nyberg, it contains the full text of
          ANSI/MIL-STD-1815A with inline annotations derived from the Ada
          Rapporteur Group of the International Organization for
          Standards responsible for maintaining the Ada language.

          Distribution has been transferred by Grebyn Corporation to the
          Ada Resource Association, (614) 538-9232. The organization is
          going to be offering it as a "member benefit", or something
          like that for individual members, and will probably sell
          additional copies.

   What is the AARM for Ada 95?
          Contains the entire text of the Ada 95 standard (ISO/IEC
          8652:1995(E)), plus various annotations. It is intended
          primarily for compiler writers, validation test writers, and
          other language lawyers. The annotations include detailed
          rationale for individual rules and explanations of some of the
          more arcane interactions among the rules.


    3.1.2: Where can I get other information on Ada?

   If you have questions which this FAQ does not answer, you may contact
   the Ada Information Clearinghouse (see below, question 5.2), use the
   Usenet newsgroup comp.lang.ada, read the Ada Yearbook published by Ada
   UK, or the Ada Resources published by the ACM.

   To find out more, you may also use the HBAP WWW Server, URL
   http://lglwww.epfl.ch/Ada/, which hosts three companion FAQs:
   Ada/programming, Ada/learning, and Ada/ada-www-server (also
   regularly posted to comp.lang.ada).

   I encourage you to check out the changes listed early in the document
   each time this FAQ is posted.


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

   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 this forum
   is not devoted to the American Dental Association :-).

   In addition, the ISO and IEEE recommend as a general guideline that
   one spell like proper names the language names that are pronounced as
   they are spelled (e.g. Ada, Pascal, Cobol, Basic, Fortran). Note: that
   a name originally resulted from abbreviation is considered irrelevant.
   For language names that are phonetically spelled (e.g. C, C++, APL,
   PL/1), they should be spelled in all uppercase.


3.3: What is Ada 95 (aka Ada 9X)?

   Ada 95 refers to the current, revised version of the Ada standard.
   (Ada 83 was the original ANSI/ISO standard.) The Ada 9X Project Office
   was responsible for the revision, and worked closely with the
   international community to ensure Ada retains its ISO status. The Ada
   9X process was very open. Many documents are still available for
   downloading from
   ftp://sw-eng.falls-church.va.us/public/AdaIC/pol-hist/history/9x-history
   on the AdaIC host. The Ada 9X Project Office has been closed.

   Ada 95 includes four major areas of enhancement: support for
   object-oriented programming, data-oriented synchronization,
   programming-in-the-large, and realtime systems.

   A great deal of attention was focused on transitioning to Ada 95. The
   validation test suite was 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 after the official revision
   of the standard (15 February 1995), 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 were also encouraged to release beta-versions of their Ada 95
   implementations prior to validation.

   There is also a complete GNU Ada 95 compilation system (GNAT)
   available since late 1993. (See question 4.2.1.)


    3.3.1: Are there already Ada 95 books?

   The Ada 95 Rationale explains how to use the new mechanisms of the
   language; it is quite readable. The new Reference Manual is THE
   reference, of course. The Annotated Reference Manual provides detailed
   explanations of the rules of the language (good for implementors and
   language lawyers). All three are available in their final versions by
   FTP from the AJPO host, in directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
   (v6.0).

   There are already a number of books which have sections on Ada 95 or
   have completely integrated the revised definition of the language into
   their presentation:
     * J. Barnes. Programming in Ada 95
       Addison-Wesley. Price $43.25. ISBN 0-201-87700-7.
     * J. Barnes. Programming in Ada: Plus an Overview of Ada 9X.
       Addison Wesley. Price $43.25. ISBN 0-201-62407-9.
       An Ada 83 book with indications of what Ada 95 adds.
     * G. Booch and D. Bryan. Software Engineering with Ada.
       3rd ed., Benjamin/Cummings, 1994. (price?) ISBN 0-8053-0608-0.
       Published before finalization of Ada 9X, thus not completely
       up-to-date.
     * A. Burns and A. Wellings. Concurrency in Ada.
       Cambridge University Press. Price GBP 25 (about $45). ISBN
       0-521-41471-7.
     * N. Cohen. Ada as a Second Language.
       2nd ed., McGraw-Hill. Price about $60. ISBN 0-07-011607-5.
     * Naiditch. Rendezvous with Ada 9X.
       2nd ed., John Wiley & Sons, Inc. Price $44.95. ISBN 0-471-01276-9.
     * J. Skansholm. Ada From the Beginning.
       2nd ed., Addison-Wesley. Price GBP 21.95. ISBN 0-201-62448-6.
     * M. Smith. Object Oriented Software with Ada 95. International
       Thomson Computer Press. Price GBP 21.95. ISBN 1-85032-185-X.


   For an annotated list of Ada 95 books, see the companion Learning Ada
   FAQ.


3.4: Is Ada a registered trademark (TM) of the US government?

   No, but it used to be; there is now a "certification mark", which can
   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 on the AdaIC host,
   in
   ftp://sw-eng.falls-church.va.us/public/AdaIC/pol-hist/policy/trademrk.txt


3.5: Where can I find an electronic version of the Ada reference manual (LRM)?


   The revised Reference Manual (RM for Ada 95--v6.0 final version) is
   available, in plain ASCII and Postscript files, in directories
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
       /v6.0
   and (compressed files)
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
       /v6.0.compressed

   This version was released in December 1994 and is freely
   distributable. For language lawyers and implementors, the Annotated
   Ada Reference Manual (AARM) is also available there.

   The old, Ada 83 LRM is available in a compressed set of ASCII files in
   directory ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/83lrm

   Both Ada 83 and Ada 95 reference manuals also exist in hypertext
   format, accessible through the HBAP WWW Server (see the companion FAQ:
   Ada/ada-www-server).


3.6: Is Ada used in commercial applications?

   You bet. Ada is used in e.g. airplanes, air traffic control systems,
   financial systems, telecommunications systems, medical devices.
     * The AdaIC host on the Internet contains a report of Commercial Ada
       Users Working Group (CAUWG) of the Association for Computing
       Machinery's Special Interest Group on Ada (ACM SIGAda). Dated June
       1993, the report is a survey of applications from around the world
       that are written in Ada. It is in
       ftp://sw-eng.falls-church.va.us/public/AdaIC/usage/summary/cauwg.txt

     * 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. For details on
       contacting the AdaIC, see question 5.2.

     * On the AdaIC host, file
       ftp://sw-eng.falls-church.va.us/public/AdaIC/usage/summary/ada-use.txt
       contains a summary of the Ada Usage Database and a number
       of individual project descriptions that may be of interest (the
       commercial projects are listed after the US DoD projects).


3.7: How do I do [choose_a_goal] in Ada?

   This kind of question often revolves around an issue which is
   dependent on a specific implementation or operating system. Thus, in
   order to improve the odds of getting a useful answer, one should
   indicate what the host and target environments are (Ada vendor,
   compiler version, OS version, machine). Ada implementations normally
   come with a vendor-supplied library which provides hooks to the
   environment (operating system, graphics, etc.); check the
   documentation.

   Even in the case of things that are in the language, there are
   implementation dependencies that make it helpful to always have this
   information at hand if people want the most effective help. Note that
   annex F requires "the reference manual of each Ada implementation" to
   "include an appendix (called Appendix F) that describes all
   implementation-dependent characteristics."


3.8: I think Ada could really benefit from having [choose_a_feature] from
[choose_a_language],
or:
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 language wars and only
   waste 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?"

   Further, if you are going to compare programming languages, please
   note "Nebbe's rule":

     If you can't think of a least one area where a language is better
     than your preferred language then you probably aren't competent to
     comment on it.


3.9: 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 the preceding
   question, 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 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.


3.9.1: Person X is a heckler, should I answer him in public?

   Some people seem to devote much of their energy to "flaming" other
   people in various newsgroups. The best advice is to ignore such
   hecklers; in particular, don't follow up to their postings. Even if
   ignoring them often doesn't seem to make them go away, it will at
   least abate the flames.

   And if [like me, MK] you can't stand seeing the messages coming from
   known hecklers, your best option is to add an entry in a "killfile" of
   your newsreader to automatically discard their messages.

   Normally, it should not be necessary to mention any particular name
   here, but since the worst heckler in comp.lang.ada regularly resorts
   to harassment and personal abuse, it seems both necessary and useful
   to point him out to the readers of comp.lang.ada (and especially for
   the sake of newcomers).

   PLEASE DO NOT ANSWER to messages coming from "Colin James III" (use
   e.g. the entry "/Colin James/:j" in your "killfile").


3.10: I very strongly agree/disagree with the Ada mandate. Should I
praise/criticize it?

   First, it is a fact that there is an Ada standard, on which the US
   DoD is aligned (the so-called "mandate"). No shouting match will
   change that. Second, don't believe rumors (about the mandate, its
   withdrawal, its being ignored, etc.) you read in comp.lang.ada, unless
   you have reasons to (i.e. you know the author is trustworthy, or the
   author provides references which you can check, and which you have
   checked yourself at least a couple of times.)

   For your information, here is the text of "Public Law 101-511 Sec
   8092":

     Notwithstanding any other provisions of law, after June 1, 1991,
     where cost effective, all Department of Defense software shall be
     written in the programming language Ada, in the absence of special
     exemption by an official designated by the Secretary of Defense.

    What about discussing the US Ada mandate?

   If you want to argue either for or against US Government Ada policies
   please restrict your postings to "usa" (field "Distribution:").
   Remember that Ada is an international standard, but the US mandate is
   not an international issue.

   Praise of the mandate is usually based on the ideas that a) it is
   better to have one language than 1500 obscure, proprietary languages
   for all DoD-owned non-COTS systems, and b) Ada is a good software
   engineering language, especially when it comes to maintenance.

   Criticism of the mandate is usually based on the ideas that a) a good
   language should not need a mandate (which ignores the fact that before
   standardizing on Ada the DoD had to maintain for 20+ years software
   written in 1500 obscure, proprietary programming languages--which is
   hard and costly), b) the mandate is mostly ineffective, since either
   it is ignored, or too many waivers are granted, or none is necessary
   (a policy issue which will in all likelihood NOT be resolved by
   discussions on comp.lang.ada), and c) no programming language is the
   most appropriate for every problem (true, but
   irrelevant--standardizing on a single good language for all DoD
   development and maintenance is practical, economical, and much better
   than not standardizing at all).

   Finally, whenever you see a message criticizing the Ada language (or
   Ada companies) for losing completely both in the market and under the
   mandate, check the facts for yourself. For the most part, the Ada
   mandate is enforced; in many critical, commercial systems, Ada is the
   language of choice and its adoption a success; in the slowly-changing
   competition of programming languages, FORTRAN and COBOL dominate, and
   Smalltalk, C++, Eiffel, and Ada are all slowly growing. Ada is
   (finally, and we hope seriously) penetrating academia. There is a GNU
   Ada 95 compiler available. And remember that Ada 95 is the first
   internationally standardized object-oriented programming language.

   If you have some new, additional facts, with approriate references so
   that everyone can check for himself, then posting on a mandate-related
   issue is OK. If NOT, then refrain from posting. PLEASE, if someone
   starts a non-factual discussion, the best policy is simply to ignore
   it or, if you have to, you may reply by private e-mail. Try to hold
   the same standards as you would in discussing problem-solving with the
   programming language itself, and put your information in a way which
   encourages positive action; criticism of inefficiency and/or
   ineptitude is fine, as long as it is honest, documented, and polite.


3.11: Why shouldn't I cross-post my comp.lang.ada messages to other
comp.lang.* newsgroups?

   The huge majority of the comp.lang.ada messages are Ada specific, and
   many are from people supporting Ada, so that all threads developing on
   c.l.a end up dealing with Ada.

   Cross-posting should be used with caution and careful thought, for
   various reasons:
     * First, avoid annoying readers of other newsgroup with irrelevant
       Ada messages. If you expect to successfully proselytize by
       cross-posting into newsgroups dedicated to other programming
       languages, think twice! Note that if you are replying to a
       cross-posted article, it is your responsibility to pare down the
       newsgroup lists ("Newsgroups: c.l.a,abc,xyz" and "Followup-to:
       c.l.a,xyz").

     * Second, the subject line ("Subject: xyz") should be relevant to
       all cross-posted groups (e.g. if the thread originated in c.l.a
       and then is cross-posted, think about the message--if there is
       any--explicitly carried over by the subject; some people read the
       subject line only).

     * Finally, it is good and polite practice to mention explicitly in
       the text of a cross-posted article that it is cross-posted and
       where you would like followup articles to go. You should of course
       change the "Followup-to:" header yourself to redirect a thread to
       appropriate newsgroups, in addition to explicitly stating that you
       are doing so. For instance, if you cross-post an original article
       it is a good, polite, and effective idea to redirect followups.


   Exaggerated cross-posting is in the same category as junk mail:
   negative publicity.


3.12: I don't have FTP service on the host where I have an account. Is there
any other way I can access FTP sites?

   If you are not connected to the Internet but do send and receive
   email from the net, you can use an "ftp by mail" agent, such as
   ftpmail, which is provided by DEC's Western Research Labs (DECWRL).
   The mail server may be reached by sending a mail message to
   uucp!decwrl!ftpmail or ftpmail@decwrl.dec.com .

   Complete instructions for using ftpmail may be retrieved with a
   message to the above address with subject "ftpmail" and the single
   word "help" as the text of your message. Example query:

To: ftpmail@decwrl.dec.com
Subject: ftpmail

help


3.12.1: The AdaIC host has a special e-mail service for FTP.

   anonymous file transfer protocol (ftp)

ftp sw-eng.falls-church.va.us
login:      anonymous
password:


   ftpmail: To obtain complete instructions, send e-mail to:

ftpmail@sw-eng.falls-church.va.us

   with the word "help" in the subject line.


3.13: Common Confusions

3.13.1: Wasn't Ada designed by some committee? What kind of a language could
you possibly get from that kind of approach?

   (Tucker Taft, the principal designer of Ada 95, responds)

   I believe most reviewers of Ada 9X (and Ada 83 for that matter) will
   assure you that it was most certainly not designed by committee ;-).

   In fact, with respect to MI, the situation was just the opposite.
   There were several reviewers who pushed hard for building in a
   particular approach to MI. The principle designer (;-) was unconvinced
   that the benefits of building in a particular MI approach outweighed
   the costs as far as complexity. There was no clear winner to use as a
   model in the outside world; even Sather and Eiffel couldn't agree
   exactly on how to resolve the intricacies of MI, despite their strong
   similarities in other areas.


3.13.2: I've heard the DoD is dropping all Military standards to reduce costs,
doesn't that mean the mandate to use Ada goes away too?

   The following memo explains how that decision affects the Ada mandate:

                 OFFICE OF THE SECRETARY OF DEFENSE

                     Washington, DC  20301-1000

                           August 26, 1994


  MEMORANDUM FOR SECRETARIES OF THE MILITARY DEPARTMENTS
                 CHAIRMAN OF THE JOINT CHIEFS OF STAFF
                 UNDER SECRETARY OF DEFENSE (PERSONNEL AND
                 READINESS)
                 UNDER SECRETARY OF DEFENSE (POLICY)
                 COMPTROLLER OF THE DEPARTMENT OF DEFENSE
                 GENERAL COUNSEL OF THE DEPARTMENT OF DEFENSE
                 INSPECTOR GENERAL OF THE DEPARTMENT OF DEFENSE
                 DIRECTOR OF OPERATIONAL TEST AND EVALUATION
                 DIRECTORS OF THE DEFENSE AGENCIES

  SUBJECT:  Use of Ada

       The purpose of this memorandum is to reiterate the Department
  of Defense (DoD) commitment to the use of Ada.

       It is DoD policy to use commercial off-the-shelf (COTS)
  software whenever it meets our requirements.  However, when COTS
  software is not available to satisfy requirements and the DoD must
  develop unique software to meet its needs, that software must be
  written in the Ada programming language in accordance with DoD
  Directive 3405.1 and DoD Instruction 5000.2.

       Secretary Perry's June 29, 1994 memorandum, "Specification &
  Standards -- A New Way of Doing Business," states that military
  standards will only be used "as a last resort, with an appropriate
  waiver."  This direction has caused some confusion regarding the
  Ada requirement since most references to Ada cite its MIL-STD
  nomenclature, MIL-STD-1815A.  Ada is also a Federal Information
  Processing Standard (FIPS 119), an American National Standards
  Institute (ANSI) standard (ANSI-1815A-1983), and an International
  Standards Organization (ISO) standard (ISO 8652-1987).  Any of
  these alternative references may be utilized in place of the MIL-
  STD reference in request for proposals, contracts, and other
  similar documents.  Thus, the Ada requirement does not conflict
  with the Secretary's direction, and compliance with both policies
  can be achieved simultaneously.

       Use of other programming languages can be considered if
  proposed by a contractor as part of his best practices since
  waivers to the use of Ada can be granted, where cost-effective, in
  accordance with procedures established in the policy referenced
  above.  However, such proposals require strong justification to
  prove that the overall life-cycle cost will be less than the use of
  Ada will provide.

       Secretary Perry's memorandum encourages practices that satisfy
  the Department's need to build high quality systems that meet
  requirements at affordable costs an in a timely manner.  This
  includes practices which support the development of Defense
  Software.  Ada is not only a facilitator of software engineering
  best practice, but also has inherent features which uniquely
  support both real-time systems and safety-critical systems.  Use of
  Ada also facilitates software reuse and has demonstrated reduced
  support costs.  Accordingly, Ada is a foundation for sound software
  engineering practice.

  /signed/                           /signed/

  Noel Longuemare                    Emmett Paige, Jr.
  Under Secretary of Defense         Assistant Secretary of Defense
  (Acquisition and Technology)       (Command, Control,
  (Acting)                           Communications, and
                                     Intelligence)

  cc:
  DDR&E




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

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



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

                                 comp.lang.ada
                       Frequently Asked Questions (FAQ)

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

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


Introduction

   Ada is an advanced, modern programming language, designed and
   standardized to support and strongly encourage widely recognized
   software engineering principles: reliability, portability, modularity,
   reusability, programming as a human activity, efficiency,
   maintainability, information hiding, abstract data types, genericity,
   concurrent programming, object-oriented programming, etc.

   All validated Ada compilers (i.e. a huge majority of the commercial
   Ada compilers) have passed a controlled validation process using an
   extensive validation suite. Ada is not a superset or extension of any
   other language. Ada does not allow the dangerous practices or effects
   of old languages, although it does provide standardized mechanisms to
   interface with other languages such as Fortran, Cobol, and C.

   Ada is recognized as an excellent vehicle for education in programming
   and software engineering, including for a first programming course.

   Ada is defined by an international standard (the language reference
   manual, or LRM), which has been revised in 1995. Ada is taught and
   used all around the world (not just in the USA). Ada is used in a very
   wide range of applications: banking, medical devices,
   telecommunications, air traffic control, airplanes, railroad
   signalling, satellites, rockets, etc.

   The latest version of this FAQ is always accessible through WWW as
   http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html#title

Maintenance

   This FAQ is maintained on an individual volunteer basis, by Magnus
   Kempe (Magnus.Kempe@di.epfl.ch). [Note: This is done as a hobby, not
   in my capacity as an employee at the Swiss Federal Institute of
   Technology. --MK]


     _________________________________________________________________

   Report of a product, service, or event, etc., does not constitute an
   endorsement. Opinions (if any) expressed are those of the submitters
   and/or maintainer.
     _________________________________________________________________

Table of Contents:

     * 1: Recent changes to this FAQ

     * 2: Information about this document

     * 3: Elementary questions
          + 3.1: What is Ada?
               o 3.1.1: What are the LRM, RM, and AARM?
               o 3.1.2: Where can I get other information on Ada?
          + 3.2: I have seen the language name capitalized as ADA, as
            well as Ada. Which is right?
          + 3.3: What is Ada 95 (aka Ada 9X)?
               o 3.3.1: Are there already Ada 95 books?
          + 3.4: Is Ada a registered trademark (TM) of the US government?
          + 3.5: Where can I find an electronic version of the Ada
            language reference manual (LRM)?
          + 3.6: Is Ada used in commercial applications?
          + 3.7: How do I do [choose_a_goal] in Ada?
          + 3.8: I think Ada could really benefit from having
            [choose_a_feature] from [choose_a_language] ...
          + 3.9: 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?
               o 3.9.1: Person X is a heckler, should I answer him in
                 public?
          + 3.10: I very strongly agree/disagree with the Ada mandate (or
            a post dealing with it). Why doesn't anyone praise/criticize
            it? Should I?
          + 3.11: Why shouldn't I cross-post my comp.lang.ada messages to
            other comp.lang.* newsgroups?
          + 3.12: I don't have FTP service on the host where I have an
            account. Is there any other way I can access FTP sites?
               o 3.12.1: The AdaIC host has a special e-mail service for
                 FTP.
          + 3.13: Common Confusions
               o 3.13.1: Wasn't Ada designed by some committee? What kind
                 of a language could you possibly get from a committee?
               o 3.13.2: I've heard the DoD is dropping all Military
                 standards to reduce costs, doesn't that mean the
                 mandate to use Ada goes away too?


     * 4: Compilers
          + 4.1: Is there a list of validated Ada compilers?
          + 4.2: Is there a free Ada compiler (or interpreter)?
               o 4.2.1: GNAT, The GNU NYU Ada Translator -- An Ada 95
                 Compiler
               o 4.2.2: Ada/Ed -- An Interpreter for Ada 83 
               o 4.2.3: GW-Ada/Ed -- a souped-up version of Ada/Ed for
                 386/486 DOS and Macintosh machines
          + 4.3: What cheap (<500$) Ada compilers are available?
          + 4.4: Is there an Ada compiler for common machine X/common
            operating system Y?
               o 4.4.1: on the Macintosh?
               o 4.4.2: native for OS/2?
          + 4.5: How can I contact Ada compiler vendor?
          + 4.6: Are Ada 95 compilers compatible with Ada 83?


     * 5: Organizations that deal with Ada and Ada issues
          + 5.1: Ada Joint Program Office (AJPO)
          + 5.2: Ada Information Clearinghouse (AdaIC)
          + 5.3: ACM/SIGAda
          + 5.4: ISO WG 9


     * 6: Tools
          + 6.1: Is there an Ada-mode for Emacs?
          + 6.2: Are there versions of lex and yacc that generate Ada
            code?
          + 6.3: Where can I get a yacc/ayacc grammar to read Ada code?
          + 6.4: What is Anna, and where can I get it?
          + 6.5: What is DRAGOON, and where can I get it?
          + 6.6: Where can I get language translators? And should I?
          + 6.7: What is ASIS?


     * 7: Bindings
          + 7.1: General
          + 7.2: POSIX
               o 7.2.1: What is the status of the POSIX/Ada work?
               o 7.2.2: How can I get a copy of POSIX/Ada?
               o 7.2.3: Is POSIX/Ada available via FTP?
          + 7.3: X Window System


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

     * 9: Resources
          + 9.1: What FTP sites contain information about Ada or Ada
            source?
          + 9.2: Reuse
               o 9.2.1: Are there any free, public-domain, or other
                 general-access software repositories that contain Ada
                 source code and information on reuse?
               o 9.2.2: Is there a database of reusable Ada software
                 components?
          + 9.3: Where can I get Ada benchmark programs?
          + 9.4: Are there any dial-up BBS systems that deal with Ada?


     * 10: Credits

     * 11: Copying this FAQ


     _________________________________________________________________

1: Recent changes to this FAQ

     * 960524: the AJPO (5.1) is going away in 1997.
     * 960415: update on GNAT (4.2.1).
     * 960322: updated list of Ada 95 books (3.3.1).
     * 960309: moved annotated list of books (8) to the new Learning Ada
       FAQ.
     * 960228: updated AJPO (5.1) and AdaIC (5.2) information.
     * 960228: updated AdaIC e-mail service for FTP (3.12.1).
     * 960228: ASIS info (6.7) updated.
     * 960228: revised BBS section (9.4).
     * 960130: update and reorg of free Ada compilers (4.2).
     * 960130: updated AJPO information (5.1).
     * 960111: list of vendors (4.5) updated.
     * 960111: validated Ada 95 compilers (4.1).
     * 960111: updated list of Ada 95 books (3.3.1).
     * 960105: please ignore hecklers (3.9.1).
     * 950925: clearing some common confusions: Ada was NOT desiged by
       committee (3.13.1) and the DoD has NOT dropped the mandate
       (3.13.2).
     * 950913: update on Mac compilers (4.4.1)
     * 950828: the change logs now indicate the section/question number.
     * 950819: POSIX bindings status update (7.2.1).
     * 950819: a lot of URL updates: AdaIC files keep moving around.
     * 950725: GW-Ada for Mac info updated (4.2.3).
     * 950630: list of vendors updated (4.5) (email, phone, WWW).
     * 950623: ASIS info updated (6.7).
     * 950613: ACES info updated (9.3).
     * 950406: what are the LRM, RM, and AARM (3.1.1).
     * 950321: upward compatibility between Ada 83 and Ada 95 (4.6).
     * 950228: general URL updates: AdaIC host changed (no longer AJPO).
     * 950221: Ada 9X is officially Ada 95 since February 15, 1995.
     * 950221: added AdaBasis repository (9.2.1).
     * 950207: revised introduction.
     * 950126: revised BBS section (9.4).
     * 950124: approved for posting in *.answers.


   What's important and missing:
     * description of the ACVC
     * CD-ROMs
     * list of regular Ada-related events


     _________________________________________________________________

2: Information about this document

   This file is posted monthly to comp.lang.ada, comp.answers, and
   news.answers.

   This document has a home on the Home of the Brave Ada Programmers
   (HBAP) WWW Server, in hypertext format, URL
   http://lglwww.epfl.ch/Ada/FAQ/comp-lang-ada.html#title

   It is available --as posted in *.answers-- on rtfm.mit.edu, which
   archives all FAQ files posted to *.answers; see directory
   ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/computer-lang/Ada

   The text-only version is also available in directory
   ftp://lglftp.epfl.ch/pub/Ada/FAQ

   Magnus Kempe maintains this document; it's a hobby, not a job.
   Feedback (corrections, suggestions, ideas) about it is to be sent via
   e-mail to Magnus.Kempe@di.epfl.ch
   Thanks.

   In all cases, the most up-to-date version of the FAQ is the version
   maintained on the HBAP WWW Server. Please excuse any formatting
   inconsistencies in the posted, text-only version of this document, as
   it is automatically generated from the on-line, hypertext version.

     _________________________________________________________________


3: Elementary questions


3.1: What is Ada?

   Ada is an advanced, modern programming language, designed and
   standardized to support widely recognized software engineering
   principles: reliability, portability, modularity, reusability,
   programming as a human activity, efficiency, maintainability,
   information hiding, abstract data types, concurrent programming,
   object-oriented programming, et caetera. All Ada compilers must pass a
   validation test.


    3.1.1: What are the LRM, RM, and AARM? 

   LRM is the abbreviated name of the Language Reference Manual,
   sometimes called Ada Reference Manual. "LRM" was often used in the
   days of Ada 83; "RM" or "rm95" is frequently used since the 1995
   revision of the language. Ada 95 is for the most part an extension of
   Ada 83.

   What is the AARM for Ada 83?
          Compiled by K. Nyberg, it contains the full text of
          ANSI/MIL-STD-1815A with inline annotations derived from the Ada
          Rapporteur Group of the International Organization for
          Standards responsible for maintaining the Ada language.

          Distribution has been transferred by Grebyn Corporation to the
          Ada Resource Association, (614) 538-9232. The organization is
          going to be offering it as a "member benefit", or something
          like that for individual members, and will probably sell
          additional copies.

   What is the AARM for Ada 95?
          Contains the entire text of the Ada 95 standard (ISO/IEC
          8652:1995(E)), plus various annotations. It is intended
          primarily for compiler writers, validation test writers, and
          other language lawyers. The annotations include detailed
          rationale for individual rules and explanations of some of the
          more arcane interactions among the rules.


    3.1.2: Where can I get other information on Ada?

   If you have questions which this FAQ does not answer, you may contact
   the Ada Information Clearinghouse (see below, question 5.2), use the
   Usenet newsgroup comp.lang.ada, read the Ada Yearbook published by Ada
   UK, or the Ada Resources published by the ACM.

   To find out more, you may also use the HBAP WWW Server, URL
   http://lglwww.epfl.ch/Ada/, which hosts three companion FAQs:
   Ada/programming, Ada/learning, and Ada/ada-www-server (also
   regularly posted to comp.lang.ada).

   I encourage you to check out the changes listed early in the document
   each time this FAQ is posted.


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

   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 this forum
   is not devoted to the American Dental Association :-).

   In addition, the ISO and IEEE recommend as a general guideline that
   one spell like proper names the language names that are pronounced as
   they are spelled (e.g. Ada, Pascal, Cobol, Basic, Fortran). Note: that
   a name originally resulted from abbreviation is considered irrelevant.
   For language names that are phonetically spelled (e.g. C, C++, APL,
   PL/1), they should be spelled in all uppercase.


3.3: What is Ada 95 (aka Ada 9X)?

   Ada 95 refers to the current, revised version of the Ada standard.
   (Ada 83 was the original ANSI/ISO standard.) The Ada 9X Project Office
   was responsible for the revision, and worked closely with the
   international community to ensure Ada retains its ISO status. The Ada
   9X process was very open. Many documents are still available for
   downloading from
   ftp://sw-eng.falls-church.va.us/public/AdaIC/pol-hist/history/9x-history
   on the AdaIC host. The Ada 9X Project Office has been closed.

   Ada 95 includes four major areas of enhancement: support for
   object-oriented programming, data-oriented synchronization,
   programming-in-the-large, and realtime systems.

   A great deal of attention was focused on transitioning to Ada 95. The
   validation test suite was 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 after the official revision
   of the standard (15 February 1995), 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 were also encouraged to release beta-versions of their Ada 95
   implementations prior to validation.

   There is also a complete GNU Ada 95 compilation system (GNAT)
   available since late 1993. (See question 4.2.1.)


    3.3.1: Are there already Ada 95 books?

   The Ada 95 Rationale explains how to use the new mechanisms of the
   language; it is quite readable. The new Reference Manual is THE
   reference, of course. The Annotated Reference Manual provides detailed
   explanations of the rules of the language (good for implementors and
   language lawyers). All three are available in their final versions by
   FTP from the AdaIC host, in directory
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
   (v6.0).

   There are already a number of books which have sections on Ada 95 or
   have completely integrated the revised definition of the language into
   their presentation:
     * J. Barnes. Programming in Ada 95
       Addison-Wesley. Price $43.25. ISBN 0-201-87700-7.
     * J. Barnes. Programming in Ada: Plus an Overview of Ada 9X.
       Addison Wesley. Price $43.25. ISBN 0-201-62407-9.
       An Ada 83 book with indications of what Ada 95 adds.
     * G. Booch and D. Bryan. Software Engineering with Ada.
       3rd ed., Benjamin/Cummings, 1994. (price?) ISBN 0-8053-0608-0.
       Published before finalization of Ada 9X, thus not completely
       up-to-date.
     * A. Burns and A. Wellings. Concurrency in Ada.
       Cambridge University Press. Price GBP 25 (about $45). ISBN
       0-521-41471-7.
     * N. Cohen. Ada as a Second Language.
       2nd ed., McGraw-Hill. Price about $60. ISBN 0-07-011607-5.
     * Naiditch. Rendezvous with Ada 9X.
       2nd ed., John Wiley & Sons, Inc. Price $44.95. ISBN 0-471-01276-9.
     * J. Skansholm. Ada From the Beginning.
       2nd ed., Addison-Wesley. Price GBP 21.95. ISBN 0-201-62448-6.
     * M. Smith. Object Oriented Software with Ada 95. International
       Thomson Computer Press. Price GBP 21.95. ISBN 1-85032-185-X.


   For an annotated list of Ada 95 books, see the companion Learning Ada
   FAQ.


3.4: Is Ada a registered trademark (TM) of the US government?

   No, but it used to be; there is now a "certification mark", which can
   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 on the AdaIC host,
   in
   ftp://sw-eng.falls-church.va.us/public/AdaIC/pol-hist/policy/trademrk.txt


3.5: Where can I find an electronic version of the Ada reference manual (LRM)?


   The revised Reference Manual (RM for Ada 95--v6.0 final version) is
   available, in plain ASCII and Postscript files, in directories
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
       /v6.0
   and (compressed files)
   ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
       /v6.0.compressed

   This version was released in December 1994 and is freely
   distributable. For language lawyers and implementors, the Annotated
   Ada Reference Manual (AARM) is also available there.

   The old, Ada 83 LRM is available in a compressed set of ASCII files in
   directory ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/83lrm


   Both Ada 83 and Ada 95 reference manuals also exist in hypertext
   format, accessible through the HBAP WWW Server (see the companion FAQ:
   Ada/ada-www-server).


3.6: Is Ada used in commercial applications?

   You bet. Ada is used in e.g. airplanes, air traffic control systems,
   financial systems, telecommunications systems, medical devices.
     * The AdaIC host on the Internet contains a report of Commercial Ada
       Users Working Group (CAUWG) of the Association for Computing
       Machinery's Special Interest Group on Ada (ACM SIGAda). Dated June
       1993, the report is a survey of applications from around the world
       that are written in Ada. It is in
       ftp://sw-eng.falls-church.va.us/public/AdaIC/usage/summary/cauwg.txt

     * 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. For details on
       contacting the AdaIC, see question 5.2.

     * On the AdaIC host, file
       ftp://sw-eng.falls-church.va.us/public/AdaIC/usage/summary/ada-use.txt
       contains a summary of the Ada Usage Database and a number
       of individual project descriptions that may be of interest (the
       commercial projects are listed after the US DoD projects).


3.7: How do I do [choose_a_goal] in Ada?

   This kind of question often revolves around an issue which is
   dependent on a specific implementation or operating system. Thus, in
   order to improve the odds of getting a useful answer, one should
   indicate what the host and target environments are (Ada vendor,
   compiler version, OS version, machine). Ada implementations normally
   come with a vendor-supplied library which provides hooks to the
   environment (operating system, graphics, etc.); check the
   documentation.

   Even in the case of things that are in the language, there are
   implementation dependencies that make it helpful to always have this
   information at hand if people want the most effective help. Note that
   annex F requires "the reference manual of each Ada implementation" to
   "include an appendix (called Appendix F) that describes all
   implementation-dependent characteristics."


3.8: I think Ada could really benefit from having [choose_a_feature] from
[choose_a_language],
or:
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 language wars and only
   waste 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?"

   Further, if you are going to compare programming languages, please
   note "Nebbe's rule":

     If you can't think of a least one area where a language is better
     than your preferred language then you probably aren't competent to
     comment on it.


3.9: 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 the preceding
   question, 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 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.


3.9.1: Person X is a heckler, should I answer him in public?

   Some people seem to devote much of their energy to "flaming" other
   people in various newsgroups. The best advice is to ignore such
   hecklers; in particular, don't follow up to their postings. Even if
   ignoring them often doesn't seem to make them go away, it will at
   least abate the flames.

   And if [like me, MK] you can't stand seeing the messages coming from
   known hecklers, your best option is to add an entry in a "killfile" of
   your newsreader to automatically discard their messages.

   Normally, it should not be necessary to mention any particular name
   here, but since the worst heckler in comp.lang.ada regularly resorts
   to harassment and personal abuse, it seems both necessary and useful
   to point him out to the readers of comp.lang.ada (and especially for
   the sake of newcomers).

   PLEASE DO NOT ANSWER to messages coming from "Colin James III" (use
   e.g. the entry "/Colin James/:j" in your "killfile").


3.10: I very strongly agree/disagree with the Ada mandate. Should I
praise/criticize it?

   First, it is a fact that there is an Ada standard, on which the US
   DoD is aligned (the so-called "mandate"). No shouting match will
   change that. Second, don't believe rumors (about the mandate, its
   withdrawal, its being ignored, etc.) you read in comp.lang.ada, unless
   you have reasons to (i.e. you know the author is trustworthy, or the
   author provides references which you can check, and which you have
   checked yourself at least a couple of times.)

   For your information, here is the text of "Public Law 101-511 Sec
   8092":

     Notwithstanding any other provisions of law, after June 1, 1991,
     where cost effective, all Department of Defense software shall be
     written in the programming language Ada, in the absence of special
     exemption by an official designated by the Secretary of Defense.

    What about discussing the US Ada mandate?

   If you want to argue either for or against US Government Ada policies
   please restrict your postings to "usa" (field "Distribution:").
   Remember that Ada is an international standard, but the US mandate is
   not an international issue.

   Praise of the mandate is usually based on the ideas that a) it is
   better to have one language than 1500 obscure, proprietary languages
   for all DoD-owned non-COTS systems, and b) Ada is a good software
   engineering language, especially when it comes to maintenance.

   Criticism of the mandate is usually based on the ideas that a) a good
   language should not need a mandate (which ignores the fact that before
   standardizing on Ada the DoD had to maintain for 20+ years software
   written in 1500 obscure, proprietary programming languages--which is
   hard and costly), b) the mandate is mostly ineffective, since either
   it is ignored, or too many waivers are granted, or none is necessary
   (a policy issue which will in all likelihood NOT be resolved by
   discussions on comp.lang.ada), and c) no programming language is the
   most appropriate for every problem (true, but
   irrelevant--standardizing on a single good language for all DoD
   development and maintenance is practical, economical, and much better
   than not standardizing at all).

   Finally, whenever you see a message criticizing the Ada language (or
   Ada companies) for losing completely both in the market and under the
   mandate, check the facts for yourself. For the most part, the Ada
   mandate is enforced; in many critical, commercial systems, Ada is the
   language of choice and its adoption a success; in the slowly-changing
   competition of programming languages, FORTRAN and COBOL dominate, and
   Smalltalk, C++, Eiffel, and Ada are all slowly growing. Ada is
   (finally, and we hope seriously) penetrating academia. There is a GNU
   Ada 95 compiler available. And remember that Ada 95 is the first
   internationally standardized object-oriented programming language.

   If you have some new, additional facts, with approriate references so
   that everyone can check for himself, then posting on a mandate-related
   issue is OK. If NOT, then refrain from posting. PLEASE, if someone
   starts a non-factual discussion, the best policy is simply to ignore
   it or, if you have to, you may reply by private e-mail. Try to hold
   the same standards as you would in discussing problem-solving with the
   programming language itself, and put your information in a way which
   encourages positive action; criticism of inefficiency and/or
   ineptitude is fine, as long as it is honest, documented, and polite.


3.11: Why shouldn't I cross-post my comp.lang.ada messages to other
comp.lang.* newsgroups?

   The huge majority of the comp.lang.ada messages are Ada specific, and
   many are from people supporting Ada, so that all threads developing on
   c.l.a end up dealing with Ada.

   Cross-posting should be used with caution and careful thought, for
   various reasons:
     * First, avoid annoying readers of other newsgroup with irrelevant
       Ada messages. If you expect to successfully proselytize by
       cross-posting into newsgroups dedicated to other programming
       languages, think twice! Note that if you are replying to a
       cross-posted article, it is your responsibility to pare down the
       newsgroup lists ("Newsgroups: c.l.a,abc,xyz" and "Followup-to:
       c.l.a,xyz").

     * Second, the subject line ("Subject: xyz") should be relevant to
       all cross-posted groups (e.g. if the thread originated in c.l.a
       and then is cross-posted, think about the message--if there is
       any--explicitly carried over by the subject; some people read the
       subject line only).

     * Finally, it is good and polite practice to mention explicitly in
       the text of a cross-posted article that it is cross-posted and
       where you would like followup articles to go. You should of course
       change the "Followup-to:" header yourself to redirect a thread to
       appropriate newsgroups, in addition to explicitly stating that you
       are doing so. For instance, if you cross-post an original article
       it is a good, polite, and effective idea to redirect followups.


   Exaggerated cross-posting is in the same category as junk mail:
   negative publicity.


3.12: I don't have FTP service on the host where I have an account. Is there
any other way I can access FTP sites?

   If you are not connected to the Internet but do send and receive
   email from the net, you can use an "ftp by mail" agent, such as
   ftpmail, which is provided by DEC's Western Research Labs (DECWRL).
   The mail server may be reached by sending a mail message to
   uucp!decwrl!ftpmail or ftpmail@decwrl.dec.com .

   Complete instructions for using ftpmail may be retrieved with a
   message to the above address with subject "ftpmail" and the single
   word "help" as the text of your message. Example query:

To: ftpmail@decwrl.dec.com
Subject: ftpmail

help


3.12.1: The AdaIC host has a special e-mail service for FTP.

   anonymous file transfer protocol (ftp)

ftp sw-eng.falls-church.va.us
login:      anonymous
password:


   ftpmail: To obtain complete instructions, send e-mail to:

ftpmail@sw-eng.falls-church.va.us

   with the word "help" in the subject line.


3.13: Common Confusions

3.13.1: Wasn't Ada designed by some committee? What kind of a language could
you possibly get from that kind of approach?

   (Tucker Taft, the principal designer of Ada 95, responds)

   I believe most reviewers of Ada 9X (and Ada 83 for that matter) will
   assure you that it was most certainly not designed by committee ;-).

   In fact, with respect to MI, the situation was just the opposite.
   There were several reviewers who pushed hard for building in a
   particular approach to MI. The principle designer (;-) was unconvinced
   that the benefits of building in a particular MI approach outweighed
   the costs as far as complexity. There was no clear winner to use as a
   model in the outside world; even Sather and Eiffel couldn't agree
   exactly on how to resolve the intricacies of MI, despite their strong
   similarities in other areas.


3.13.2: I've heard the DoD is dropping all Military standards to reduce costs,
doesn't that mean the mandate to use Ada goes away too?

   The following memo explains how that decision affects the Ada mandate:

                 OFFICE OF THE SECRETARY OF DEFENSE

                     Washington, DC  20301-1000

                           August 26, 1994


  MEMORANDUM FOR SECRETARIES OF THE MILITARY DEPARTMENTS
                 CHAIRMAN OF THE JOINT CHIEFS OF STAFF
                 UNDER SECRETARY OF DEFENSE (PERSONNEL AND
                 READINESS)
                 UNDER SECRETARY OF DEFENSE (POLICY)
                 COMPTROLLER OF THE DEPARTMENT OF DEFENSE
                 GENERAL COUNSEL OF THE DEPARTMENT OF DEFENSE
                 INSPECTOR GENERAL OF THE DEPARTMENT OF DEFENSE
                 DIRECTOR OF OPERATIONAL TEST AND EVALUATION
                 DIRECTORS OF THE DEFENSE AGENCIES

  SUBJECT:  Use of Ada

       The purpose of this memorandum is to reiterate the Department
  of Defense (DoD) commitment to the use of Ada.

       It is DoD policy to use commercial off-the-shelf (COTS)
  software whenever it meets our requirements.  However, when COTS
  software is not available to satisfy requirements and the DoD must
  develop unique software to meet its needs, that software must be
  written in the Ada programming language in accordance with DoD
  Directive 3405.1 and DoD Instruction 5000.2.

       Secretary Perry's June 29, 1994 memorandum, "Specification &
  Standards -- A New Way of Doing Business," states that military
  standards will only be used "as a last resort, with an appropriate
  waiver."  This direction has caused some confusion regarding the
  Ada requirement since most references to Ada cite its MIL-STD
  nomenclature, MIL-STD-1815A.  Ada is also a Federal Information
  Processing Standard (FIPS 119), an American National Standards
  Institute (ANSI) standard (ANSI-1815A-1983), and an International
  Standards Organization (ISO) standard (ISO 8652-1987).  Any of
  these alternative references may be utilized in place of the MIL-
  STD reference in request for proposals, contracts, and other
  similar documents.  Thus, the Ada requirement does not conflict
  with the Secretary's direction, and compliance with both policies
  can be achieved simultaneously.

       Use of other programming languages can be considered if
  proposed by a contractor as part of his best practices since
  waivers to the use of Ada can be granted, where cost-effective, in
  accordance with procedures established in the policy referenced
  above.  However, such proposals require strong justification to
  prove that the overall life-cycle cost will be less than the use of
  Ada will provide.

       Secretary Perry's memorandum encourages practices that satisfy
  the Department's need to build high quality systems that meet
  requirements at affordable costs an in a timely manner.  This
  includes practices which support the development of Defense
  Software.  Ada is not only a facilitator of software engineering
  best practice, but also has inherent features which uniquely
  support both real-time systems and safety-critical systems.  Use of
  Ada also facilitates software reuse and has demonstrated reduced
  support costs.  Accordingly, Ada is a foundation for sound software
  engineering practice.

  /signed/                           /signed/

  Noel Longuemare                    Emmett Paige, Jr.
  Under Secretary of Defense         Assistant Secretary of Defense
  (Acquisition and Technology)       (Command, Control,
  (Acting)                           Communications, and
                                     Intelligence)

  cc:
  DDR&E




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

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

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

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