4 ms·
> You cannot "examine the code" without executing it, partially or in full, with some input or intermediate values or (symbolically) with all of them. It is en
by emeraldd 10y ago
> You cannot "examine the code" without executing it, partially or in full, with some input or intermediate values or (symbolically) with all of them.
It is entirely possible to break a stream of text down into symbols and examine the relationship of those symbols without evaluating (i.e. executing) them. It is not really necessary or possible to know their meaning/definition at all, only their "shape" or the "part of speech" that they represent.
In the simplest form, static analyzers are a set of heuristic pattern matchers that a stream of text is sent through. It might get fancy and build an AST first, but that still does not constitute execution or evaluation in the technical sense.