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

This FAQ is maintained by Magnus Kempe
at the Ada Home, http://www.adahome.com/

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.

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.

Maintenance

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/


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

(Up to Table of Contents)


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://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.

(Up to Table of Contents)


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.

(Up to Table of Contents)

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.

(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.

(Up to Table of Contents)

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.)

(Up to Table of Contents)

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:

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.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.

(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],
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.

(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.

(Up to Table of Contents)

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.

(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.

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.

(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

(Up to Table of Contents)

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.

(Up to Table of Contents)

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.

(Up to Table of Contents)

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

(Up to Table of Contents)

3.14: Is Ada cost-effective?

Yes, it is.

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.

(Up to Table of Contents)


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. For Ada 83, it is in ftp://sw-eng.falls-church.va.us/public/AdaIC/compilers/83val/83vcl.txt
(if the list is updated during the month, the previous one is replaced).

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

(Up to Table of Contents)

4.2: Is there a free Ada compiler (or interpreter)?

There ARE indeed free Ada systems, and there is even choice: Ada/Ed for Ada 83, and AVLAda9X and GNAT for Ada 95. A complete list is available at the Ada Home, http://www.adahome.com/Resources/Compilers/Free.html

(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.)

(Up to Table of Contents)

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

GNAT is a compiler for Ada 95 that accepts Ada 95 source code and generates executable (machine) code (GNAT is a compiler and does not, repeat: DOES NOT, generate C code). It is based on the Free Software Foundation (FSF)'s gcc, a portable compilation system for a variety of languages. GNAT generates relatively good code, and is expected to improve further as its developers transition from developing initial functionality to optimizing it. GNAT supports tasking for many computer platforms, but it does NOT support tasking on MS-DOS at this time. For tasking with GNAT and a PC platform, consider using other operating systems such as Linux or OS/2 (while we're at it, if you use DOS, consider using a real operating system :-).

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.

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 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:

report@gnat.com
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.

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.

(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.

(Up to Table of Contents)

4.2.3: 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. The files are located in subdirectories "dos" and "mac" of directory ftp://wuarchive.wustl.edu/pub/languages/ada/compiler/adaed/gwu

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).

(Up to Table of Contents)

4.4.1: For the Macintosh

It depends on whether you want a compiler for serious development or just a learning tool. The free GW-Ada/Ed-Mac (see question 4.2.3) is the latter; it works on all Mac architectures. GW-Ada is a nice learning tool with an easy-to-use IDE, but it generates interpreted virtual code, not Mac apps.

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.

(Up to Table of Contents)

4.5: How can I contact Ada compiler vendors?

Here is a non-exhaustive list (possibly out-of-date, for the moment) of email and phone contacts for questions and/or sales.
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.

(Up to Table of Contents)

4.6: Are Ada 95 compilers compatible with Ada 83?

Yes, absolutely. Ada 95 is very close to upwards compatible with Ada 83, so you will find that an Ada 95 compiler is in practice "compatible" with the Ada 83 compiler you have used or are using. The compatibility really depends on what kind of code you have written, so one should understand what has evolved, what was considered broken and is now fixed, as well as what is new. There are two excellent documents that will help immensely in that respect:

Furthermore, GNAT has a -gnat83 switch which enforces most of the Ada 83 restrictions, and other compilers have similar 95/83 modes.

(Up to Table of Contents)


5: Organizations that deal with Ada and Ada issues

5.1: Ada Joint Program Office (AJPO)

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.us
The current staff are:
Chief
Dr. Charles B. ("Chuck") Engle, Jr. -- engle1c@sw-eng.falls-church.va.us
AJPO Program Manager
Mr. Jay Lynagh -- lynagh@sw-eng.falls-church.va.us
AJPO Senior Analyst
Ms. Joan McGarity -- mcgarity@sw-eng.falls-church.va.us
Contracts Liaison
Mr. Gary Shupe -- shupeg@sw-eng.falls-church.va.us

(Up to Table of Contents)

5.2: Ada Information Clearinghouse (AdaIC)

The Ada Information Clearinghouse (AdaIC) provides a large spectrum of information on Ada. IIT Research Institute operates the AdaIC for the US DoD Ada Joint Program Office (AJPO).

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-7440
SIGAda also has a number of committees and working groups on a variety of topics.

(Up to Table of Contents)

5.4: ISO Working Group 9 (ISO-IEC/JTC1/SC22/WG9, WG9 for short)

This is a working group that deals with Ada within the International Standardization Organization. For more information, you can find online information about WG9 at http://www.adahome.com/Ammo/Associations/WG9.html

There are several Rapporteur (rap) groups with WG9:

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

Comments and questions about the Ada standard should be sent to ada-comment@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).

Uniformity Rapporteur Group (URG)
Responsible for evaluating Uniformity Issues (UIs). UIs specify/recommend specific choices for the compiler implementor, where the language permits implementation freedom. The "canonical example" is UI-8, on integer types. This UI recommends that integers be at least 32 bits, and provides names for the other predefined integer types. The goal of the URG and the UI's is to further Ada portability by providing uniform implementations of implementation-dependent features commonly used by Ada applications.

(Up to Table of Contents)


6: Tools

6.1: Is there an Ada-mode for Emacs?

There are 3 Ada modes for Emacs:

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:
  1. The standard DIANA extension packages, parsers, pretty-printers.
  2. Semantic checker (very similar to standard semantic checkers for programming languages).
  3. Specification analyzer -- this is a tool used to test a specification for correctness before a program based on the specification is written.
  4. Annotation transformer -- this transforms Anna specification constructs into checks on the Ada program that is developed based on the specification. This tool is currently in the process of being enhanced so that it can handle at least all the legal Ada programs in the ACVC test-suite.
  5. Runtime debugger -- The instrumented program output by the annotation transormer can be run with a special debugger that allows program debugging based on formal specifications.

All tools have been developed in Ada and are therefore extremely portable. Anna has been ported to many platforms, details of which can be obtained from the person who handles Anna releases. You can send e-mail to anna-request@anna.stanford.edu for answers to such questions. Actually, there is also a mailing list -- anna-users@anna.stanford.edu. Send e-mail to the earlier address if you want to get on this list.

One could view Anna and its toolset as a *very* significant enhancement of assertions that are provided in languages such as C (using the assert statement). The enhancements are in the form of both (1) many more high level specification constructs; and (2) more sophisticated tool support.

However, there are those who would not even wish to compare Anna with C assertions! :-)

