The Ada Semantic Interface Specification (ASIS) is an interface between an Ada environment (as defined by ISO/IEC 8652:1995) and any tool requiring information from this environment. 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.
Examples of tools that benefit from the ASIS interface include: automated code monitors, browsers, call tree tools, code reformators, coding standards compliance tools, correctness verifiers, debuggers, dependency tree analysis tools, design tools, document generators, metrics tools, quality assessment tools, reverse engineering tools, re-engineering tools, safety and security tools, style checkers, test tools, timing estimators, and translators.
This International Standard specifies the form and meaning of the ASIS interface to the Ada compilation environment.
This International Standard is applicable to tools and applications needing syntactic and semantic information in the Ada compilation environment.
This International Standard specifies:
- The form of the ASIS interface;
- Sequencing of ASIS calls;
- The permissible variations within this International Standard, and the manner in which they are to be documented;
- Those violations of this International Standard that a conforming implementation is required to detect, and the effect of attempting to execute a program containing such violations;
This International Standard does not specify:
- Semantics of the interface in the face of simultaneous updates to the Ada compilation environment.
- Semantics of the interface for more than one thread of control.
This International Standard contains twenty-three clauses and four annexes.
Clause 1 is general in nature providing the scope of this International Standard, normative references, and definitions.
Clause 2 identifies the ASIS technical concepts. Here the Ada compilation environment to which ASIS interfaces is described. The concept of queries is presented. The ASIS package architecture is presented.
The packages that comprise the ASIS International Standard are provided in Clauses 3 through 23. These packages are provided in the correct compilation order and when presented in electronic format are compilable.
- Clause 3 package Asis
- Clause 4 package Asis.Errors
- Clause 5 package Asis.Exceptions
- Clause 6 package Asis.Implementation
- Clause 7 package Asis.Implementation.Permissions
- Clause 8 package Asis.Ada_Environments
- Clause 9 package Asis.Ada_Environments.Containers
- Clause 10 package Asis.Compilation_Units
- Clause 11 package Asis.Compilation_Units.Times
- Clause 12 package Asis.Compilation_Units.Relations
- Clause 13 package Asis.Elements
- Clause 14 package Asis.Iterator
- Clause 15 package Asis.Declarations
- Clause 16 package Asis.Definitions
- Clause 17 package Asis.Expressions
- Clause 18 package Asis.Statements
- Clause 19 package Asis.Clauses
- Clause 21 package Asis.Ids
- Clause 22 package Asis.Data_Decomposition (optional package)
- Clause 23 package Asis.Data_Decomposition.Portable_Transfer
The following annexes are informative:
- Annex A: Glossary
- Annex B: ASIS Application Examples
- Annex C: Miscellaneous ASIS I/O and IDL Approaches
- Annex D: Rationale
The major package interfaces visible to ASIS users are identified as clauses facilit