Public Ada Library (PAL) Frequently Asked Questions (FAQ)

Posting Frequency: Monthly

The Public Ada Library (PAL) is a distributed library of Ada and VHDL software, courseware, and information that contains over 1 BILLION bytes of material (mainly in compressed form). All items in the PAL have been released to the public with unlimited distribution, and, in most cases (the exceptions are shareware), are freeware.

The PAL FAQ can be found in the PAL in HTML format; the directory containing it is languages/ada/userdocs/html. The PAL FAQ can also be found in text form on rtfm.mit.edu under pub/usenet/news.answers/computer-lang/Ada/pal-vhdl-faq (yes, I know it's long).

This PAL FAQ addresses the following topics:


Welcome to the Public Ada Library (PAL)

Last Update: 12 March 1994

The Public Ada Library (PAL) is a library of Ada software, courseware, and documentation on the Internet-based host computer named wuarchive.wustl.edu (WUARCHIVE). The PAL is located in the directories languages/ada and languages/vhdl if you access WUARCHIVE by FTP, archie, gopher, the World Wide Web, or FTPMAIL, or in the directories /archive/languages/ada and /archive/languages/vhdl if you access WUARCHIVE by NFS. The PAL reached the following milestones as indicated:

Milestone                                         Date
-----------------------------------------------   -------------
Initial Operational Capability                    June 21, 1993
  Voluntary Basis
  Washington University Provided Resources
    Funded in part by the National Science
    Foundation with Educational Grant from
    Digital Equipment Corporation
  Washington University Office of the Network
    Coordinator Sponsorship
Activity Statistics Gathering Started             September 1, 1993
Gopher Access Enabled                             January 1, 1994
Periodic CDROM Fabrication Process Started        March 1, 1994
Funding Provided by Defense Information Systems   March 28, 1994
  Agency through the Army's Communications-
  Electronics Command Software Engineering
  Directorate
Certification Process Started (Certifier_1)       June 1, 1994
HyperText Transport Protocol Access Enabled       July 1, 1994
PAL Exceeded 1 Billion Bytes in Size              September 30, 1994

The purposes of the PAL are:

* VHDL stands for VHSIC Hardware Description Language, where
  VHSIC stands for Very High Speed Integrated Circuit

The PAL, which is located in the directory trees languages/ada and languages/vhdl on WUARCHIVE, is actually seven collections of material in one:

** A mirror is a copy of a remote system, such as the public area of
   ftp.sei.cmu.edu, in a tree within the PAL.  This copy is
   automatically updated within 24 hours.  Documentation of the
   mirror is scattered throughout the tree itself and in the PAL
   Catalog and PAL Card Catalog.

WUARCHIVE is supported by the Office of the Network Coordinator, Washington University in Saint Louis. Funding for WUARCHIVE is provided by the National Science Foundation (NSF) and the Office of the Network Coordinator. The PAL is supported with funding provided by the Ada Joint Program Office (AJPO) under the DoD's Defense Information Systems Agency (DISA). The contract for the PAL support was awarded to Monmouth College in West Long Branch, New Jersey, through the Army's Communications Electronics Command (CECOM) Software Engineeering Directorate (SED).

Many organizations have developed cooperative relationships with the PAL, contributing time, effort, user support services, and artifacts to the PAL and its users either directly or indirectly. These organizations include:

The PAL can be accessed by a wide variety of mechanisms. These mechanisms include, but are not limited to, the following:

To begin using the PAL, read the 0FAQ file (posted on USENET and available in the languages/ada subdirectory). This is a frequently-asked questions list. It is highly recommended that users obtain the current PAL Catalog (named PALCAT.DOC in the subdirectory languages/ada/userdocs/catalog) or the PAL Card Catalog (found in the subdirectory languages/toolkit/all in the file CARDCAT.ZIP) as well. The PAL Card Catalog is a program and database you can install on your local computer if you have a validated Ada compiler; it contains the same information as the PAL Catalog.

If you are reading this from the top level of the Walnut Creek Ada CDROM from an MSDOS or equivalent platform, you may execute the batch file GO.BAT to run the interactive PAL Card Catalog or the batch file SHOW.BAT to run an interactive, animated introduction to the PAL. Finally, also in languages/ada is the file 0MANIFEST, which gives a top-level view of the contents of the PAL.

Users wishing to access the PAL by FTP can use anonymous FTP to contact the main PAL host (wuarchive.wustl.edu) or the PAL mirror sites (ftp.cnam.fr and ftp.cdrom.com). The languages/ada tree on wuarchive corresponds to the pub/Ada/PAL tree on cnam and the pub/languages/ada tree on cdrom. Two hosts support access to the PAL as gopher servers: wuarchive.wustl.edu and gopher.wustl.edu. The host wuarchive.wustl.edu also supports an HTTP (HyperText Transport Protocol) server for users of the World Wide Web.

See the section of the PAL FAQ entitled "How Can I Get to the Items in the PAL?" for more details.

General Disclaimer

All software, courseware, documentation, and other items of information in the PAL are provided "AS IS" without any expressed or implied warranties whatsoever unless their individual documentation states otherwise. No warranties as to performance, merchantability, or fitness for a particular purpose exist.

Because of the diversity of conditions under which this software may be used, no warranty of fitness for a particular purpose is offered. The user is advised to test the software and courseware thoroughly before relying on it. The user must assume the entire risk and liability of using this software, courseware, and documentation.

In no event shall any person or organization be held responsible for any direct, indirect, consequential, or inconsequential damages or lost profits.


What is WUArchive?

Last Update: 30 September 1994

The host computer named wuarchive.wustl.edu (WUARCHIVE) is a Digital Equipment Corporation (DEC) Alpha AXP 3000 Model 400. It is equipped with 192M bytes of RAM and over 50G bytes of disk space, and it is able to support up to 250 simultaneous anonymous FTP sessions, many remote NFS mounts, a gopher server, and an HTTP (HyperText Transport Protocol) server for the World Wide Web.

WUARCHIVE is owned by the Office of the Network Coordinator, Washington University in Saint Louis. It is supported out of the budget of the Office of the Network Coordinator and by a grant from the National Science Foundation. The Office of the Network Coordinator and the National Science Foundation have jointly paid for the hardware of the machine and for the services of the support personnel at Washington University in Saint Louis.

The maintainers of the archives which originate on WUARCHIVE are volunteers, working on an unfunded basis. The support personnel who maintain the operational support software, including the software which keeps the mirrors up to date, are funded by the Office of the Network Coordinator and the National Science Foundation grant.

We wish to express our gratitude to Digital Equipment Corporation for the sale of the DEC Alpha at a substantial discount and to the National Science Foundation for its grant in support of WUARCHIVE.


What Electronic Mailing Lists Support the PAL Users?

Last Update: 17 July 1995

WUNET.WUSTL.EDU is the electronic mail list server for users of the Public Ada Library. A separate computer from WUARCHIVE.WUSTL.EDU (on which the PAL is located), WUNET's purpose in life from the point of view of the PAL user is to manage the electronic mailing lists supporting him.

The List Server is a program on WUNET which manages Lists (Electronic Mailing Lists). The user can send commands to the List Server, and it will respond by performing actions for him (such as adding him to a List, removing him from a List, and sending him a message naming all the lists supported by the List Server). The user can send email messages to the List, and the subscribers to the List will receive these messages.

To find out what commands the List Server can respond to, send an email message to:

listserv@wunet.wustl.edu

which contains an empty subject line and one line in the body of the message (starting in the first column):

help

If you wish to subscribe to an electronic mailing list, send an electronic mail message to:

listserv@wunet.wustl.edu

Leave the subject line blank and place the following line into the body of this message:

subscribe <electronic mailing list name>

Example:

subscribe pal-announce

Begin this line in column 1. Your return address will be used as the address to which announcements will be sent. A list of the electronic mailing lists for the PAL user community is included below.

You will receive a message back from the listserv software, telling you of the success or failure of your request.

Once subscribed, a user can send electronic mail to all subscribers of a List by sending email to the list's name at wunet.wustl.edu; example:

ada-train@wunet.wustl.edu

This, of course, only works if the List is bidirectional. The ANNOUNCE Lists are unidirectional (read-only from the point of view of the subscribers). Subscribers cannot post email messages to the ANNOUNCE lists - only the moderator of the ANNOUNCE lists can post messages.

If you wish to unsubscribe from an electronic mailing list, send an electronic mail message to:

listserv@wunet.wustl.edu

Leave the subject line blank and place the following line into the body of this message:

unsubscribe <electronic mailing list name>

Example:

unsubscribe pal-announce

If you wish to find out who is on an electronic mailing list, send an electronic mail message to:

listserv@wunet.wustl.edu

Leave the subject line blank and place the following line into the body of this message:

send/list <electronic mailing list name>

Example:

send/list pal-announce

You can use this command to find out if you are on a PAL email list and under what address you are subscribed.

A Partial List of Electronic Mailing Lists Available from listserv@wunet.wustl.edu

These lists are for the PAL user community. For a more complete list of the mailing lists available to your site, send a mail message to listserv@wunet.wustl.edu which contains the command "DIR/LISTS".

Wuarchive-Announce
Notification of any planned downtime or service changes for wuarchive.wustl.edu. The only announcements from this list will be from local staff or archivers.

Pal-Announce
Announcements concerning the Public Ada Library (PAL). These include additions to, changes to and other announcements concerning the PAL. You can not post messages here.

Ada-Train
This list is for the discussion of topics concerning Ada training and education. This is a general discussion list.

ASEET
The ASEET email list supports members of ASEET (The Ada and Software Engineering Education Team) and others interested in the activities of ASEET. ASEET materials are available from the Public Ada Library (PAL), including an archive of previous messages posted to this list.

Reuse
This list is a bidirectional mailing list for those people interested in software reuse technology. This includes, but is not limited to, the fields of designing for reuse, object-oriented reuse methods, reuse tools and environments, generic code architectures, domain-specific kits, reuse education, technology transfer, formal methods, certification of reusable components, and management issues as they pertain to reuse.

ReuseWG
This list is a bidirectional mailing list for those people interested in participating in the Reuse Working Group of ACM/SIGAda. It is used to exchange information about the activities of the working group and coordinate those activities.

PAL Metalists

In addition to these "normal" email lists, the following metalists have been defined. You cannot explicitly add or remove yourself from a metalist. By joining a list covered by a metalist, you automatically join that metalist as well and will receive messages posted to that metalist.

The metalists meet the need of being able to post messages to users on several related lists without sending them many duplicates (for example, if you are on PAL-Announce and Reuse, sending a message to PAL-Public will cause you to receive only one message rather than two). This works, however, only if you have the same address on all lists covered by a metalist (for example, if you are joe@host.com on PAL-Announce and joe_blow@host.com on Reuse, you will still get two messages when a message is posted to PAL-Public). To get a copy of the subscribers to each of the PAL lists in order to find out what PAL lists you are on and how you are entered on them, send the SEND/LIST command (or a group of them) to the List Server (see above).

PAL Metalists --
                                                     Who Can Post to
  Metalist Name     Lists Covered by Metalist        this Metalist
  ===============   ===============================  =================
  PAL-Public        PAL-Announce, ASEET, Ada-Train,  PAL MANAGER ONLY!
                      Reuse, ReuseWG
  Education-Group   ASEET, Ada-Train                 Anyone
  Reuse-Group       Reuse, ReuseWG                   Anyone

What Documentation is Available to Help the PAL User?

Last Update: 17 July 1995

PAL Catalog, FAQ, and Database Information

The subdirectory userdocs/catalog in the PAL contains a number of documents of interest to the users of the PAL. The key user documents in this subdirectory are:

CAT_DOC.ZIP and CAT_PS.ZIP
a catalog, complete with table of contents and index, of the contents of the PAL in the form of a book; CAT_DOC.ZIP contains the chapters as ASCII text, CAT_PS.ZIP contains the chapters as Postscript files that print 2 pages per physical page in landscape (1/2 the number of hardcopy pages required by CAT_DOC.ZIP)

TAXONOMY.ZIP
a taxonomy of the PAL in ASCII and Postscript

CSV_DB.ZIP
contains a Comma-Separated-Value (CSV) ASCII text file which can be read into database managers like dBase IV and spreadsheets like LOTUS 1-2-3 to allow the user to scan for items of interest offline; the contents of this ZIP file are CSV_DB.DOC and CSV_HDR.DOC, where DB contains the data and HDR contains structure information

The subdirectory userdocs/catalog/id_files contains the Item Description files from which the above files were created. Item Description files exist for each item in the PAL. The subdirectory userdocs/catalog/c1_rpts contains certification reports generated by the Certifier 1 program on all Ada source code in the PAL. File names in id_files and c1_rpts which have the same prefix refer to the same item.

The subdirectory userdocs/faqfile in the PAL contains the PAL Frequently Asked Questions (FAQ) list:

PAL.FAQ
the Frequently Asked Questions list

The subdirectory userdocs/html in the PAL contains the PAL FAQ in HTML format suitable for browsing via the World Wide Web:

PAL_FAQ.html
the Frequently Asked Questions list in HTML format

Other files in the userdocs/catalog and userdocs/faqfile subdirectories are used to create these key files. Additionally, the user is invited to look in the following directories for additional useful information:

userdocs/alt_srcs
alternate sources to the items in the PAL
userdocs/internet
information on using the Internet
userdocs/internet/email
archives of the PAL email lists

PAL Card Catalog in Ada

The Public Ada Library Card Catalog is an interactive browser that presents all the information in the PAL Catalog:

The PAL Card Catalog also includes the complete text of the current PAL FAQ (Frequently Asked Questions) list and online help. The file QSTART.TXT is a short (10 minute) tutorial on how to use the PAL Card Catalog.

The directory languages/ada/toolkit/all contains CARDCAT.ZIP, a ZIP file which contains the source code to the PAL Card Catalog along with instructions for installing it on any system supported by an Ada83 compiler. A validated Ada83 compiler and CS Parts are required to perform the installation. CS Parts can be found under the directory languages/ada/swcomps/csparts.

The directory languages/ada/toolkit/msdos/cardcat contains ccat_pc.zip, a ZIP file which contains the files in the runme subdirectory. The files in ccat_pc.zip are ready to run under MSDOS.

PAL Card Catalog in HTML

The Public Ada Library Card Catalog is also available in HyperText Markup Language (HTML). In this form, a user can view the Card Catalog by using a World Wide Web client, such as Netscape. The movement and search capabilities provided by the client can be used to move through the Card Catalog.

The directory languages/ada contains pal.html and pal2.html, the main World Wide Web home pages for the PAL and convenient entry points for the PAL Card Catalog. The file pal.html contains the full, "glossy" home page, and the file pal2.html contains the home page for the frequent user of the PAL. The directory languages/ada/userdocs/html/cardcat contains the PAL Card Catalog itself, and the files 00_Tax.html and 00_Keys.html allow the user to enter the Card Catalog at the top-level taxonomy or the keyword list.

Both versions of the PAL Card Catalog are also available on the CDROM distributions of the PAL, so users may browse the CDROM using either the Ada version of the Card Catalog or the HTML version.

For users of the CDROM without the Rock Ridge extensions, the PAL Card Catalog is also available in HTM (as opposed to HTML) files. Look at pal_a.htm and pal2_a.htm at the top-level of the CDROM and the directory ada/userdocs/htm/cardcat for the same Card Catalog implemented in htm files as opposed to html files.


Is the Software in the PAL Free of Defects?

Last Update: 21 June 1993

The software in the PAL is an outstanding collection from all over the world, but it comes with a warning: like any such collection, there are outstanding items, good items, average items, and poor items. This software contains items which are really useful, items which you cannot live without, and items which simply may not work in your environment. So you, as a user, must not come into this thinking that everything is perfect.

So how do you know in advance what software is good and what is bad? Study. This problem has come up over and over again with the Ada Software Repository (ASR), and I answered this by adding a REVIEW CODE field to all the items in the ASR Master Index. Chapter 1 of the Master Index gives the keys for this field (e.g., CS means Compiled Successfully, ES means Executed Successfully, NR means Not Rated (I don't know if it is good or bad), etc.). Every item in the Master Index book has an associated REVIEW CODE field. Look at this when you consider using the item. Also, look for Comment (CMM) files throughout the ASR. They tell success/problem stories. They are text files, so you can just read them. Finally, if you find an item marked with a CS and ES, note the compilers/platforms noted with this mark (e.g., CS(DEC Ada), etc.). If a number of compilers/platforms are named, you probably have a very portable item.

The PAL has a document called the PAL Catalog (similar in nature to the Master Index of the ASR). The PAL Catalog has a similar REVIEW CODE field, and CMM files are also support in the PAL. In phase 2 of the PAL, one or more automated static code analysis tools will be used to analyze the Ada source code in the PAL and report on it.


What Certification is Done?

Last Update: 6 June 1994

The second stage in the development of the Public Ada Library (PAL) has begun with the introduction of the concept of certification to the Ada source code in the library. A program, Certifier_1, has been created that will be initially used to evaluate all Ada source code submitted to the PAL. Certifier_1 has the ability to analyze thousands of files in a single pass, checking on their interdependencies. It ranks the files it is asked to analyze as OK or NOT OK and assigns a letter grade to the system (A, B, or C is OK, D and F are NOT OK).

Certifier_1 contains a lexical analyzer and a parser for the Ada83 language. A grade of F is assigned to the system if syntax or lexical errors are encountered. Certifier_1 also builds an internal data structure describing the interdependencies of the library units and subunits. If stubs (subunit bodies) are missing and there are no syntax or lexical errors, a grade of D is assigned to the system indicating that major parts of it are missing. This is not necessarily bad; the Abstractions library from Intermetrics, for instance, received a letter grade of D because of missing subunits, but, when the Intermetrics Standards Checker was evaluated with Abstractions, the Standards Checker code filled in the missing subunits, giving the combined Standards Checker and Abstractions system a grade of A.

Certifier_1 also checks on compiler-specific pragmas, the use of machine code, and the withing of library units that are not a part of the analyzed code. It awards lower grades (B and C) if all else is OK and one of these issues comes up. A grade of a B or a C may or may not mean there is a problem. Compiler-specific library units may be employed, causing the lower grade, for example. Also, it may be possible to raise the grade by including another components library, like CS Parts or New Abstractions, in the evaluation to fill in the missing library units. However, a B or a C may also mean that code has been omitted.

Certifier_1 generates two reports: a report for inclusion in the PAL database entry on the item and a log file which describes details on the problems encountered, including line numbers and file names on or near which the problems can be found. Log reports can be found for each item in the PAL by checking in the directory languages/ada/userdocs/catalog/c1_rpts. Reports are named after the items on which they report; ada_sda.c1, for instance, is the report associated with the Software ID file ada_sda.sid.

Certifier_1 is by no means a final solution to the problem of certification of reusable software in a library. However, it is a start. It does not beat a compiler by any means, but it does provide a quick, first-look solution. It does not determine logical errors or problems with completeness. Many things can slip through Certifier_1, but, likewise, many things do not. It is a first step.


What are Review Codes?

Last Update: 6 June 1994

The database maintained on the PAL includes Review Codes which are used to indicate to some extent the level of trust which may be placed in a particular item. These Review Codes are defined as follows:

AR
AdaNET Report is available (usually in the ZIP file); AdaNET Reports contain information on experiences in compiling this item

C1
The Certifier_1 tool has analyzed the Ada source code in this item; the full format of this entry is "C1 n.n g" where n.n is the version number of Certifier_1 and g is the letter grade given by Certifier_1 (A, B, and C are satisfactory; D and F are not satisfactory)

CMM
Comment Files (*.CMM, *.CM2, etc) are available which describe one or more problems with the item

CS
Compiled Successfully (followed by an indication of the Ada compiler used in parentheses) by the reviewer

ES
Executed Successfully (followed by an indication of the target computer used in parentheses if different from the systems mentioned in the CS list) by the reviewer

MF-CODE
Missing File - Code; one or more files of source code are missing; the item cannot be compiled without these files

MF-DATA
Missing File - Data; one or more files used as input data when the compiled code runs are missing; the item cannot be executed without these files

NR
Not Reviewed

OK
This is a text file which is believed to be an accurate copy of the original

RI
Review Incomplete (only some results of a partial review are posted)

SDA
Report generated by the Ada System Dependency Analyzer is available; if followed by a number from 1 to 5 (e.g., SDA5), the number indicates the relative quality of the item, where 5 is of the highest quality

not
negation prefix (e.g., not ES or not OK)

What are some Useful World Wide Web Pages?

Last Update: 17 July 1995

Some useful World Wide Web Server home pages:

PAL (Card Catalog Traversal)
http://wuarchive.wustl.edu/languages/ada/pal.html
pal2.html (short version of above)
http://www.cdrom.com/pub/ada/pal.html
pal2.html (short version of above)
http://web.cnam.fr/Languages/Ada/PAL/

PAL ("Manual" Traversal thru its Directory Structure)
http://wuarchive.wustl.edu/languages/ada/index.html">
http://www.cdrom.com/pub/ada/index.html

Ada Information Clearinghouse Home Page
http://sw-eng.falls-church.va.us/

Ada WWW Server
http://lglwww.epfl.ch/Ada/

SIGAda WWW Home Page
http://info.acm.org/sigada/

Ada Belgium Home Page
http://www.cs.kuleuven.ac.be/~dirk/ada-belgium/

Asset Source for Software Engineering Technology Home Page
http://source.asset.com/asset.html

Data & Analysis Center for Software Home Page
http://www.utica.kaman.com:8001/

Electronic Library Services and Applications Home Page
http://www.mountain.net/

Software Technology for Adaptable Reliable Systems Home Page
http://www.stars.ballston.paramax.com/

Walnut Creek CDROM Home Page
http://ftp.cdrom.com/

How Do I Handle the Various Types of Files in the PAL?

Last Update: 12 November 1994

A number of file formats have come into play among the files in the PAL:

If you have questions about these file formats, see the file README.TOO in the top level of the the toolkit directory. The subdirectories under the toolkit directory contain programs for various platforms that allow you to work with these files in various ways.


Alternate Sources Tree

Last Update: 28 April 1995

The PAL can be accessed directly via FTP, NFS, gopher, and the World Wide Web using the wuarchive.wustl.edu host computer. For users interested in a general background on the Internet and the techniques for using FTP, NFS, gopher, and the World Wide Web, see the PAL subdirectory userdocs/internet for documentation and pointers to books.

This userdocs/alt_srcs tree contains information about companies and organizations that provide support in some way to the PAL user community through value-added services and products. Some users of the PAL may not have access to the PAL directly via FTP and NFS, so the following information is presented to help them find alternate ways of accessing the PAL.

Examples of such services are:

Examples of such products are:

Companies and organizations wishing to be added to this tree are invited to send email describing their services or products to me at the above email address. I will work with them to provide "free advertising" space in the PAL under this tree so users of the PAL can be made aware of their services and products. I reserve the right to edit material provided by these companies in the event that this material violates some known law, public sensibilities, or the like.

The following companies and organizations are currently listed in the userdocs/alt_srcs directory:


How to Use the PAL from Various Platforms

Last Update: 17 July 1995

The directory ada/how2use has been created to further support users of the PAL on both the Internet and the Ada CDROM from Walnut Creek. This directory contains instructions for using the PAL from World Wide Web browsers, on Macintosh and PC platforms, and on other platforms.


How Can I Submit an Item to the PAL?

Last Update: 6 December 1993

Contact Richard Conn at conn@wuarchive.wustl.edu if you wish to submit an item to the PAL. Several different mechanisms are in place for making a submission, including direct FTP into the PAL (which is by far the easiest from my point of view). I will ask you to fill out an Item Description (ID) file which describes the item you are submitting. Once the item is on WUARCHIVE and I have your filled-out ID file, I can take it from there.

Detailed submission instructions are in the file submit2.txt in the directory languages/ada/userdocs/faqfile.