[Up] [SIGAda] [ACM]

ASIS Glossary

Ancestor.
Ancestors of a library unit are itself, its parent, its parent's parent, and so on. (Standard is an ancestor of every library unit).
ASIS application.
Any programming system or any set of software components making use of ASIS queries to obtain information about any set of Ada components.
ASIS implementation.
All the hardware and software that implement the ASIS specification for a given Ada implementation and that provide the functionality required by the ASIS specification.
ASIS queries.
Those subprogram interfaces (and only those) defined in the ASIS standard; these are supported by types, subtypes, and exceptions also defined in the ASIS standard. Thus, ASIS queries and supporting entities are together the ASIS interface. The following informal query classification is used by the ASIS community: "black-box" queries are those ASIS queries which produce information about compilation units and "white-box" queries are those ASIS queries which produce information about Elements; semantic queries are those ASIS queries which express semantic properties of ASIS Elements in terms of other Elements; structural queries are those ASIS queries which provide the top-down decomposition and reverse bottom-up composition of the compilation unit according to its syntax structure. (Note that semantic queries are generally named "Corresponding_..." or "Implicit_..." in the ASIS specification.)
Closure.
A term commonly used instead of needed units.
Compilation unit.
"The term compilation unit is used to refer to a compilation_unit. When the meaning is clear from context, the term is also used to refer to the library_item of a compilation_unit or to the proper_body of a subunit". [ISO/IEC 8652:1995, 10.1.1(9)]. ASIS says "ASIS compilation unit" when the intent is to stress, that the ASIS viewpoint on an Ada compilation unit is described in the ASIS standard. Note, that the term "compilation unit" can refer to either syntactical category "compilation_unit" or to the library_item of a compilation_unit or to the proper_body of a subunit (that is, the compilation_unit without the context_clause and the separate (parent_unit_name)).
Compilation_Unit [type].
An ASIS private type for which values denote an Ada compilation unit or configuration pragma from the environment denoted by some open ASIS context. A non-nil value of the Compilation_Unit type also contains information about some physical object from the "external world" treated by the underlying Ada implementation as the corresponding Ada compilation unit or as a result of compiling a configuration pragma.
Container.
Logical collection of ASIS compilation units. For example, some container can hold compilation units which include Ada predefined types, another container can hold implementation-defined packages. Containers provide the implementation-defined way of grouping the compilation units accessible for an ASIS application through the ASIS queries.
Container [type].
An ASIS private type for which values denote a set of compilation units being a subset of the set of compilation units making up a context.
Context.
Defines a set of compilation units and configuration pragmas processed by an ASIS application. ASIS provides any information from a context by treating this set as if its elements make up an environment declarative part by modeling some view (most likely one of the views of the underlying Ada implementation) on the environment. ASIS may process several different contexts at a time.
Context [type].
An ASIS private type for which values denote a set of compilation units considered by ASIS as making up an Ada environment declarative part from which to provide information.
Dependent.
Dependents of a compilation unit are all the compilation units that depend semantically on it, either directly or indirectly. A is a dependent of B, if B is a supporter of A.
Descendants.
Descendants of a library unit relation are the inverse of the ancestor relation.
Element.
A common abstraction used by ASIS to denote the syntax components (both explicit and implicit) of ASIS compilation units. The term Element is also used as the synonym for "the value of the ASIS Element type". See also "Explicit element" and "Implicit element".
Element [type].
An ASIS private type, whose values represent the syntax components (both explicit and implicit) of ASIS compilation units.
Environment.
"Each compilation unit submitted to the compiler is compiled in the context of an environment declarative_part (or simply environment), which is a conceptual declarative_part that forms the outermost declarative region of the context of any compilation. At run time, an environment forms the declarative_part of the body of the environment task of a partition." [ISO/IEC 8652:1995(E), 10.1.4(1)]. Note that the mechanisms for creating an environment and for adding and replacing compilation units within an environment are implementation-defined.
Explicit element.
An ASIS Element, representing a language construct that appears explicitly in the program text for the compilation unit (e.g., an explicit declaration).
Extension.
Non-standard facilities (other library units, non-standard children of standard ASIS library units, subprograms, etc.) which provide additional information from ASIS types, or modify the behavior of otherwise standard ASIS facilities to provide alternative or additional functionality.
Family.
The family of a given unit is defined as the set of compilation units that comprise the given unit's declaration, body, descendants, and subunits (and subunits of subunits and descendants, etc.).
Id.
A way of identifying a particular element, from a particular compilation unit, from a particular context.
Id [type].
An ASIS private type implementing the Id abstraction. The values of this type can be written to files. These values can be read back from files and converted into values of the Element type with the use of a suitable open context.
Implementor.
A company, institution, or other group (such as a vendor) who develops an ASIS implementation; thus an ASIS implementor. There are also Ada implementors, who provide Ada compilation systems; and there are ASIS-based tool (or, ASIS Application) implementors, who develop tools which are based upon the ASIS standard.
Implicit element.
An ASIS Element, representing a language construct that does not exist in the program text for the compilation unit, but could occur at a given place in the program text as a consequence of the semantics of another construct, (e.g., an implicit declaration, a generic instantiation).
Line.
The logical representation of a line of text from the source code of the external representation of a compilation unit.
Line [type].
An ASIS private type for the ASIS Line abstraction. The values of the Line type represent the lines of text from the source code of the external representation of compilation units.
Needed Units.
The needed units of a given compilation unit is a set of compilation units ultimately needed by the given compilation unit to make up or to be included in a completed partition.
Optional functionality.
The subset of ASIS facilities that are explicitly identified in the ASIS standard as optional which may legitimately be omitted from a Basic Conforming ASIS implementation, but shall be included in any Fully Conforming ASIS implementation, unless stated otherwise in the ASIS specification.
Queries.
See ASIS queries.
Relation (between ASIS Compilation Units).
Semantic relationships between compilation units (as discussed in chapter 10 of ISO/IEC 8652:1995). The Relation_Kinds type enumerates the kinds of relations that can exist between compilation units. See also Dependent, Extended Family, and Supporter.
Required functionality.
The subset of ASIS facilities which are not explicitly identified in the ASIS standard as optional which shall be included in a Basic or Fully Conforming ASIS implementation, unless stated otherwise in the ASIS specification.
Semantic queries.
See ASIS queries.
Structural queries.
See ASIS queries.
Supporter.
Supporters of a compilation unit are units on which it semantically depends, either directly or indirectly. B is a supporter of A, if A is a dependent of B.


[Up] [SIGAda] [ACM]

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