From vadik!alex!alex.srcc.msu.su!rybin@gamma.srcc.msu.su Thu Jul 4 08:49:51 1996 Return-Path: Received: from ida.org (cs.ida.org) by csed-115.csed.ida.org (4.1/SMI-4.1) id AA24891; Thu, 4 Jul 96 08:49:50 EDT Received: from gw.srcc.msu.su by ida.org (4.1/SMI-4.1) id AA10682; Thu, 4 Jul 96 08:49:23 EDT Received: from srcc.UUCP (uusrcc@localhost) by gw.srcc.msu.su (8.6.12/8.6.12) with UUCP id QAA14532; Thu, 4 Jul 1996 16:48:35 +0400 Received: by gamma.srcc.msu.su; Thu, 4 Jul 1996 16:47:32 +0400 Received: by vadik.srcc.msu.su; Thu, 4 Jul 1996 16:30:02 +0400 Received: by alex.srcc.msu.su (UUPC/@ v5.09gamma, 14Mar93); Thu, 4 Jul 1996 16:40:16 +0400 To: roby@ida.org Cc: ASIS-Officers@SW-Eng.Falls-Church.Va.US References: <9607021316.AA21573@csed-115.csed.ida.org> Message-Id: Organization: Research Computing Center, Moscow State University From: Rybin Sergey Igorevich Date: Thu, 4 Jul 96 16:40:15 +0400 X-Mailer: BML [MS/DOS Beauty Mail v.1.36] Subject: ASIS glossary Lines: 266 Content-Length: 11333 X-Lines: 266 Status: OR Clyde and all, below is my version of the ASIS glossary. I've included all the ASIS private types except those which are defined in the Data Decomposition Annex, I've also deleted all the discussion items, different versions of the definitions for some terms, and I've put all the stuff into alphabetic order. Sergey Rybin. ================================================================= Last change -- 03 July 1996 The ASIS standard should be independent of this glossary. This means that the glossary must introduce no content that can not be formally found elsewhere. The intent of this glossary is for convenience only. All terms which are defined in ISO/IEC 8652:1995(E) as Ada 95 technical terms are used in the ASIS specification in full accordance with those definitions. See the Ada 95 standard for definitions. Those of Ada 95 technical terms, which are of special importance for ASIS standard, are included in this glossary, followed by the definition of the terms in ISO/IEC 8652:1995(E). ================================================================= 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 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. 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 95 standard; these may be supported by types, subtypes, and exceptions also defined in the ASIS 95 standard. Thus, ASIS queries and supporting entities are together the ASIS interface. The following informal query classification is used by 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. [See Note.6] Compilation unit See ISO/IEC 8652:1995(E), 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" may 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 [may be, "associated with"?] 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 may hold compilation units which include Ada predefined types, another container may 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 their 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 [see also Note.5 below] 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 to provide information from. Dependent "Dependent" stands for the relation between compilation unit which is reverse to "Supporter". A is a dependant of B, if B is a supporter of A. 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 See 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. Extended family Extended family of a given compilation unit is a set of compilation unit needed by the given compilation unit to make up or to be included in a completed partition. 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 may be written to files. These values may be read back from files and converted into values of the Element type with the use of a suitable open context. Id segment A way of splitting the identification of a particular element, from a particular compilation unit, from a particular context into smaller parts. Id_Segment [type] An ASIS private type implementing the Id segment abstraction. Under appropriate conditions, a value of the Id type may be logically considered as being equivalent to some list of the values of the Id_Segment type. Like the values of the Id type, the values of Td_Segment may be written to files and read from files, and a list of Id_Segment values may be converted into the corresponding value of the Element type with the use of a suitable open context. Implicit element An ASIS Element, representing a language construct that does not exist in the program text for the compilation unit, but should be supposed to occur at a given place in the program text as a consequence of the semantics of another construct, i.e., an implicit declaration, a generic instantiation, etc. Line The logical representation of a text line of the source text of a an external representation of a compilation unit, as it has been submitted to the underlying Ada implementation. Line [type] An ASIS private type for the ASIS Line abstraction. The values of the Line type represent the text lines of the source text of the external representation of compilation units. Optional functionality The subset of ASIS facilities that are explicitly identified in the ASIS standard as optional and that may legitimately be omitted from a Basic Conforming ASIS implementation, but must be included in any Fully Conforming ASIS implementation, unless stated otherwise in the ASIS specification." Provider [implementer???] A company, institution, or other group (such as a vendor) who develops an ASIS implementation; thus, an ASIS provider. There are also Ada providers, who provide Ada compilation systems; and there are also ASIS-based tool (or, ASIS Application) providers, who provide tools which are based upon the ASIS standard. Relation (between ASIS Compilation Units) Semantic relationships between compilation units (as discussed in chapter 10 of ISO/IEC 8652:1995(E)). 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 that are not explicitly identified in the ASIS standard as optional and that must 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 A compilation unit upon which the given compilation unit depends, directly or indirectly. ================================================================= Notes. 1. I would suggest to get rid of the prefix "ASIS" for any glossary item for which it is possible. This prefix can neither change the meaning of Ada 95 technical terms nor add some special meaning to ASIS-defined technical terms. 2. I would suggest to get rid of capitalizing of the first letters in ASIS terms in the normative part of the ASIS standard, if (and/or when) this capitalizing is aimed at stressing any special ASIS meaning of the term. 3. The following terms are added: ASIS application Environment 4. The following terms are deleted: [ASIS] secondary queries (see Note.6) Family 5. The definition of a context: I am still thinking, that defining ASIS as an interface to an Ada environment is not a good idea in TECHNICAL sense. If we need this definition for some global "strategical" and/or "political" purposes (and everything looks like we really need this), we should keep it, but I would be as careful as possible when giving any technical definition about ASIS viewpoint on an Ada environment [declarative part!]. In particular, I would prefer to use "as-if" wording explicitly. 6. I would suggest to delete the glossary entry for "secondary" queries. The main reason is that the glossary gives the precise definition for the notion of a query, and after that any so-called "secondary query" is ether a query, if it is defined in the ASIS standard (and in this case it is not really important whether or not it is expressible in terms of other queries), or it is not a query at all, if it is not defined in the ASIS standard. 7. I would repeat once again my suggestion to delete Family, Direct_Supporters and Direct_Dependents from the values of the Relation_Kinds type as corresponding to the relations which have no natural mapping on RM95. 8. Do we really need special entries for "Semantic queries" and "Structural queries"?