comp.lang.ada
 help / color / mirror / Atom feed
From: rochester!news.crd.ge.com!e7sa!groleau@louie.udel.edu
Subject: lint-like tool for Ada
Date: 1 Jul 93 16:22:45 GMT	[thread overview]
Message-ID: <C9Huty.99t@crdnns.crd.ge.com> (raw)

I would be satisfied with a mere cross-reference generator.  I found ONE in
the PAL (formerly ASR) by using archie for "xref" and "cross-ref".  It's 
written in Pascal and I can't find a Pascal compiler on our system.

I could translate it to Ada, but it parses and xrefs a SINGLE file and
reference locations are line numbers.  It also apparently does not distinguish
between declarations, assignments, calls, etc.  or between overloaded names.

I'm looking for something like

   package X
         with'ed by B.S
         with'ed by B.T
         use'd by B.T

   function B.F
         declared in B
         called by B.S

   variable B.V
         declared in B
         assigned in B
         assigned in B.S
         examined in B.T

File names/line numbers would be icing on the cake.  I need it for the same
reason as the other posters--to remove or move to lower levels withs, uses, 
objects, etc. that are not used at a particular level and are causing
1. loads of unnecessary recompilations
2. tremendous obscurity in unfamiliar code.

It's not sufficient for me to just search one file at a time for "is this
referenced?" because I need to find out what goes where to re-design.  I have
inherited code that is partitioned by "shape"  by which I mean
  Author: "OK, at the top of this package are all the messages, and at
           the bottom of that one are all the pointers to the messages.
           Over here we have the instantiations of a queue for each message,
           and ...."
  Me:     "Why didn't you put all the messages to the blue box, and their
           pointers and queues in the one package, and those for the red box
           in another?"
  Author: "What would that buy?"
  Me:     "1. You wouldn't have to recompile ALL files when something changes
              in the red box.
           2. I could understand any particular package without having to
              understand the entire million-lines-of-code project.
           3. I could understand a subprogram without having to bounce around
              thirteen files of declarations."
  Boss:   "Insights like that are the reason we put you on this job, Wes!"

Unfortunately, the "author" is long gone and I have to substitute long-hours
of eyeball work.

Wes Groleau

                 reply	other threads:[~1993-07-01 16:22 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox