Search code examples
static-analysis

is static checker the same as static analyzer?


in some literatures the term "static checker" is used. for example https://dl.acm.org/doi/pdf/10.1145/2872362.2872364. I know what is static analyzer (we use PDG, CFG, AST and ... for analyzing a program before it runs). but what do they mean by static checker? is "static checker" the same as "static analyzer"?


Solution

  • This answer, perhaps, should only be a comment but...

    TL;DR; Yes, they are the same thing.

    Longer answer:

    In software engineering, we love to overload terms - using the same term for several different (sometimes incompatible) meanings.

    We also are often non-standard in our terminology... using multiple terms for (broadly) the same thing; eg the following are all (broadly) synonym pairs:

    • Static Analysis v Static/Source Code Analysis (although the former is, perhaps, broader in scope than just source-code, and can analyse data or models etc)
    • Static Analyser v Static Checker (although, it could be argued that the former does Static Analysis, the later just Static Code Analysis)

    In most instances, I would suggest that the each pair of terms can be used interchangeably, although I would (personally) recommend the left hand term is the "best" to use; the right hand term is a sub-set of the full.

    Typically when someone talks about Static (Code) Analysis, they mean the process of running a Static Analyser/Checker on a set of source files, to check for conformance with coding rules (eg MISRA) - this may also measure some metrics.

    So, yes, I suggest that (at least in most cases) a Static Analyser is the same thing as a Static Checker.

    -- Disclaimer: for the avoidance of doubt, this post offers my personal opinion, and this view does not necessary reflect that of my employer, LDRA Ltd, who produce such Static Analysis tools.