An ASIS Birds-of-a-Feather (BoF) was held at Tri-Ada'96 from 7:00 PM to 9:00 PM on Wednesday evening, 4 December 1996. This BoF was scheduled to provide ASIS information to conference attendees and to provide them an opportunity to ask questions on the use of ASIS from the ASIS experts present.
Currie opened the BoF by introducing some of the attendees: Sergey Rybin has done an implementation (mostly the syntax queries) of ASIS-for-GNAT. Dan Ehrenfried represented the interests of the tool developers who are using ASIS. Steve Blake and Clyde Roby are the co-Technical Editors of the ISO ASISRG document. Joyce Tokar of DDC-I has the first full implementation of ASIS 2.0.E.
Currie then gave a short presentation of an Overview of ASIS.
Joyce Tokar of DDC-I gave a presentation about DDC-I's implementation of the ASIS Interface for Ada 95. DDC-I demonstrated a real-time browser at their booth here at the Tri-Ada'96 conference this week. She noted that, in their implementation, a container is a library, i.e., holding many compilation units. ASIS was developed incrementally as tools that DDC-I developed needed ASIS features. They began on the project in June 1996; two people have been working on ASIS and related tools. She invited all to stop by the DDC-I booth for a demonstration of a code browser built using ASIS. She noted that the browser took about a week's worth of effort.
Dan Ehrenfried of Little Tree Consulting gave a presentation on ASIS from a tool-builder's perspective. Below is the text version of his slides, also available in PowerPoint, (25K bytes).
* Software Perspectives o Condensed Content o Units and dependencies o Execution flow (from a static viewpoint, interpretively) - calling thread - multiple path flow - exceptions o Data -- objects and manipulation of objects o Type model o Name space * Condensed Content o Coding violations o High risk constructs o Metrics (counting, ...) o Cataloguing constructs by Kind, e.g., specific expressions o Key constructs - tasking - generics - tagged types - non-portable / implementation specific * Units and Dependencies o Hierarchical with closures (depth and fan-out) o Unused with clauses o Unused declarations o Elaborations * Execution flow -- interpreted walk o Calling thread - hierarchical call tree - stack analysis - synchronization analysis - recursion o Path analysis - path identification - use before set - set twice before use - non-set of out parameters - function paths without return - dead code - infinite recursion o Exceptions - propagation - raise / handled * Data o Set and use o Size o Static data o Synchronization o Constraint violations * Types o Minimal type model o Composite type structure o Class hierarchies o Default initialization * Name Space o Good naming o Consistent naming o Conformance to standards and/or style guides
Sergey Rybin then gave an update on ASIS-for-GNAT. It will be available on the net. It is currently implemented on top of DOS on the PC. It's current state is:
ASIS-for-GNAT was formerly source-based, compile "on the fly". It is now implemented using some intermediate (tree) form. Distribution and installation is simple: copy the sources and then run gnatmake for your ASIS application. The ASIS-for-GNAT implementation uses the same interfaces to the GNAT Abstract Syntax Tree that the GNAT compiler uses. Sergey said that there are two applications currently available with ASIS:
The ASIS BoF was well received. After the presentation portion, Sergey provided a demonstration of ASIS-for-GNAT in his DOS environment. It was noted that ASIS-for-GNAT should work for all GNAT environments.
Last update 23 December 1996. Questions, comments to Clyde Roby (CRoby@IDA.Org)