!ASIS Issue #006 !topic Unification between Element Nodes and Compilation Unit Nodes !reference ASIS95-ASIS !from D. Ehrenfried 95-03-08 !keywords Elements, Compilation Units !discussion This issue was submitted on 1 January 1995 for discussion at the March 1995 ASISWG meeting. The original email had 2 issues. Issue #006 captures the first issue while Issue #008 captures the second issue. First Issue => 1. The one glaring problem with the current interface is the lack of unification of element nodes and compilation unit nodes. If one asks for the parent_compilation_unit, one should get an asis.element, not some other type. It forces compilations for traversal and all sorts of queries that one might want to define (Most need two interfaces, one for each type). Clearly this can be programmed around, but it is an unnecessary wart in my opinion, making both the interface and client code much more complicated. !resolution Rejected. !date 95-03-08 !Notes from minutes Issues discussed at this ASISWG meeting ASIS provides two views of compilation units; a "black box" view is abstracted with the Compilation_Unit type, and a "white box" view is abstracted with the Element type. During the discussion of this issue, it was brought out that we should keep ASIS as primitive as possible, and let additional functionality be included in higher level or "Secondary Layer" of interfaces -- the ATIP project defined Secondary Layer for particular application areas as a Program View Layer (PVL). We could use so-called non-primitive, secondary layer, functions that are removed from ASIS 95 as examples of usage of ASIS that could be put into the public domain. Vendors are encouraged to contribute such secondary functions as examples. For background information, the following information is provided from a previous description of the ASIS/PVL ATIP: Views are effectively abstractions of ASIS information that focus on different aspects of an Ada program structure. At the start of the ATIP, candidate PVL Views discussed included: Control Flow, Reference (set of entities referenced in a declarative region), "Chunk" (identify transfer of control resulting from calls and propagated exceptions), Name Space, and Data Flow. The actual ASIS/PVL ATIP project has created four views: the Region View, Name Space View, Reference View, and Control Flow View.