Developer Tools · Cluster

Static Analysis

Linters, dataflow, and false positives.

  1. 01 Why Linters Parse: Token Streams, Syntax Trees, and the Cost of Losing Layout How a linter turns source text into tokens and trees, what separates a concrete from an abstract syntax tree, and which checks become impossible once layout is discarded. foundational · Jul 19, 2024
  2. 02 Scope Chains and Name Resolution: Why Spelling Is Not Identity How a linter builds a scope tree, resolves each reference to a declaration, and avoids reports that confuse two unrelated variables with the same name. foundational · Feb 17, 2024
  3. 03 Diagnostic Spans and the Encoding Problem How analyzers represent the location of a finding, why byte offsets and UTF-16 columns disagree, and what suppression comments and SARIF records add to the picture. foundational · Mar 31, 2023
  4. 04 Control-Flow Graphs and the Dominance Relation How basic blocks and edges are built from syntax, how dominators are computed, and why unreachable-code reports depend on modelling exceptions and non-returning calls. intermediate · May 9, 2022
  5. 05 Monotone Dataflow: Lattices, Transfer Functions, and Fixpoints The worklist formulation behind liveness, reaching definitions, and constant propagation, why monotonicity guarantees termination, and where the abstraction loses precision. intermediate · Jun 3, 2026
  6. 06 Path Sensitivity and the Cost of Remembering Branch Conditions Why merging states at a join loses the correlation between variables, how path splitting and predicate abstraction recover some of it, and where the exponential cost is cut off. intermediate · Dec 25, 2024
  7. 07 Interprocedural Summaries and the Context-Sensitivity Bill How a function is summarized for callers, how call graphs are built under virtual dispatch, and why distinguishing call sites multiplies cost without always buying precision. intermediate · Aug 14, 2023
  8. 08 May-Alias Analysis and the Shape of a Points-To Set Why a write through one reference can change what another observes, how inclusion and unification constraints differ, and what field sensitivity costs. advanced · Aug 21, 2025
  9. 09 The Structure of False Positives: Over-Approximation and Suppression Debt Why a sound static analysis must report impossible paths, how technical and effective false positives differ, and what suppression comments cost over the life of a codebase. advanced · Sep 15, 2023
  10. 10 Incremental Static Analysis: Dirty Sets and Cache Invalidation What can be reused when one file changes, how cache keys must cover dependencies and configuration, and why under-approximated invalidation produces confident wrong answers. advanced · Nov 4, 2025