The Anna tools may be found 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

(Up to Table of Contents)

6.6: Where can I get language translators?

First: Should I?
In addition to all the usual caveats, it should be noted that automatic translation is a controversial issue.

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.

(Up to Table of Contents)

6.7: What is ASIS?

The Ada Semantic Interface Specification is a layered vendor-independent open architecture. ASIS queries and services provide a consistent interface to information within the Ada Ada compilation environment. Thus it is envisioned that tool makers should be able to create ASIS clients--shielded and free from the implementation details of each Ada compiler vendor's proprietary compilation environment and intermediate representation(s).

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

(Up to Table of Contents)


7: Bindings

7.1: General

The AdaIC (see question 5.2, above) has a report on "Available Ada Bindings". It can be ordered in hardcopy as flyer T82, or it can be downloaded. It is available by anonymous FTP on the AdaIC host in directory ftp://sw-eng.falls-church.va.us/public/AdaIC/tools/bindings

(Up to Table of Contents)

7.2: POSIX/Ada

7.2.1: What is the status of the POSIX/Ada work?

The Ada Binding to POSIX System Services (IEEE Std 1003.5-1992) was recently approved as ISO 14519.1:1995. The IEEE approved IEEE Standard 1003.5-1992 in June 1992. This is the Ada Binding to the facilities defined in ISO 9945-1:1989/IEEE 1003.1-1990, the POSIX System Services.

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).

7.2.2: How can I get a copy of POSIX/Ada?

You can buy a copy of the standard from the IEEE. The order number is "SH 15354", and the mailing address is "IEEE Service Center, 445 Hoes Lane, Piscataway, NJ 08855-1331". They will accept credit-card orders at 1-800/678-4333. The cost is $62.50 + $5.00 s/h ($43.75 + $4.00 s/h for IEEE Members).

7.2.3: Is it available via FTP?

Current IEEE policy prohibits electronic distribution of IEEE standards. Proceeds from the sale of IEEE standards help support the IEEE standards program. However, The POSIX P1003.5 committee has been able to work out an arrangement with the IEEE to make the POSIX/Ada package specifications available for distribution via e-mail and anonymous FTP from directory ftp://sw-eng.falls-church.va.us/public/AdaIC/source-code/bindings/POSIX-bindings

(Up to Table of Contents)

7.3: How do I interface X Window System with Ada?

