In response to the "Call for Projects" here's an idea for one I'd like to
see.

-----------------------------------------------------------------

The Ada Semantic Interface Specification (ASIS) is a vendor-neutral standard
providing for the extraction of syntactic and semantic information from Ada
programs.  ASIS can be used to aid the construction of static analysis
tools, debuggers, language sensitive editors, etc.  ASIS, being defined as a
collection of Ada packages, therefore strongly encourages the use of Ada as
the implementation language for any such tools.

There is no known equivalent to ASIS for languages such as Java, C, C++,
etc.

The definition and implementation of a similar standard for languages other
than Ada, modeled after ASIS, would allow the creation of tools written in
Ada to aid the production of software in other languages.  Such a "standard"
(perhaps not formal, but a de facto one)specification would not just allow
the use of Ada for developing such tools, but would ease the
_creation_of_tools_ themselves, and therefore could conceivably draw
developers to Ada to take advantage of this specification's capacity to aid
tool development.

Once ASIS-like standards are defined (JSIS, CSIS, SIS4C++, etc.),
development is then needed to provide implementations.

JSIS would probably be the first candidate implementation, since it has the
most standardized syntax and semantics, is cool, and is likely to have major
market presence for a long time to come.

SIS4C++ would be next, at least the ANSI/ISO dialect of it.

CSIS would suffer from a plethora of dialects, though perhaps an
implementation for gcc would be doable.

Since it is unlikely that Java/C/C++ vendors will enhance their products to
generate xSIS supporting information and implementations any time soon, as
GNAT does in its "ali" files, and Rational and Aonix do through other means,
xSIS implementations will almost certainly have to parse source code and
extract the necessary information.  In effect, employ a compiler front-end.
Fortunately, basic tools already exist in Ada to support this: aflex, ayacc,
OpenToken, and probably others (I see there's now something called
AdaGOOP?).

-----------------------------------------------------------------

Marc A. Criley