[Up] [SIGAda] [ACM]

ASIS Program View Layer (PVL)

ASIS Program View Layer


The ASIS Program View Layer (ASIS/PVL) is a set of reusable abstractions built upon the Ada Semantic Interface Specification (ASIS).

ASIS is a programmatic interface between an Ada compiler's library database and any tool or program requiring information in this library. ASIS is an open and published specification that gives CASE-tool and application developers access to both the syntactic and semantic information contained in an Ada compiler library. ASIS has been designed to be independent of underlying compiler library implementations; thus supporting portability of CASE tools while relieving users from having to understand the complexities of an Ada compiler library's internal representation of data.

The ASIS/PVL abstractions are "views" of Ada software structure that are commonly used in the static analysis of programs. For each view, ASIS/PVL provides a subsystem which constructs a view data structure using ASIS queries. Together, these subsystems form a layer enabling tool builders to gather information for analysis without having to write detailed ASIS traversals. Thus, in the same way that a widget set hides the intricacies of low-level window system calls, ASIS/PVL simplifies the job of building tools on ASIS.

|                                                                      |
|                          Ada CASE Tools                              |
|                                                                      |
|              +-------------------------------------------------------+
|              | +-----------------------------------------------------+  -+
|              | | Namespace  | Reference  |              |            |   | P
|          +---+ |   View     |    View    |    Region    |   Control  |   | V
|          | +-----------------------------|     View     |     Flow   |   | L
|          | |          Scanners           |              |     View   |   |
| +--------+ +---------------------------------------------------------+  -+
| | +------------------------------------------------------------------+
| | |                    ASIS Version 1.1.1                            |
+-+ +------------------------------------------------------------------+
|                       Ada Program Library                            |

ASIS/PVL was developed by General Research Corporation of Santa Barbara, California for the Ada Joint Program Office (AJPO) under the FY93 Ada Technology Insertion Program (ATIP).

The Views

ASIS/PVL contains the following views:

ASIS/PVL also provides a general purpose traversal template ("Scan") which can be used to construct ASIS applications.


The ASIS/PVL views are views of Ada 83 programs. ASIS 1.1.1 (the most recent version of ASIS for Ada 83) is used to construct the views. Tool builders wishing to use ASIS/PVL will need an Ada 83 compilation system that includes an ASIS 1.1.1 implementation.

The ASIS/PVL subsystems are themselves written in Ada 83.

ASIS/PVL was developed using the Rational Apex environment and tested against Apex ASIS

Software Organization

The ASIS/PVL software is partitioned into subsystems. Each subsystem resides in a directory that bears the subsystem name. Some subsystems are dependent on other subsystems, i.e., the Ada units in a given subsystem may refer to units in a different subsystem. The specific dependencies are documented in the README file in each directory.

There is one subsystem for each view:

      control_flow           Control Flow View
      namespace              Namespace View
      region                 Region View
      reference              Reference View

The view subsystems all depend a set of common abstractions and utilities, which are found in the following subsystem:

      common                 Common abstractions and utilities

The traversal template is located in:

      scan                   General purpose traversal template

Also provided is a traversal which locates Ada declarative regions within a compilation unit. This traversal is found in:

      region_scan            Declarative region traversal

Finally, most of the subsystems depend on a subsystem called 'asis'. This should be the implementation of ASIS 1.1.1 in the user's compilation environment.

Each subsystem directory contains a README file which describes:

Included in each view subsystem are one or more test drivers. These can be used to create an executable program which builds the view and dumps it in a textual format for inspection.
Files containing Ada compilation units follow a naming convention:

Specifications have the suffix ".1.ada"

Bodies and subunits have the suffix ".2.ada".

ASIS/PVL can be downloaded in one of two different formats:

[Up] [SIGAda] [ACM]

Last update 12 January 1999. Questions, comments to Clyde Roby (CRoby@IDA.Org)