This question turns out to be pretty darn hard to answer easily. There are at least three variables that need to be filled:
  1. platform where you are going to be running.
  2. compiler you would like to use.
  3. level/flavor of X you would like to run (e.g., just need bindings to Xlib, want Openlook as opposed to Motif, etc).

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)

(Up to Table of Contents)


8: Is there a list of good Ada books?

An extensive, annotated list is included in the companion Learning Ada FAQ.

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

(Up to Table of Contents)


9: Resources

9.1: What FTP sites contain information about Ada or Ada source?

Public Ada Library (formerly Ada Software Repository)
wuarchive.wustl.edu (Internet address: 128.252.135.4)

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

Ada-Belgium ftp server
ftp.cs.kuleuven.ac.be in pub/Ada-Belgium

AdaIC (Ada Information Clearinghouse)
sw-eng.falls-church.va.us in public/AdaIC [mirrored by the PAL, listed above] (Internet address: 199.75.54.2)

ASSET / STARS (Software Technology for Adaptable, Reliable Systems):
source.asset.com (Internet Address: 192.131.125.10)

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).

(Up to Table of Contents)

9.3: Where can I get Ada benchmark programs?

In addition to the information below, you may also wish to look at the AdaIC flyer "How to Obtain Benchmark Performance Test Suites and Results", flyer C15, file benchmrk.txt.

The Ada Compiler Evaluation Capability/Ada Compiler Evaluation System

The Ada Compiler Evaluation System (ACES) is a set of tools for systematically measuring the performance and usability of Ada compilation and execution systems (on a specific operating system).

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

The Ada Evaluation System

The Ada Evaluation System (AES) may be obtained from the British Standards Institute at the following address:
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.

Hartstone Benchmarks

Electronic-mail requests for Hartstone should be sent to the following Internet address: hartstone-info@sei.cmu.edu

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-7787
Hartstone source code may also be retrieved from the PIWG bulletin board. (See below.)

The PIWG Benchmarks

The ACM Performance Issues Working Group (PIWG) benchmarks may be obtained in one of three ways:
  1. Via anonymous FTP from the sw-eng.falls-church.va.us machine. Users should issue the command "ftp sw-eng.falls-church.va.us" and log in using the word "anonymous" as the login name and an identifying string (e.g., the user's e-mail address) as password. Change directory ("cd" command) to the "public/piwg/piwg_11_92" directory and use the FTP file-transfer commands to retrieve the files. The README file contains information about using the benchmarks.

  2. Via the PIWG bulletin board. Ideally, users should access this from a PC (rather than a dumb terminal) using a modem capable of sending and receiving at 1200 baud or higher. The number of the bulletin board is 412/268-7020. Once connected to the bulletin board, users will be able to navigate their way around the system using simple menus that the system provides. The point of contact for this service is Gene Rindels, 412/268-6728.
  3. 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-7787
    
    As 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).

(Up to Table of Contents)

9.4: Are there any dial-up BBS systems that deal with Ada?

(Caveat: Telephone numbers can change without notice. If I find out a number doesn't work, it will be noted but the entry will be kept in until I'm sure the service has actually been discontinued. If you are aware of a better number, please let me know.)
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.

(Up to Table of Contents)


10: Credits

The following persons have contributed, directly or indirectly through e.g. comp.lang.ada, to the information gathered in this FAQ: John Aldridge, Stéphane Barbey, John Barnes, Moti Ben-Ari, Heddy Boubaker, Carl Bowman, David Bulman, Susan Carlson, G. Vincent Castellano, Cyrille Comar, Robert Dewar, Patrick Donohoe, Rolf Ebert, Herndon R. Elliott, Dave Emery, Don Erway, Michael Feldman, John Goodenough, Niklas Holsti, Drew Johnson, Michele L. Kee, Mathew Lodge, "tjmesler", Gary Morris, Robb Nebbe, Karl Nyberg, Pascal Obry, Fabrizio Oddone, Richard O'Keefe, Kurt Olender, Manuel Op de Coul, Isaac Pentinmaki, Margie Price, Richard Riehle, Sergey Rybin, Tucker Taft, Keith Thompson, Dave Weller, David Wheeler, and the maintainer has simply :-) organized, polished, or added some information for your satisfaction. The general HTML structure of this FAQ was originally inspired by the (now differently structured) WWW FAQ.

A precursor to this FAQ was managed by the AdaIC before August 1994.

(Up to Table of Contents)


11: Copying this FAQ

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.

(Up to Table of Contents)


Magnus Kempe -- M.Kempe@ieee.org