TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Classic View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
"C. Daniel Cooper" <[log in to unmask]>
Mon, 23 Nov 1998 11:43:15 -0800
text/plain (35 lines)
W. Wesley Groleau wrote,

> > ..... The catch would be that those compilers would need to support
> > ASIS (some don't), and further, you would need to compile your code
> > first (ie, have it semantically analyzed) before applying the tool. So
> > in that sense, you *do* depend on a "specific compiler"... and the tool
> > is a post-processor, ....
>
> A tool that enforces standards _after_ the code is compiled is like having
> your code review during testing.
>
> But it's better than nothing......

The compilation that ASIS requires is not code generation; nothing is
linked, executed, or tested. Only the front-end of the compiler is used,
to perform the semantic analysis. This is no different than reinventing
that front-end and embedding it within the analysis tool (which is what
non-ASIS based tools *must* do -- except usually with less fidelity than
an outright compiler, although some use GNAT for this). In the non-ASIS
case, we'd say the tool was a preprocessor, whereas an ASIS-based tool
would be termed a postprocessor; however, from the perspective of the
development process, this distinction is meaningless: edit the code,
check it for class violations, fix the code, generate an executable,
test it. The advantage of ASIS is that it integrates the compiler's
well-exercised semantic analysis capabilities with tools that provide
output other than executable code.

--

C. Daniel Cooper ==========v=================v=======================v
Adv Computing Technologist | processes       | All opinions are mine |
206-655-3519               | + architectures | and may not represent |
[log in to unmask]  |   = systems     | those of my employer. |
===========================^=================^=======================^

ATOM RSS1 RSS2