ASIS Frequently Asked Questions (FAQ)
ASIS FAQ Version: 13 May 1999
What is ASIS?
The Ada Semantic Interface Specification (ASIS) is an interface
between an Ada environment (as defined by ISO/IEC 8652:1995) and any
tool or application requiring information from it. An Ada environment
includes valuable semantic and syntactic information. ASIS is an open
and published callable interface which gives CASE tool and application
developers access to this information. ASIS has been designed to be
independent of underlying Ada environment implementations, thus
supporting portability of software engineering tools while relieving
tool developers from needing to understand the complexities of an Ada
environment's proprietary internal representation. In short, ASIS can
provide the foundation for your code analysis activities.
How Can I Get ASIS Information?
All publicly available information is on the ASIS web site. There is
a host of information there including tutorials, examples,
bibliography, ASIS news, and ASIS products.
The ASIS Home Page =>
What type of Code Analysis Tools can be developed with ASIS?
Examples of tools that benefit from the ASIS interface include: code
restructuring tools, code browsing and navigation tools, coding style
and standards compliance tools, cross-reference tools, data flow
analysis tools, dependency tree analysis tools, design tools, document
generation tools, invocation (call) tree analysis tools, language-
sensitive editing and pretty-printing tools, language translation
tools, quality assessment tools, reverse engineering tools, re-
engineering tools, safety and security compliance tools, static
correctness verifiers, tasking analysis tools, test-case generation
and coverage analysis tools, and usage, quality, and complexity
metrics tools. In fact most of these have already been developed using
the ASIS interfaces by people in Australia, Canada, China, Denmark,
France, Germany, Japan, Russia, Sweden, Switzerland, the United
Kingdom, and the United States.
How would a Code Analysis Tool use ASIS?
For example, ASIS can be used by a metrics tool to evaluate Ada
application code. The symbolic name, type, and usage of each object
declared can be obtained through the ASIS interface to support the
requirements of the metrics tool. Use of the object can be identified
by traversal of a logical semantic tree using the ASIS
interfaces. ASIS can map objects to their correct declaration and type
despite multiple renaming through multiple package chaining. Counts
for the numbers of each desired occurrence can then be presented to
users of the metrics tool. Examples of commercial tools which use ASIS
include: Ada Analyzer by Little Tree Consulting, Adamat by DRC,
AdaQuest by GRC, ObjectMaker by Mark V (the first ASIS 95 commercial
product - an Ada 83 syntactic parser and semantic analyzer for the
graphical representation portion was replaced with ASIS 95 calls; the
original effort was approximately 6.5 man-year; the updated version
for Ada 95 for STC'97 exhibition took about 1 week), AdaWise by
Odyssey Research Associates, and ReEngineer by Loral Defense
Systems. ASIS makes it easy to roll-your-own tool to support your own
requirements. For example, Boeing and MITRE use ASIS to support their
own special needs.
Why Use ASIS to get Information from the Ada Environment?
Tools needing syntactic and semantic information would otherwise have
to recompute the information from all the source code (which could
take a long time and require the semantic analysis of a compiler),
fake the information (dangerous when reliable information is needed),
or access the information through proprietary interfaces to an
implementor's Ada environment (non-portable and breaks when
proprietary interfaces change as they frequently do from one release
to the next). ASIS provides a highly portable, easy-to-use interface,
insulating users from changes in proprietary representations.
How might an Application use ASIS?
The Universal Delogger was built using ASIS for an Air Force satellite
system called "System 1" to analyze (delog) messages sent from the
satellite to a ground station. The satellite communicates to the
ground station via messages in a byte-stream. An earlier delogger
implementation required a rigorous interface protocol and specialized
processing for each possible message. Instead of a rigorous protocol,
the message header provides a number which maps to an Ada record type.
The remaining portion of the message byte-stream contains the
composite value of that record. When the message is received, the
Universal Delogger assigns portions of the byte stream to named
components using ASIS and the optional ASIS data decomposition
interfaces. The named components with their values are then presented
to an operator. The most notable developmental cost benefit: Each
major build had to rebuild the message dictionary; the time required
to build this "types dictionary" was reduced from 704 hours to 2 hours
for each rebuild. The paper and presentation from STC'93 is available
on the ASIS Home page following the ASIS Bibliography link for 1993.
How can I get the ISO/IEC ASIS Standard?
ASIS is now available as ISO/IEC International Standard. It's
Information technology — Programming languages — Ada Semantic
Interface Specification (ASIS)
The ASIS Standard is available via the ISO Catalog at
the ASIS specific reference is located at
The ASIS Standard should also be available through ISO member nations. The
ASIS Standard contains 23 clauses and 4 annexes. These include:
General introduction, ASIS Technical Concepts, the compilable ASIS
Interface (Clauses 3-23), Glossary, ASIS Usage Examples, I/O & CORBA
IDL Examples, and Rationale.
Where did ASIS originate?
ASIS was initiated as a STARS activity in 1989. It became unfunded for
FY90 when the STARS program decided not to fund standardization
activities. Several vendors continued work in ASIS on their own. In
1992 the Ada Board recognized the potential benefits to the Ada
community of an ASIS standard and recommended that the Ada Joint
Program Office (AJPO) director support by whatever means possible the
development of an ASIS standard and its submission to ISO/WG9 for
publication. On 8 February, 1993, the Association for Computing
Machinery (ACM's) Special Interest Group on Ada (SIGAda) chartered the
ASIS Working Group (ASISWG) to develop the ASIS interface for Ada 83.
On December 1993, the AJPO recommended that ASIS be used as the
interface to the Ada 83 program library. The ASIS Rapporteur Group
(ASISRG) was established on 28 April 1995 by ISO/IEC JTC1/SC22 WG9 to
standardize ASIS as an international standard for Ada 95.
ASIS was approved as an ISO/IEC standard through the FDIS Ballot on 9
December 1998 and published by ISO/IEC as 15291:1999.
Will ASIS work with Every Ada Vendor?
ASIS is designed to be implemented on a variety of software
development environments by a high percentage of Ada Vendors and to
support Ada semantic requirements for a wide range of client tools.
If ASIS is not available for your favorite hardware and operating
system, you might talk to your vendor about providing ASIS interfaces
in the near future.
How do I get involved with ASISWG/ASISRG?
Your comments and participation are welcome. The following electronic
mail forums now exist for the ASISWG/ASISRG:
- For high-level non-technical discussions =>
To subscribe or to unsubscribe, send email to:
- For detailed technical discussions =>
To subscribe or to unsubscribe, send email to:
When subscribing, please give the following information:
- Company address (on as many lines as necessary)
- Phone Number
- FAX Number
- E-mail address(es)
- World Wide Web URL
- Mailing address, if different from Company address
For other questions, contact Mr. Currie Colket, Chair of ASISWG/ASISRG,
Phone: +1 (703) 883-7381; or Mr. Clyde Roby, Recorder of ASISWG,
Phone: +1 (703) 845-6666.
Last update 13 May 1999.
Questions, comments to
Clyde Roby (CRoby@IDA.Org)