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

Re: Program Call Structure



ELIOT@cs.umass.edu writes:

>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   |
>		---------------------------------------------
>
>Who-Calls: Maps from a function spec to a list of functions that call it.
>What-Calls: Maps from a function spec to a list of functions called by it.
>Who-References: Maps from a variable to a list of functions that reference it.
>What-References: Maps from a function spec to a list of variables 
>referenced by it.

(1) I think the names are unclear: "what calls foo" is ambiguous, and then the
    change from personified (who) to unpersonified (what) is unlogical.

    I would propose "who-calls" versus "whom-calls". No ambiguity, and no
    change.

(2) I would like to see a "(who-changes <variable>)" and a "(whom-changes
    <function>)" added, for dealing with side-effects. This could also be
    done by "(who-calls '(setf <var> ...)), perhaps. A set of functions-
    to-be-examined has to be provided anyway.

Otherwise I like the proposal.

						Biep.