the Ada Programming Language (LRM) to interested individuals and clients (Ehrenfried). Main abstractions In ASIS, there are 3 main abstractions that exist in the Ada 'private' types. This consists of Context, Compilation_Unit and Element. While there are additional types of abstractions also involved but the 3 mentioned are the fundamentals. ContextThe Context abstraction of ASIS consists of the definitions, terms and conditions that are available in ASIS enquiries. It is also used as a way and logical handle for the Ada environment.Compilation_UnitThe Compilation Unit is also a logical handle for the Ada environment. This abstraction also defines the properties and characteristics which are further seen in the Ada Reference Manual. It uses Ada's programming language implementation to convey compilation units through ASIS. As said by Adacore; "An ASIS Compilation_Unit provides the ‘black-box’ view of a compilation unit, considering the unit as a whole. It may be decomposed into ASIS Elementand then analyzed in ‘white-box’ fashion." Examplies of these properties given can include: Time of last update Name of object containing unit's source text ElementComparably the Element abstraction is also a logical handle to the Compilation Unit discussed above, this can either be explicit or implicit. Structure of ASIS The ASIS application structure can be categorized into 3 categories; Setup ASIS Analysis, Process Compilation Units and Complete ASIS Analysis. This structure is to help in supporting various code analysis programs that appear in the Ada programming language. Setup ASIS analysis The first step to the structure of ASIS analysis is to set it up efficiently. During this step, various tasks and programs are initialised and established. For example, as identified by William Colket (1999), this step is when the ASIS program initializes ASIS, establishes ASIS context and state object, associates the ASIS Context with the analysis, opens the ASIS context, and performs any pre-processing needed to support the ASIS analysis. The first step is generally to get the ASIS analysis up and running and be ready to use efficiently and effectively. Process compilation units The setup is then followed by "processing compilation units", during this time is when elements are sampled and analysed to fit into the ASIS Context that had been opened and associated with at the beginning of the ASIS structure. During this step, it mainly processes most of the ASIS application elements in correlation with the ASIS context, it also has the added capability to perform compilation units