* 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 --
1994-12-01 16:22 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
1996-04-22 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-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