Frequently Asked Questions (FAQ)


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

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

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

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

The latest version of this FAQ is always accessible through WWW as


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

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

Table of Contents:

1: Recent changes to this FAQ

What's important and missing:

(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

It is available --as posted in *.answers-- on, which archives all FAQ files posted to *.answers; see directory

The text-only version is also available in directory

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

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

(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 HBAP WWW Server, URL, which hosts two companion FAQs: Ada/programming 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 on the AdaIC host. For further information, contact the Ada 9X Project Office, PL/VTES, Kirtland AFB, New Mexico 87117-5776.

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

A great deal of attention is being focused on transitioning to Ada 95. The validation test suite will be available early (in draft form prior to ANSI/ISO approval with official release 3 months after ANSI/ISO approval). However, for a two-year period vendors will be able to focus on enhanced areas of the language that their customer base wants first; i.e., the first validation test suite will be modularly constructed. Vendors are also being encouraged to release beta-versions of their Ada 95 implementations prior to validation.

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

(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 AJPO host, in directory (v6.0).

There are also a few commercial books which have sections on Ada 95 or have integrated the revised definition of the language into their presentation:

(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 a "certification mark", though, which is to be used only for validated compilers.

Prior to November 30, 1987, the name "Ada" was a registered trademark. In the December 1987 issue of the Ada Information Clearinghouse Newsletter, Ms. Virginia Castor, then Director of the Ada Joint Program Office (AJPO), announced that the Department of Defense would thereafter rely on a certification mark instead of a trademark.

(The certification mark is a Pentagon-shaped symbol with a "Validated Ada" message, and can be seen on the documentation of validated Ada compilers.)

The text of the 1987 AJPO announcement is available on the AdaIC host, in

(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 (compressed files)

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

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

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:

Subject: ftpmail


(Up to Table of Contents)

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

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

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

1) To get "help" --

Subject: help


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

Subject: man directory

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


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

Subject: directory

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

Subject: directory compiler

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

Subject: directory p*


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

Subject: file-request README

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

Subject: file-request compiler/README


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

From: FTP Mail Server 
Message-Id: <>
Subject: Re: help
In-Reply-To: <>
Content-Type: text/plain; charset=us-ascii

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

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

Here is a brief description of the available services:

services:     This service returns a list of the available

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

help:         This service returns this help message.

info:         This service returns this help message.

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

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

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

Try 'man ' to get more information on a particular
service.  Please report bugs and other problems to

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


                     Washington, DC  20301-1000

                           August 26, 1994


  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


(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. It is in
(if the list is updated during the month, the previous one is replaced).

(Up to Table of Contents)

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

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

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

(Up to Table of Contents)

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

Ada/Ed is available for PCs, Unix-based machines, Amiga, and Atari systems. The Ada/Ed interpreter for Ada 83 is available from the New York University host, in directory (Internet address 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.2: GW-Ada/Ed -- a souped-up version of Ada/Ed for 386/486 DOS and Macintosh machines

GW-Ada/Ed is available from the PAL, by anonymous FTP. The files are located in subdirectories "dos" and "mac" of directory

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.2.3: GNAT, The GNU NYU Ada Translator -- An Ada 95 Compiler

GNAT is available from the New York University host, in directory 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 (Internet address: A mirror site of the PAL also carries GNAT, directory:

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


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

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

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

There are a number of official GNAT e-mail addresses:
Send a message to this address to be placed on our external mailing list. We send out progress reports, technical reports, digests of technical comments and other information.
Send messages to this address for our general consideration. Where appropriate, we will digest these comments for redistribution to the external mailing list -- unless you specifically request that they be considered private.
This address is to be used specifically to report problems with the currently available version of the GNAT system. Please be as specific as possible in reporting problems. Do not report missing features for now!
OS/2 Version

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

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


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

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

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

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

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

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

A GNAT for Macintosh is in the works.

(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.
    Tel: (619) 414-9001
    Fax: (619) 414-9192

AETECH, Inc.: see Active Engineering Technologies

Alsys: see Thomson Software Products

  questions (Brian Allison)
    Tel: (214) 497-4346

  questions (Dave Thersleff)
    Tel: (612) 683-5701
  sales (Sylvia Crain)
    Tel: (505) 988-2468


    Tel: (602) 275-7172
    Tel: +45 45 87 11 44

Green Hills Software Inc.
  sales (Eric Schacherer)
    Tel: (805) 965-6044

  questions (Jeff Hollensen)

IBM: see OC Systems Inc.

  questions (Mike Ryer)

Irvine Compiler Corp (ICC)

Meridian: see Rational Software Corporation

OC Systems Inc.
    Tel: (703) 359-8160
    Fax: (703) 359-8161

Rational Software Corporation
    Tel: (408) 496-3600 or (800) RAT-1212

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

    Tel: (412) 856-3600 (ext 150)
    Tel: (800) 856-5255 or (412) 856-3600

  (Note that TeleSoft is now part of Thomson Software Products.)
    Tel: (619) 457-2700
    Tel: (619) 457-2700

Thomson Software Products (ex-Alsys)
    Tel: (619) 457-2700
         (800) 833-0042 (ActivAda only)

Verdix: see Rational Software Corporation

Note: The AdaIC's Validated Compiler List (see 4.1) now 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 Department of Defense; it facilitates the implementation of the DoD's Software Initiative (Ada) throughout the Services, and maintains the integrity of the Ada language. (The AJPO sponsors the AdaIC.)

The address is:

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

The current Director and Deputy Directors are:

Acting Director
Donald Reifer
Air Force Liaison
Maj M. Dirk Rogers (
Navy Deputy Liaison
Joan McGarity (
Army Deputy Liaison
MAJ Charlotte Lee (
DISA Liaison
David Basel (

(Up to Table of Contents)

5.2: Ada Information Clearinghouse (AdaIC)

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

The address is:

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

The AdaIC publishes a quarterly newsletter, which contains current news, Ada conference reports, announcements from the AJPO Director, and articles on projects using Ada. If you would like to receive a copy of the AdaIC newsletter, please call and request a subscription. There's no charge. The AdaIC also regularly updates and publishes more than 70 separate information flyers. Flyer topics include:

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

(Up to Table of Contents)

5.3: Association of 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

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 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, 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 Commentaries are generally updated only a few times each year. The text of all commentaries is available by anonymous FTP from the AJPO site in the account public/ada-comment. A detailed discussion of ARG procedures and the format of commentaries can be found in the ada-comment account in the file arg-procedures.doc. A reformatted copy of the Reference Manual that includes WG9-approved commentaries is available from Karl Nyberg (

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

(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 (Internet address:,

(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 and via e-mail from the compilers server at .

A yacc grammar for Ada 95 is available in file

and a lex grammar for Ada 95 is available in file

(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 for answers to such questions. Actually, there is also a mailing list -- 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

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

The AdaIC maintains a Products and Tools Database on its bulletin board (703/614-0215), and one of the categories is translators. (The list of products should not be considered exhaustive; if you wish to suggest additions, please contact the AdaIC.) Besides access to the database via the bulletin board, you can also call the AdaIC (800-AdaIC-11 or 703/685-1477) and ask for a customized search.

Should I?

In addition to all the usual caveats, however, it should also be noted that translation itself 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.

(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 Program Library created at compile time. Clients of ASIS are shielded and free from the implementation details of each Ada compiler vendor's proprietary library and intermediate representation.

ASIS Version 1.1.0 is the latest version of the ASIS83 1.1 (Ada 83) de facto industry standard, dated July 1993. Version 2.0.0 is the Ada 95 version, called ASIS95. 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

ASIS versions 2.0.0, 1.1.1, and 1.1.0 are available in directory

(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

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

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

Free versions:
STARS: bindings to Xlib and Xt.  Available on
Note: the ASSET host no longer takes anonymous FTP.  To
request an account, contact:

Non-free versions:
SERC: bindings to Xlib/Xt/Motif
contact: well! (Scott Cleveland)

Verdix: bindings to Xlib/Xt/Motif
(Note that bindings to Xview are included with the SunAda Sun4 compiler)
contact: (Paul Moskowitz)

ATC: bindings to Xlib/Xt/Motif
contact: ???

TeleSoft (now part of Thomson Software Products, ex-Alsys):
bindings to Xlib/Xt/Motif (TeleWindows)
(Note that bindings to Xview are included with the TeleSoft Sun4 compiler)

X-based GUI (Graphical User Interface) Builders:
Objective (OIS): Screen Machine
contact: Phil Carrasco (703/264-1900)

TeleSoft (now part of Thomson Software Products, ex-Alsys): TeleUSE

EVB Software Engineering, Inc. : GRAMMI
contact :
	or 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! (Scott Cleveland)

(Up to Table of Contents)

8: Is there a list of good Ada books?

Just for a list of texts, etc. (no evaluations or recommendations), you might take a look at

An Annotated Sampling of Ada-Oriented Textbooks

November 1994       

Michael B. Feldman
Department of Electrical Engineering and Computer Science
The George Washington University
Washington, DC 20052
(202) 994-5919 (voice)
(202) 994-0227 (fax)

(with contributions from Jack Beidler, Duane Jarc, Suzanne Pawlan Levy, 
Mathew Lodge, and David Weller, as indicated by their initials following 
their reviews)

As chair of the SIGAda Education Working Group, and a denizen of the 
Internet newsgroups, I am often asked to give references for "Ada 
textbooks." This list responds to these many queries. 

The textbooks in the Group 1 are written especially for students without 
programming experience, who are learning Ada as their first language. 
Most of these can also cover at least part of a typical CS2-level 
course. The books in Group 2 use Ada as their language of 
discourse but are "subject-oriented:" data structures, file structures, 
compilers, comparative languages. The remaining books in Group 3 are 
either "Ada books" focusing on the language features or more general 
books that use Ada, at least in part, but do not fit obviously into a 
standard curriculum "pigeonhole."

I invite you to add to the list. Please write your annotated entry in 
the form I have used here and write or e-mail it to me. I will include 
it in my next version and credit you as a co-compiler of the list.

Disclaimers: I wrote two of the texts listed here; I hope the 
annotations are impartial enough. And any annotated bibliography is 
selective and opinionated. Your mileage may vary.

Group 1: Books Suitable for a First Course in Programming

Bover, D.C.C., K.J. Maciunas, and M.J. Oudshoorn.
Ada: A First Course in Programming and Software Engineering.
Addison-Wesley, 1992. ISBN 0-201-50992-X
  This work is, to our knowledge, the first Ada book to emerge from 
Australia, from a group of authors with much collective experience in 
teaching Ada to first-year students. A number of interesting examples 
are presented, for example, an Othello game. The book is full of gentle 
humor, a definite advantage in a world of dry and serious texts. In the 
book's favor is the large number of complete programs. On the other 
hand, it is rather "European" in its terseness; American teachers may 
miss the pedagogical apparatus and "hand-holding" typically found in 
today's CS1 books. Generic units are hardly mentioned.

Culwin, F. Ada: a Developmental Approach.
Prentice-Hall, 1992.
  This work introduces Ada along with a good first-year approach to 
software development methodology. Much attention is paid to program 
design, documentation, and testing. Enough material is present in data 
structures and algorithm analysis is present to carry a CS2 course. A 
drawback of the book is that the first third is quite "Pascal-like" in 
its presentation order: procedures, including nested ones, are presented 
rather early, and packages are deferred until nearly the middle of the 
book. This is certainly not a fatal flaw, but it will frustrate teachers 
wishing a more package-oriented presentation. The programs and solutions 
are apparently available from the author.

Dale, N., D. Weems, and J. McCormick. 
Programming and Problem Solving with Ada. D. C. Heath, 1994.
ISBN 0-669-29360-1
  This book is inspired by Dale and Weems' very successful Introduction to
Pascal and Structured Design, but it is not simply an Ada version.  Ada's
more advanced capabilities such as exceptions, packages and generic units
are included in this text.  In addition, more than half of the material is
completely new, and the order of the topics is signficantly different.  It
also has more of a software engineering focus than the Pascal version. The
only Ada topics not included in this text are tasks and access types.
Procedures and packages are introduced early.  Each chapter includes case
studies, testing and debugging hints and excellent non-programming exercises 
and programming problems.  The text comes with a program disk containing all 
the programs given in the book.  In addition, a validated Meridian Ada 
compiler with complete documentation is available at low cost to students 
using this book. (S. P. L.)

DeLillo, N. J.
A First Course in Computer Science with Ada.
Irwin, 1993. (ISBN 0-256-12538-4)
  This book is a first in the Ada literature: a version comes with an
Ada compiler, the AETech-IntegrAda version of Janus Ada. Author, publisher,
and software supplier are to be commended for their courage in this.
The book itself covers all the usual CS1 topics. In my opinion, the order
of presentation is a bit too Pascal-like, with functions and procedures
introduced in Chapter 5 (of 15) and no sign of packages (other than Text_IO)
until Chapter 10. Unconstrained arrays and generics are, however, done 
nicely for this level, and Chapter 13 is entirely devoted to a single 
nontrivial case study, a statistical package. I wish there were more 
complete programs in the early chapters, to put the (otherwise good) 
discussion of control and data structures in better context.

Feldman, M.B., and E.B. Koffman.
Ada: Problem Solving and Program Design.
Addison-Wesley, 1992. ISBN 0-201-53364-2
  This work combines the successful material from Koffman's CS1 pedagogy 
with a software-engineering-oriented Ada presentation order. Packages 
are introduced early and emphasized heavily; chapters on abstract data 
types, unconstrained arrays, generics, recursion, and dynamic data 
structures appear later. The last five chapters, combined with some 
language-independent algorithm theory, can serve as the basis of a CS2 
course. A diskette with all the fully-worked packages and examples 
(about 180) is included; the instructor's manual contains a diskette 
with project solutions.

Savitch, W.J. and C.G. Petersen.
Ada: an Introduction to the Art and Science of Programming.
Benjamin/Cummings, 1992. ISBN 0-8053-7070-6
  This is a straightforward adaptation of the well-known Savitch Pascal 
books. Ada is introduced in a Pascal-like order, with subtypes and 
packages introduced halfway through the book. This is purely a CS1 book. 
The final chapter covers dynamic data structures. There is minimal coverage 
of unconstrained array types; generics are introduced at the halfway 
point to explain Text_IO, then continued only in the final chapter. The 
authors intended this book to provide a painless transition to Ada for 
teachers of Pascal; one wishes they had taken advantage of the chance to 
show some of the interesting Ada concepts as well. Program examples from 
the text are available on disk, but only as part of the instructor's 
manual; a solutions disk is available for a fee from the authors.

Skansholm, J. Ada from the Beginning. (2nd ed.)
Addison Wesley, 1994. ISBN 0-201-62448-6
  This book was one of the first to use Ada with CS1-style pedagogy. 
There are excellent sections on the idiosyncracies of interactive I/O (a 
problem in all languages), and a sufficient number of fully-worked 
examples to satisfy students. Generics, linked lists and recursion are 
covered at the end; there is no tasking coverage, but one would not 
expect this at CS1-level. A very interesting addition is the new
Chapter 14, in which OOP in both Ada 83 and Ada 94 is discussed.
This is an especially lucid explanation of OOP in Ada, and makes a real
contribution because it doesn't just discuss tagged types as a "feature" 
of Ada 94, but shows very nicely what is possible in Ada 83 (instead
of just what is _not_ possible), and shows how Ada 94 adds functionality.

Smith, James F., and Thomas S. Frank
Introduction to Programming Concepts and Methods with Ada
McGraw-Hill, Inc., 1994 ISBN 0-07-911725-2
  This is a well written and easy to use text.  The book takes a spiraled 
approach to CS 1.  The authors do an excellent job integrating Ada into 
the book.  They take a very direct approach, especially with an early 
introduction to the package concept and the traditional Text_IO package.  
Faculty who have taught CS 1 with Pascal should like this book. Instead 
of making a big fanfare about Ada features, they simply introduce them 
as good support for software development concepts. The authors have 
carefully chosen the Ada topics they decided to cover in this book in 
order to strike a balance between staying true to the CS 1 course while
presenting enough of the programming language. If you teach CS 1 you 
might at least want to get a copy of this text just to look at two 
chapters, Chapter 7 and Chapter 14. Seven covers program correctness and 
run-time event (exception handling) and fourteen is a beautiful presentation 
and example of generic packaging.  Both presentations are done in an 
appropriate manner for CS 1. (J. B.)

Volper, D., and M. Katz. Introduction to Programming Using Ada.
Prentice-Hall, 1990. ISBN 0-13-493529-2
  This book uses a heavily "spiraled" approach to Ada, and is designed 
for a 2-semester course, covering nearly all of Ada eventually. There 
are lots of fully-coded examples, and good pedagogical sections on 
testing, coding style, etc. If you like spiraling, you'll like this. The 
down side is that you can't find all you need on a given subject in one 
place. It's at the other end of the scale from the "Ada books" that 
follow the Ada Language Reference Manual (LRM) order.

Group 2: Other Books Intended for Undergraduate Courses

Ben-Ari, M. Principles of Concurrent and Distributed Programming.
Prentice-Hall 1990. (OS/concurrency) ISBN 0-13-711821-X
  In my opinion, this is the best introduction to concurrency on the 
market. Ada notation is used for everything, but the focus is on 
concurrency and not on Ada constructs per se. I liked the CoPascal 
notation of the first edition better, but this book is still great. A 
software disk is promised in the preface; I had to work quite hard to 
get it from the publisher, which finally had to express-ship it from 
England. The software comes with a tiny Ada-ish interpreter, complete 
with Pascal source code, adapted from Wirth's Pascal/S via CoPascal. 
There are also some real Ada programs, most of which I've tested and 
found correct and portable.

Feldman, M.B. Data Structures with Ada.
Addison Wesley, 1993. ISBN 0-201-52673-5
(CS2/data structures)
  This book is a reasonable approximation to a modern CS2 book: "big O" 
analysis, linked lists, queues and stacks, graphs, trees, hash methods, 
and sorting, are all covered. The Ada is a bit old-fashioned, especially 
the lack of generics; the book was published before compilers could 
handle generics. The packages and other programs are available free from 
the author. The book is currently under revision with Addison-Wesley and 
should appear in 1995.

Fischer, C., and R. LeBlanc. Crafting a Compiler.
Benjamin Cummings, 1988. (compilers) ISBN 0-8053-3201-4
  This book uses Ada as its language of discourse and Ada/CS, a usefully 
large Ada subset, as the language being compiled. If you can get the 
"plain Pascal" tool software by ftp from the authors, you'll have a good 
translator-writing toolset. Skip the Turbo Pascal diskette version, 
which is missing too many pieces to be useful. I've used the book since 
it came out with both undergrad and graduate compiler courses; it 
embodies a good blend of theory and "how it's really done" coding. 
Students like it. The authors have recently published a second version, 
which uses C as its coding language but retains Ada/CS as the language 
being compiled.

Hillam, Bruce. Introduction to Abstract Data Types Using Ada. 
Prentice-Hall, 1994. (data structures) ISBN 0-13-045949-6
This is a very readable treatment of data structures presented using Ada
that makes good use of Ada features such as generics.  It contain many
complete programs and packages.  Unfortunately, obvious syntax errors make
it apparent that not all examples have been compiled.  The level of
presentation is somewhere between an elementary, CS 2, data structures
course and an advanced, CS 7, course.  A subset of first eleven chapters
provide the appropriate topics for a CS 2 course, but not the pedagogy
necessary for a course at that level. (D. J.)

Lomuto, N. Problem-Solving Methods with Examples in Ada.
Prentice-Hall, 1987.(algorithms)
  Inspired by Polya's classic How to Solve It, this book can make a nice 
addition to an Ada-oriented algorithms course. It makes too many 
assumptions about students' programming background to use as a CS1 book, 
and doesn't teach enough Ada to be an "Ada book." But it makes nice 
reading for students sophisticated enough to handle it. I'd classify it 
as similar to Bentley's Programming Pearls.

Miller, N.E. and C.G. Petersen. File Structures with Ada.
Benjamin/Cummings, 1990. (file structures) ISBN 0-8053-0440-1
  Designed for a straightforward ACM-curriculum file structures course, 
this book succeeds at what it does. There are good discussions of ISAM 
and B-tree organizations. The software can be purchased a low cost from 
the authors; it seems to approximate in Ada all those C-based file 
packages advertised in programmer-oriented trade publications.

Schneider, G.M., and S.C. Bruell.
Concepts in Data Structures and Software Development (with Ada 
Supplement by P. Texel).
West, 1991. (CS2/data structures)
  This work is not, strictly speaking, an Ada book; rather, it is a 
solid, language-independent approach to modern CS2. The language of 
discourse in the book is a Pascal-like ADT language rather like Modula-2 
in style; some examples are coded in legal Pascal. The Ada supplement 
makes it usable in an Ada-based course, but the supplement is rather too 
terse (100 pages of large type) for my taste, and insufficiently well 
keyed to the book chapters. The supplement's effectiveness would be 
greatly enhanced by full translations to Ada of a large number of the 
book's examples.

Sebesta, R.W. Concepts of Programming Languages (2nd ed.).
Benjamin Cummings, 1993. (comparative languages) ISBN 0-8053-7132-X
  If you've been around for a while, you might remember the late Mark 
Elson's 1975 book by the same title. This is similar: a concept-by-
concept presentation, with -- in each chapter -- examples taken from 
several languages. I include this work in an "Ada list" because I like its 
nice, impartial coverage of Ada. I especially like the chapters on  
abstraction and exception handling. The book covers -- comparatively, 
of course -- most of the lanuages you'd like to see, including C, C++, 
Lisp, Smalltalk, etc., with nice historical chapters as well. The book 
is readable; my students like it. Our undergraduate and graduate courses 
both use it as a base text.

Stubbs, D.F., and N.W. Webre.
Data Structures with Abstract Data Types and Ada.
PWS-Kent, 1993. (advanced data structures) ISBN 0-534-14448-9
  This work updates and adapts to Ada the material in the authors'
successful data structures texts using Pascal and Modula-2. It is good for a 
"heavy" CS2, i.e., one on the theoretical side, or a "light" CS7, i.e. it 
is not as theory-oriented as the Weiss work below. More Ada, especially 
regarding advanced types, is taught here than in Weiss. Especially 
interesting about all the books from these authors is that they have 
matched their "big O" performance prediction with tables and graphs 
showing actual performance measurements.

Weiss, M.A.
Data Structures and Algorithms in Ada.
Benjamin/Cummings, 1993. ISBN 0-8053-9055-3
  I think this book reaches its intended market -- data structures courses 
(CS7) -- rather well with Ada. There's a good mixture of theory and practice 
(ADT design, for example), and coverage of new topics like amortized algorithm 
analysis and splay trees. A book at this level should not pay too much 
attention to teaching a language; rather it should make good use of its 
language of discourse. The Ada version does not attempt to teach either the 
language or Ada-style software engineering, but shows good understanding of 
the language, uses generic packages quite well and focuses on the theory of 
algorithms, as a book at this level should. This is the first, and so far 
the only, text in Ada for this course.

Group 3: A Selection of Other Ada-Related Books

Barnes, J. 
Programming in Ada. (4th edition)
Addison-Wesley, 1994. ISBN 0-201-62407-9
  Barnes' work has been one of the most popular "Ada books." Some students
find it hard to see how the pieces fit together from Barnes' often 
fragmentary examples; it is difficult to find complete, fully-worked out, 
compilable programs. This just-out fourth edition has a 100-page summary of 
Ada 95.

Booch, G. 
Software Components with Ada.
Benjamin Cummings, 1987. ISBN 0-8053-0610-2
  This work is an encyclopedic presentation of data structure packages 
from Booch's OOD point of view. It is great for those who love 
taxonomies. It's not for the faint-hearted, because the volume of 
material can be overwhelming. It could serve as a text for an advanced 
data structures course, but it's thin in "big O" analysis and other 
algorithm-theory matters. The book is keyed to the (purchasable) Booch 

Booch, G. and D. Bryan, with C. Petersen
Software Engineering with Ada. (3rd edition)
Benjamin/Cummings 1994. ISBN 0-8053-0613-7
  Another of the classical "Ada books." Introduces Booch's OOD ideas. Not 
for use to introduce Ada to novices, in my opinion; there are some nice 
fully-worked case studies but they begin too far into the book, after long 
sections on design, philosophy, and language elements. The earlier chapters 
contain too much fragmentary code, a common flaw in books that follow the LRM 
order. The third edition contains an appendix describing Ada 9X.

Bryan, D.L., and G.O. Mendal. Exploring Ada, Volumes 1.and 2.
Prentice-Hall, 1990 and 1992 respectively. ISBN 0-13-295684 (vol. 1); 
ISBN 0-13-297227-1 (vol. 2)
  This is an excellent study of some of the interesting nooks and 
crannies of Ada; it sometimes gets tricky and "language-lawyerly." 
Volume 2 takes up tasking, generics, exceptions, derived types, scope 
and visibility; Volume 1 covers everything else. The programs are short 
and narrowly focused on specific language issues. If you like Bryan's 
"Dear Ada" column in Ada Letters, you'll like this book. It is certainly 
not a book for beginners, but great fun for those who know Ada already 
and wish to explore.

Burns, Alan, and Geoff Davies. 
Concurrent Programming.
Addison-Wesley, 1993, ISBN 0-201-54417-2
  Solid book covering all aspects of writing concurrent software. Uses
a version of Pascal called FC-Pascal (available for free through the
Internet). The FC means "Functionally Concurrent". It has constructs 
that are similar to Ada 95, and this is by no accident -- the authors 
frequently point out that the implementations in FC-Pascal are taken 
from Ada 95's Tasks and Protected Types. Covers lots of low-level problems 
by gradually building up from simple examples. Highly recommended for a 
Concurrent Programming class. Exercises and Further readings are provided 
at the end of each chapter. (D.W.)

Burns, Alan and Wellings, Andy
Real Time Systems and their Programming Languages 
Addison-Wesley 1990. (ISBN 0-201-17529-0)
  This is an excellent and unique book. Basic concepts and terminology are
explained before moving on to explain the major aspects of real time design.
"Real world" examples are presented in Ada, Modula-2 and occam 2, though
Ada is clearly the authors' language of choice and gets the most coverage.
Topics covered include reliability and fault tolerance, concurrency,
synchronisation, scheduling, message passing, atomic transactions, resource
control, distributed systems and low-level device control. Efficiency is not
neglected, and Ada support here is particularly strong with detail on the
CIFO package. Several case studies are also presented. The only failing of
the book is that it needs updating to cover Ada 9x and its real-time annex,
Modula-3 etc. However, the basic concepts that the authors convey so clearly
are independent of implementation language. (M. L.)

Cohen, N. Ada as a Second Language.
McGraw Hill, 1986. ISBN 0-07-011589-3
  This book is a quite comprehensive exploration of Ada which 
follows the LRM in its presentation order. My graduate students like it 
because it is more detailed and complete than alternative texts. It's an 
excellent book for students who know their languages and want to study 
all of Ada. There are good discussions of "why's and wherefore's" and 
many long, fully-worked examples. An anxiously-awaited 2nd edition
covering Ada 95 is in the pipeline.

Gauthier, M. Ada: Un Apprentissage (in French).
Dunod, 1989.
  I found this an especially interesting, almost philosophical approach 
to Ada. The first section presents Ada in the context of more general 
laguage principles: types, genericity, reusability. The second section 
introduces testing and documentation concerns, as well as tasking; the 
third considers generics and variant records in the more general context 
of polymorphism. For mature Ada students in the French-speaking world, 
and others who can follow technical French, this book can serve as a 
different slant on the conventional presentations of the language. An 
English translation would be a real contribution to the Ada literature.

Gehani, N. Ada: an Advanced Introduction (2nd edition).
Prentice-Hall, 1989. ISBN 0-13-004334-6
  I've always liked Gehani's literate writing style; he knows his 
languages and treats Ada in an interesting, mature, and balanced 
fashion. This book comes with a diskette sealed in the back of the book, 
which is advantageous because the book has numerous nontrivial, fully-
worked examples.

Gehani, N. Ada: Concurrent Programming (2nd edition).
Silicon Press, 1991. ISBN 0-929306-08-2
  This is a less formal, more Ada-oriented presentation of concurrency 
than the Ben-Ari work. I use both books in my concurrency course; its 
real strength is the large number of nontrivial, fully worked examples. 
Gehani offers a nice critique of the tasking model from the point of 
view of an OS person. The preface promises the availability of a 
software disk from the publisher.

Naiditch, D.J.  Rendezvous with Ada
New York: John Wiley and Sons, 1989. ISBN 0-471-61654-0
  A nice, relatively quick survey of the language for experienced 
programmers. Warning: there are not too many complete programs here, at 
least at the beginning. But overall, this is a good choice, less overwhelming 
than, say, Cohen, for "learning the language" quickly.

Nyberg, K. (editor) The Annotated Ada Reference Manual.(3rd edition)
Grebyn Corporation, 1993.
  This is the definitive work on Ada legalities, because it presents not 
only the full text of the LRM but also the official Ada Interpretations
as prepared by the Ada Rapporteur Group of Working Group 9 of the
International Organization for Standardization (ISO) and approved by
that organization. These commentaries, interleaved with the LRM text, 
are promulgated by the Ada Joint Program Office, the American National
Standards Institute (ANSI) agent for Ada, in the Ada Compiler Validation
Suite (ACVC). They are thus binding upon compiler developers. I recommend 
this book as an essential volume in the library of every serious Ada 

Watt, D.A., B.A. Wichmann, and W. Findlay. Ada Language and Methodology.
Prentice-Hall, 1987. ISBN 0-13-004078-9
  This work presents some interesting programming projects, and the 
coverage of design and testing--at the level of a first-year student--is 
quite good. The first third of the book concentrates heavily on 
classical control and data structures, leaving exceptions, packages and 
even procedures until the "programming in the large" material in the 
second third. CS2 teachers will find too little concentration on 
algorithm analysis. On the other hand, tasking and machine-dependent 
programming are covered. Like the Shumate work, this book would make a 
suitable introduction to Ada for students with a semester or so of 
programming experience; it "jumps in" too quickly to satisfy the needs 
of neophytes and is not well-tailored to CS1 or CS2 needs.

(Up to Table of Contents)

9: Resources

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

Public Ada Library (formerly Ada Software Repository) (Internet address:


European mirror: (Internet address:

European CD-ROM mirror: in pub/Ada-Belgium/cdrom

Ada-Belgium ftp server in pub/Ada-Belgium
AdaIC (Ada Information Clearinghouse)[mirrored by the PAL, listed above] (Internet address:
ASSET / STARS (Software Technology for Adaptable, Reliable Systems): (Internet Address:

Note: the ASSET host no longer takes anonymous FTP. To request a free account, contact:

(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 ( -- which had been a mirror site for the ASR). The PAL is available for anonymous FTP, directory:

The PAL has its own FAQ, a copy of which is stored in directory which stores the FAQ files posted to news.answers.


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

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

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

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 and is also available for downloading via anonymous FTP from the AdaIC host computer, where it can be found in directory

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
P.O. Box 375
Milton Keynes MK14 6LL
United Kingdom
Tel: 0908 220908
UUCP: sed@bsiqa.uucp
(Internet: bsiqa!

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:

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 machine. Users should issue the command "ftp" 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.)

Tel: 703/604-4624
AUTOVON: 664-4624

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/251-5121
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 (which was managed by the AdaIC before August 1994): Stéphane Barbey, Moti Ben-Ari, Heddy Boubaker, 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, Tucker Taft, Dave Weller, and the maintainer has simply :-) organized, polished, or added some information for your satisfaction. The general HTML structure of this FAQ was inspired by the WWW FAQ.

(Up to Table of Contents)

11: Copying this FAQ

This FAQ is Copyright © 1994, 1995 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 --