[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Program Call Structure

> This table describes four functions which would provide the required
> primitive functionality to implement a browser capable of showing
> the call structure of a Lisp program (similar perhaps to InterLisp's
> MasterScope).
> 		Function To Functions	Function To Variables
> 		---------------------------------------------
> Upward	| Who-Calls		| Who-References    |
> 		|-----------------------|-------------------|
> Downward	| What-Calls		| What-References   |
> 		---------------------------------------------

In my experience, e.g. developing Sun's Program Analyzer for
Common Lisp, things are more complicated.  One issue is inlining
of function calls.  Some source-level calls "disappear" during
compilation and calls to internal routines can "appear".  Another
issue is calls that occur due to macro expansion, without being
written into the source code.

One thing you may want to do with call structure information is to edit
the calls on a function.  For this purpose you want to edit the
definitions of macros that expand into calls on the function, and not
edit every invocation of the macros.