# Static analysis

History /
Edit /
PDF /
EPUB /
BIB

Created: September 14, 2016 / Updated: November 7, 2016 / Status: in progress / 4 min read (~620 words)

Created: September 14, 2016 / Updated: November 7, 2016 / Status: in progress / 4 min read (~620 words)

- Spectral graph theory

- Graph/tree theory
- Linear algebra

- Use adjacency matrices to represent a control flow graph, allows you to do operations easily (get children (nodes to which a given node may go) = $V \cdot A$, get parents (nodes from which a given node might come from) = $V \cdot A^T$ (matrix transpose))
^{1}

- Fileset creation and filtering based on masks and regexes
- Initial AST construction for the fileset
- Analysis passes
- Output of diagnosis messages

- Track all properties
- Mark all properties that are read/written in each method
- Track function calls
- Track all methods signature (parameter types and return type)

- https://en.wikipedia.org/wiki/Control_flow_graph
- https://en.wikipedia.org/wiki/Loop-invariant_code_motion
- https://en.wikipedia.org/wiki/Dominator_(graph_theory)
- https://www.youtube.com/watch?v=I0KXjN67hkA
- http://www.viva64.com/en/a/0045/