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).
ASIS/PVL contains the following views:
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 111.2.7.2.
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:
ASIS/PVL can be downloaded in one of two different formats:
Last update 12 January 1999. Questions, comments to Clyde Roby (CRoby@IDA.Org)