[Up] [SIGAda] [ACM]

ASIS at Tri-Ada 1997

Tri-Ada'97 had a number of ASIS activities, including a tutorial, a panel, a paper session, and a BOF (Birds-of-a-Feather).

A joint ASISWG and Safety and Security Working Group (SAFEWG) BOF was held, discussing the safety-critical and very mission-critical application of making India Pale Ale. India Pale Ale has more hops and more alcohol than traditional Ale to serve as a preservative for the long trip to India. Yes, a great tasting Ale is very mission-critical and the process is very safety-critical. Yes, ASIS can be used to make a great tasting Ale.

The activities, along with extended abstracts are provided below.

Monday Morning, 10 November; Half Day Tutorial

Building Development Tools for Use with GNAT

Sergey I. Rybin, Moscow State University
Cyrille Comar, ACT

This tutorial explains how you can build your development and analysis tools when working with GNAT. Some sample tools were presented to demonstrate different approaches to tool development. Participants should have a good understanding of Ada semantics, and basic experience in programming with GNAT is helpful, but not required.

The tutorial consists of two parts. In the first part (presented by Cyrille Comar) the general approach for developing tools for the GNAT Ada 95 compilation system is discussed. In the second part (presented by Sergey Rybin) ASIS is presented as an effective technology for building the wide range of useful tools.

The first part starts from the general overview of GNAT, including the compiler's internal data structures and existing GNAT toolset. Then different technologies for building tools for GNAT are compared to give some ideas which technology should be used for a specific tool. ASIS is positioned as a technology which provides a proper (that is, standardized, stable and high-level) interface to the compiler's internals and allows you to build both free and proprietary tools for GNAT.

The second part is an introductory ASIS (sub)tutorial, and its main goal is to help the audience to get started with writing their own ASIS tools. It starts from the general definition of ASIS, examples of ASIS-based code fragments and tools which can be built on top of ASIS. The main ASIS abstractions, such as Context, Compilation Unit and Element, are described.

Then the tour guide through the ASIS specification is presented. The goal of this tour is to show what and where things are defined in ASIS, and how to navigate in the ASIS specification.

A short overview of the ASIS implementation for GNAT is next.

And then some practical aspects of ASIS-based tool development are discussed in order to show that ASIS really is easy-to-use and easy-to-start and give the audience some hints and tips on how to build your own ASIS tool. This part contains the basic cycle of an ASIS application, specific and general traversing of Ada programs by means of ASIS queries, dealing with lists of Elements and Compilation Units, the idea of ASIS secondary layers, the notion of consistency in an ASIS Context and dealing with ASIS implementation-specific features in ASIS applications.

Tuesday Afternoon, 11 November; 4:00-5:30 P.M.; ASIS Panel

Roll Your Own Analysis Tools

Chaired by Mr. Currie Colket, Chairman ASIS Working Group/Chairman ASIS Rapporteur Group.


Dr. Joyce Tokar, DDC-I
ASIS 95: The ASIS Interface for Ada 95 (PowerPoint slides, 595 KBytes)

Dr. Bill Thomas, MITRE
"Rolling Your Own Tools using ASIS" used an example to parse the Ada code in a specified library and to report the counts of Declarations summarized by the different declaration kinds in the Ada Source Code -- You can download the tar file (10 KBytes), or the individual text files:

Dr. Herm Fischer, Mark V Systems
ASIS Experience (ObjectMaker) (PostScript file 46 KBytes; also available as a Microsoft Word file 17 KBytes).

Mr. Robert Kitzberger, Rational Software Corporation
ASIS 95 Experience on TestMate Ada (PowerPoint slides, 145 KBytes)

Mr. Clyde Roby, IDA
ASIS 95 Artifacts on the Internet (PostScript file, 64 KBytes)

The panel discussion focused on how a typical Ada developer can use the Ada Semantic Interface Specification (ASIS) to rapidly "roll-your-own" tools for special analysis of compilable Ada source code for a variety of purposes (such as call tree analysis, object/type usage analysis, browsing, etc.). This panel session addressed the ASIS 95 specification focusing on its use for ASIS-based tools to evaluate quality in general, and more specifically, for its analysis of mission-critical and safety-critical systems.

Panelist Addresses:
Mr. Currie Colket
Space and Naval Warfare Systems Command
2451 Crystal Drive
Arlington, VA 22245-5200 - USA
Phone: +1 (703) 602-1483
Fax:   +1 (703) 602-6805
Email: Colket@ACM.Org

Dr. Joyce L. Tokar
Phoenix, AZ
Email: jlt%ddciiphx@uunet.uu.net  OR  Tokar@IBM.Net

Dr. Bill Thomas
The MITRE Corp.
1820 Dolley Madison Blvd.,  M/S W624
McLean, VA  22102
Phone: (703) 883-6159
FAX:   (703) 883-1339
Email: BThomas@MITRE.Org

Herm Fischer
Mark V Systems
Email: Fischer@MarkV.Com

Robert Kitzberger
Development Manager
Rational Software Corporation
Email: RLK@Rational.Com

Clyde Roby
Institute for Defense Analyses
1801 N. Beauregard Street
Alexandria, VA  22311
Phone: (703) 845-6666
FAX:   (703) 845-6788
Email: ClydeRoby@ACM.Org

Wednesday Afternoon, 12 November; 4:00-5:30 P.M. Paper Session

Development Tools II Session:

ASIStint: An Interactive ASIS Interpreter

   Mr. Vasiliy Fofanov, Moscow State University, 
   Dr. Sergey Rybin, Moscow State University,
   Professor Alfred Strohmeier, Swiss Federal Institute of Technology

ASIStint is an interactive ASIS interpreter with scripting facilities. It is a perfect assistant (sic!) in learning ASIS, because the user may interactively try out the effects of the various ASIS queries. It may be used for learning ASIS, i.e., the user may try out interactively the effects of the various ASIS queries. It might also be used as an assistant (sic!) when experimenting with ASIS queries, e.g., in order to find out a way of implementing a part of an ASIS application, or to correct it. Yet another use is debugging and testing an ASIS implementation. Input-output of a session may be recorded, and then be replayed.

ASIStint is completely portable between ASIS implementations that comply with the ASIS version 2.0.p. For ASIS-for-GNAT, such a version exists for registered users and will soon become publicly available.

You are welcome to contact the author at fofanov@bigfoot.com if you need this tool to be adapted for any of the previous ASIS versions.

This presentation is available as a set of slides in PostScript form (87 KBytes).

The Ada language source files and associated documentation for ASIStint is available as a UNIX tar file (399 KBytes).

Wednesday Evening, 12 November; 7:30-9:30 Joint BOF

Joint Safety & Security Working Group [SAFEWG] and
ASIS Working Group [ASISWG] BOF

               Mr. George Romanski, Chair SAFEWG
               Mr. Currie Colket, Chair ASISWG/ASISRG
               Dr. Bill Thomas, MITRE

A safety-critical / mission-critical application was presented which is used to make India Pale Ale [Yes, safety-critical, and we will all agree, taste is very mission-critical]. Safety aspects were discussed which lend themselves to ASIS code analysis.

Special thanks to George Romanski for the free samples of his home-made India Pale Ale.

[Up] [SIGAda] [ACM]

Last update 25 February 1998. Questions, comments to Clyde Roby (CRoby@IDA.Org)