From: M.Kempe@ieee.org (Magnus Kempe) Newsgroups: comp.lang.ada,comp.answers,news.answers Distribution: world Subject: Ada FAQ: comp.lang.ada (part [1,2,3] of 3) Followup-To: poster Reply-To: M.Kempe@ieee.org (Magnus Kempe) Summary: comp.lang.ada Frequently Asked Questions (and answers), part [1,2,3] of 3. Please read before posting. Does *not* get into Ada programming questions [for that see the companion Ada/programming FAQ]. Keywords: Ada, comp.lang.ada Organization: None Archive-name: computer-lang/Ada/comp-lang-ada/part[1,2,3] Comp-lang-ada-archive-name: comp-lang-ada/part[1,2,3] Posting-Frequency: monthly Last-modified: 25 December 1997 Last-posted: November 1996
Recent changes to this FAQ are listed in the first section after the table of contents. This document is under explicit copyright.
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.
This FAQ is maintained on an individual volunteer basis, by Magnus Kempe (M.Kempe@ieee.org).
The latest version of this FAQ is always accessible through the Web as
http://www.adahome.com/FAQ/comp-lang-ada.html#title
hosted by the Ada Home,
http://www.adahome.com/
This document has a home on the Home of the Brave Ada Programmers (HBAP) WWW Server, in hypertext format, URL http://www.adahome.com/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://ftp.adahome.com/pub/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
M.Kempe@ieee.org
Thanks.
In all cases, the most up-to-date version of the FAQ is the version maintained on the Ada Home Web site. 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.
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.
(Up to Table of Contents)
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 Ada Home WWW Server, URL http://www.adahome.com/, 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.
(Up to Table of Contents)
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.
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.)
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:
For an annotated list of Ada 95 books, see the companion Learning Ada FAQ.
(Up to Table of Contents)
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
(Up to Table of Contents)
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).
(Up to Table of Contents)
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."
(Up to Table of Contents)
3.8: I think Ada could really benefit from having [choose_a_feature] from [choose_a_language],
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?"
or:
I think Ada is clearly [inferior_or_superior] to [choose_a_language] because it has [choose_a_feature].
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.
(Up to Table of Contents)
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.
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.
(Up to Table of Contents)
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.
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.
(Up to Table of Contents)
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:
Exaggerated cross-posting is in the same category as junk mail: negative publicity.
(Up to Table of Contents)
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
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.uswith the word "help" in the subject line.
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.
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
A very important paper has been available and neglected for too long now; read "Comparing Development Costs of C and Ada", written by Stephen F. Zeigler, Ph.D., of Rational Software Corporation, available in HTML at http://www.rational.com/sitewide/support/whitepapers/dynamic.jtmpl?doc_key=337
If you know someone (programmer or manager) who doesn't understand that Ada is much more efficient, maintainable, and cost-effective than C and its scions, give them this paper to read. Maybe they'll understand the bottom line: Ada is an asset, it is profitable; and by comparison C is a liability--that's a fact.
And there is also a (non-empty!) list of validated Ada 95 compilers at ftp://sw-eng.falls-church.va.us/public/AdaIC/compilers/95val/95vcl.txt
(Strictly speaking these are free to distribute but 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.)
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 (see 9.4), 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.
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 was co-sponsored by ARPA and the Ada Joint Program Office.
The final delivery was a full Ada 95 implementation with as much of the core language and annexes implemented as possible.
Here is the official GNAT e-mail address:
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.
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.
(Up to Table of Contents)
4.2.2: 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.
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:
(Up to Table of Contents)
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, OC Systems, Rational, R.R., Tartan, and Thomson Software Products (ex-Alsys).
OC Systems: OC Systems will distribute PowerAda free to educational institutions wishing to use the product for teaching purposes. Contact by email info@ocsystems.com
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: 608/245-0375; e-mail: Ian@rrsoftware.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.
(Up to Table of Contents)
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).
For professioal development, a port of GNAT for the Macintosh is available
under MachTen, a comercial Unix environment which runs as within the normal
Mac environment.
The company doing the work has set up a WWW server at
http://gnat-mac.com/macada/
and an FTP site at
ftp://pubmcada:@gnat-mac.com/usr/users/macada/public
Other than that there is the Rational (ex-Meridian) OpenAda. OpenAda is an Ada 83 compiler with a Toolbox binding and MPW 3.2, but Rational has dropped it and is not going to upgrade it to Ada 95. 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). It can be ordered from D.C. Heath (price < US$ 100) -- call (800) 334-3284 or +1 (617) 860-1340 or fax +1 (617) 860-1508. Tell the operator you are placing a #1-PREFER order:
Mac version 12 disks plus documentation (35630-1) PC versions Five 3 1/2" disks plus documentation (35629-8) Nine 5 1/4" disks plus documentation (34139-8)
(Up to Table of Contents)
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.
Active Engineering Technologies, Inc. WWW http://www.pcada.com/pcada/ sales email: ada_info@pcada.com Tel: (619) 414-9001 Fax: (619) 414-9192 Ada Core Technologies (ACT) WWW http://www.gnat.com/ questions email: support@gnat.com Tel: (212) 620-7300 Fax: (212) 807-0162 AETECH, Inc.: see Active Engineering Technologies Alsys: see Aonix Aonix (ex-Thomson Software Products) WWW http://www.aonix.com/ questions adasupport@aonix.com sales marketing@aonix.com Tel: (800) 97-AONIX Convex WWW http://www.convex.com/ questions allison@convex.com (Brian Allison) Tel: (214) 497-4346 Cray WWW http://www.cray.com/ questions det@cray.com (Dave Thersleff) Tel: (612) 683-5701 sales svc@cray.com (Sylvia Crain) Tel: (505) 988-2468 DEC WWW http://www.digital.com/home.html DDC-I WWW http://www.ddci.com/ sales sale@ddci.dk Tel: (602) 275-7172 Tel: +45 45 87 11 44 Green Hills Software Inc. WWW http://ghs.com/ghs/html/ghs.html questions support@ghs.com sales eric@ghs.com (Eric Schacherer) Tel: (805) 965-6044 Harris Computer Systems Corporation WWW http://www.hcsc.com/ questions jeffh@ssd.csd.harris.com (Jeff Hollensen) IBM: see OC Systems Inc. Intermetrics WWW http://www.inmet.com/ questions ryer@inmet.inmet.com (Mike Ryer) Irvine Compiler Corp (ICC) WWW http://www.irvine.com/ questions info@irvine.com Meridian: see Rational Software Corporation OC Systems Inc. WWW http://www.ocsystems.com/ questions Email: info@ocsystems.com sales Tel: (703) 359-8160 Fax: (703) 359-8161 Rational Software Corporation WWW http://www.rational.com/ sales product_info@rational.com Tel: (408) 496-3600 or (800) RAT-1212 R.R. Software WWW http://www.rrsoftware.com/ sales Tel: (800) Pc-Ada-4u or (800) 722-3248 Ian@rrsoftware.com Tartan (now Texas Instruments) questions customer-support@tartan.com Tel: (412) 856-3600 (ext 150) sales info@tartan.com Tel: (800) 856-5255 or (412) 856-3600 TeleSoft: see Aonix Thomson Software Products: see Aonix Verdix: see Rational Software Corporation
Note: The AdaIC's Validated Compiler List (see 4.1) contains addresses, usually including e-mail, for compiler-vendor points of contact.
Furthermore, GNAT has a -gnat83 switch which enforces most of the Ada 83 restrictions, and other compilers have similar 95/83 modes.
The AJPO is part of the U.S. Department of Defense; it was created to facilitate the implementation of the DoD's Software Initiative (Ada) throughout the Services, and maintain the integrity of the Ada language. The AJPO sponsors the AdaIC (see below).
NOTE: The AJPO is scheduled to shut down in 1997. Its functions will probably be transferred to other entities. However, the issue of when, or whether to close is being constantly re-evaluated.
The address is:
AJPO CODE JEKS 5600 Columbia Pike Falls-church, VA 22041 phone: (703) 681-2459 email: ajpo@sw-eng.falls-church.va.usThe current staff are:
Their address is:
Ada Information Clearinghouse P.O. Box 1866 Falls Church, VA 22041 phone: (703) 681-2466 fax: (703) 681-2869 or (800) Adaic 11 (232-4211) email: adainfo@sw-eng.falls-church.va.us WWW: http://sw-eng.falls-church.va.us
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, call and request a subscription. There is no charge. The AdaIC also regularly updates and publishes more than 70 separate information flyers. Flyer topics include:
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 their host, in directory ftp://sw-eng.falls-church.va.us/public
(Up to Table of Contents)
5.3: Association for Computing Machinery's Special Interest Group on Ada (ACM SIGAda)
SIGAda's bimonthly publication is Ada Letters.
Price for non-members: $55 (Annual ACM membership dues, $82; students, $25).
Otherwise it costs $20 per year to ACM members; $10 per year to ACM student members.
The address is:
Association for Computing Machinery, Inc. 1515 Broadway New York, NY 10036 212/869-7440SIGAda also has a number of committees and working groups on a variety of topics.
There are several Rapporteur (rap) groups with WG9:
Comments and questions about the Ada standard should be sent to ada-comment@sw-eng.falls-church.va.us, using the format specified in the Ada standard. You can receive e-mail notification of an update to a commentary (optionally including the text of the commentary) by sending a request to ada-comment@sw-eng.falls-church.va.us. Commentaries are generally updated only a few times each year. The text of all commentaries is available by anonymous FTP,
A detailed discussion of ARG procedures and the format of commentaries can be found in the file arg-procedures.{txt|ps|doc} (same dorectory as AIs).
A reformatted copy of the Ada 83 Reference Manual that includes WG9-approved commentaries used to be available from Karl Nyberg (karl@grebyn.com), but note that distribution of the Ada 83 AARM has been transferred by Grebyn Corporation to the Ada Resource Association (3.1.1).
This is still work under development but it is already quite usable. The main features are:
You can find the gnu-ada mode in where did it go? as well as in the PAL, under directory ftp://wuarchive.wustl.edu/pub/languages/ada/swtools/emacs/adamode.
(Up to Table of Contents)
6.2: Are there versions of lex and yacc that generate Ada code?
The Arcadia project produced the tools aflex and ayacc, both written in
Ada and producing Ada code. They can be found in directory
ftp://liege.ics.uci.edu/pub/irus
(Internet address: 128.195.1.5, 128.195.13.1).
(Up to Table of Contents)
6.3: Where can I get a yacc/ayacc grammar to read Ada code?
A yacc and lex grammar for Ada 83 is available via FTP from the
comp.compiler archives at primost.cs.wisc.edu and via e-mail from
the compilers server at compilers-server@iecc.cambridge.ma.us .
A yacc grammar for Ada 95 is available in file ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat/grammar9x.y
and a lex grammar for Ada 95 is available in file ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat/lexer9x.l
(Up to Table of Contents)
6.4: What is Anna, and where can I get it?
Anna is a language for formally specifying Ada programs. It
extends Ada with various different kinds of specification
constructs from ones as simple as assertions, to as complex as
algebraic specifications. A whole lot of tools have been
implemented for Anna, including:
All tools have been developed in Ada and are therefore extremely portable. Anna has been ported to many platforms, details of which can be obtained from the person who handles Anna releases. You can send e-mail to anna-request@anna.stanford.edu for answers to such questions. Actually, there is also a mailing list -- anna-users@anna.stanford.edu. Send e-mail to the earlier address if you want to get on this list.
One could view Anna and its toolset as a *very* significant enhancement of assertions that are provided in languages such as C (using the assert statement). The enhancements are in the form of both (1) many more high level specification constructs; and (2) more sophisticated tool support.
However, there are those who would not even wish to compare Anna with C assertions! :-)
The Anna tools may be found in directory ftp://anna.stanford.edu/pub/anna.
(Up to Table of Contents)
6.5: What is DRAGOON, and where can I get it?
DRAGOON is a language, implemented as an Ada preprocessor (i.e.,
it generates pure Ada). DRAGOON is truly object-oriented,
including complete support for
multiple inheritance. A very nice feature of DRAGOON not found
in many OO languages is the concept of "behavioral" inheritance.
This allows you to keep the concurrent behavior of object
separated from the object class hierarchy.
The book by Colin Atkinson, "Object-Oriented Reuse, Concurrency and Distribution: An Ada-Based Approach" (ACM Press, 1991, ISBN: 0201565277), is very well written and describes the language succinctly and completely.
For a copy of the preprocessor, contact:
Mr. Andrea Di Maio TXT Ingegneria Informatica S.p.A. Via Socrate, 41 20128 Milan, ITALY phone: + 39-2-2700 1001
When a project makes the transition to Ada from some other language, one question that arises is whether to translate older code into Ada. Among the immediate considerations are how much of the code can in fact be translated by a program intended for that purpose, versus how much will still require re-coding by hand. And will the translated code suffer a significant loss in speed of execution? Further, a project must consider whether the translated code will reflect sound software engineering and be readily understandable and modifiable. Or will the translated code be merely "Fortranized Ada" or "Cobolized Ada", or the like, possibly retaining limitations present in the earlier code? Portability is also a problem.
The resolution of such issues will require an understanding of the earlier code, an appreciation of the similarities and differences between its language and Ada, and an evaluation of the translation program under consideration.
If you still want such a tool, the AdaIC maintains a searchable Products and Tools Database at AdaIC (800-AdaIC-11 or 703/685-1477) and ask for a customized search.
ASIS Version 1.1.1 is the last version of the ASIS83 (Ada 83) de facto industry standard; it was finalized, together with the corresponding test suite for ASIS implementations, in June 1994.
The current version of ASIS 95 is ASIS 2.0.E (November 1995). As errors, misunderstandings, and clarifications are discovered, the ASIS Working Group will release new edited versions of the specification.
For more information, there is an ASIS WWW server at http://info.acm.org/sigada/WG/asiswg/asiswg.html
ASIS versions are available in directory ftp://sw-eng.falls-church.va.us/public/AdaIC/work-grp/asiswg
IEEE Standards Committee P1003.5 has worked on Ada bindings to IEEE draft standards 1003.4, Real-Time Extensions and 1003.4a, Threads Extensions. Current plans are to fast-track the real-time amendment (IEEE project P1003.5b) through ISO as soon as it passes its IEEE ballot. IEEE approval is expected "soon" (4Q95/1Q96), as the final round of IEEE balloting is wrapping up. For more information, contact the P1003.5 Chairman, Jim Lonjers (lonjers@vfl.paramax.com, 805/987-9457).
Once you fill all three of the above, then you can start to get answers. In order to keep the answer brief, companies that offer such products are simply listed, along with locations where free versions are available.
Before giving you the list, a little history is in order. The first Xlib bindings that were publically available were done by SAIC for STARS. This implementation had many bugs, but it was there, and it was free. This version was eventually withdrawn from the STARS repository, and has now been replaced with a better one. In addition, SAIC has done an Xt implementation based on these Xlib bindings (also for STARS). NOTE: the above description may well be inaccurate, corrections are welcome.
Now, for the list:
First off, there is a pretty complete list of available bindings for X at the AdaIC. FTP Location: ftp://sw-eng.falls-church.va.us/public/AdaIC/tools/bindings/xwinbind.txt Free versions: STARS: bindings to Xlib and Xt. Available on source.asset.com. Note: the ASSET host no longer takes anonymous FTP. To request an account, contact: info@source.asset.com Non-free versions: SERC: bindings to Xlib/Xt/Motif contact: well!sercmail@apple.com (Scott Cleveland) Verdix: bindings to Xlib/Xt/Motif (Note that bindings to Xview are included with the SunAda Sun4 compiler) contact: moskow@verdix.com (Paul Moskowitz) ATC: bindings to Xlib/Xt/Motif contact: ??? TeleSoft (now part of Aonix, ex-Thomson Software Products, ex-Alsys): bindings to Xlib/Xt/Motif (TeleWindows) (Note that bindings to Xview are included with the TeleSoft Sun4 compiler) contact: marketing@aonix.com X-based GUI (Graphical User Interface) Builders: Objective (OIS): Screen Machine contact: Phil Carrasco (703/264-1900) TeleSoft (now part of Aonix, ex-Thomson Software Products, ex-Alsys): TeleUSE contact: marketing@aonix.com EVB Software Engineering, Inc. : GRAMMI contact : info@evb.com or info_server@evb.com with subject "send grammi" Sun Microsystems: DevGuide contact: ??? SERC: UIL-to-Ada code generator (not really a GUI-builder, but works with several builders to generate Ada instead of other languages). contact: well!sercmail@apple.com (Scott Cleveland)
Otherwise, just for a list of texts (no evaluations or recommendations) take a look at ftp://sw-eng.falls-church.va.us/public/AdaIC/ed-train/adabooks.txt
Mirror: ftp.cdrom.com
European mirror: ftp.cnam.fr (Internet address: 192.33.159.6)
European CD-ROM mirror: ftp.cs.kuleuven.ac.be in pub/Ada-Belgium/cdrom
Note: the ASSET host no longer takes anonymous FTP. To request a free account, contact: info@source.asset.com
(Up to Table of Contents)
9.2: Reuse
9.2.1: Are there any free, public-domain, or other general-access software repositories that contain Ada source code and information on reuse?
There are a number of them, among them PAL (the Public Ada Library),
AdaBasis, and ELSA, described below.
Public Ada Library (formerly Ada Software Repository)
Formerly the Ada Software Repository (ASR), the Public Ada
Library (PAL) is a collection of programs, components, tools,
general information, and educational materials; taking up hundreds
of megabytes, it contains the source code for
hundreds of distinct items as documented in its Master
Index. Previously housed on the SIMTEL20 host computer, it is
now located at Washington University at St. Louis's host
(wuarchive.wustl.edu -- which had been a mirror site for the
ASR). The PAL is available for anonymous FTP, directory:
ftp://wuarchive.wustl.edu/pub/languages/ada
The PAL has its own FAQ, a copy of which is stored in directory
ftp://rtfm.mit.edu/pub/usenet-by-group/comp.lang.ada
which stores the FAQ files posted to news.answers.
AdaBasis
AdaBasis consists of about 560 MB public domain source code and
documents, mainly taken from the Public Ada Library (PAL). The
software has been classified and is presented in a hierarchical
manner, separated in different application domains, and, for some
domains, with an additional multi-faceted searching facility.
The intent is to provide students, teachers and researchers with a large collection of reusable Ada components and systems for use in language and software engineering courses.
AdaBasis is a WWW server at URL http://www.informatik.uni-stuttgart.de/ifi/ps/ada-software/ada-software.html which was set up by the Programming Languages Group of the Institut für Informatik at the University of Stuttgart, Germany. They plan to enlarge the library in the future, and welcome free public domain contributions. For more informations or to make suggestions please contact adabasis@informatik.uni-stuttgart.de
ELSA (previously AdaNet)
ELSA is a component of the Repository Based Software
Engineering (RBSE) Program sponsored by NASA's Technology
Utilization Division. It is a public-domain reuse library
containing value-added software from ASR (PAL), STARS, JPL, many
educational institutions, and various other sources. The
non-software information includes relevant research papers,
standards, and technical reports.
ELSA also distributes components on floppy disks. All of its services are free of charge.
For more information, contact ELSA Client Service at 1-800/444-1458 or lacey@rbse.mountain.net.
(Up to Table of Contents)
9.2.2: Is there some sort of database of re-usable Ada software components?
You might want to join ACM SigAda (see question 5.3) in order to subscribe to Ada Letters.
They publish a list of reusable components on an annual basis.
In fact, it is more of a list of lists, in that it mentions
places that have sets of reusable components. The maintainer
of the Ada Letters "master list" is
levine@sun490.fdu.edu
(also levine@vax.fdu.edu).
To our knowledge this list is NOT available online. Check also the software repositories, mentioned above (question 9.2.1).
The entire ACES, software, and documentation is available on the WWW at URL http://sw-eng.falls-church.va.us/AdaIC/testing/aces/ and is also available for downloading via anonymous FTP from the AdaIC host computer, where it can be found in directory ftp://sw-eng.falls-church.va.us/public/AdaIC/testing/aces
Software Product Services Software Engineering Department BSIQA P.O. Box 375 Milton Keynes MK14 6LL United Kingdom Tel: 0908 220908 UUCP: sed@bsiqa.uucp (Internet: bsiqa!sed@uunet.uu.net)As of February 1993, the current version is the DIY-MAPSE-01 version. It is available at a cost of 3,000 pounds sterling. BSI also offers a validation service at a cost of 24,000 pounds sterling. Principal documents are a User's Manual, a Reference Manual, and a Test Description Document.
The Ada Evaluation System (AES) was merged with the Ada Compiler Evaluation Capability (ACEC) under a joint agreement between the Ministry of Defence of the United Kingdom and the Department of Defense of the United States that was signed in June of 1991. The merged product has been released as the Ada Compiler Evaluation System (ACES), which is the latest version of the ACEC.
The reply message will contain full details of how to obtain source code and documentation by various means, including anonymous FTP. There is no charge for the Hartstone source code.
For people without Internet access, the address to send requests to is:
REST Transition Services Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 Phone: 412/268-7787Hartstone source code may also be retrieved from the PIWG bulletin board. (See below.)
Via a written request or telephone request to the following service:
PIWG Distribution Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 Tel: 412/268-7787As of February 1993, the current release of the PIWG suite is the one dated 11/92. There is no charge for the PIWG benchmarks. Documentation for the PIWG benchmarks consists principally of the READ.ME file distributed with the suite and comments in the individual test programs and command files. There is also additional information about the PIWG suite in the Winter 1990 special edition of Ada Letters (Vol. X, No. 3, special edition on Ada Performance Issues).
AdaIC BBS Tel: 703/681-2845 Baud Rate: 300-28,800 Data bits: 8 Parity: None Stop Bits: 1 Flow Control: XON/XOFF Emulation: VT100 Once a connection is achieved, login: guest password: Ada4sw-eng AdaNet BBS: This is a free service that maintains e-mail connections for people not on the Internet, an Ada source code repository, and a selection of other on-line Ada-related documents. It is sponsored by NASA. Call 800/444-1458 to register for access. Air Force Software Technology Support Center (STSC) BBS Tel: 801/774-6509 Baud: 2400, 1200, 300 Bits: 8 Parity: None Stop Bits: 1 ACM SIGAda Performance Issues Working Group PIWG Ada Benchmarks BBS Tel: 412/268-7020 Embedded Systems Programming Magazine BBS Tel: 415/905-2689 Naval Computer Telecommunications Command Tel: 804/444-7841 (DSN 564-7841) R.R. Software. Inc. Tel: 608/245-0378 9600 baud max.
A precursor to this FAQ was managed by the AdaIC before August 1994.
This FAQ is Copyright © 1994-1998 by Magnus Kempe. It may be freely redistributed --as posted by the copyright holder in comp.lang.ada-- in other forums than Usenet News as long as it is completely unmodified and that no attempt is made to restrict any recipient from redistributing it on the same terms. It may not be sold or incorporated into commercial documents without the explicit written permission of the copyright holder.
Permission is granted for this document to be made available under the same conditions for file transfer from sites offering unrestricted file transfer on the Internet and from Forums on e.g. Compuserve and Bix.
This document is provided as is, without any warranty.