Program Analysis
summary
Distinguishes concrete dynamic checks (bounds checks, unit tests, data race detector) that find real failures from static checks that can prove absence of classes of bugs; demonstrates profiling with pprof/trace to show channel-heavy hotspots; explains SSA and its use for data‑flow, a new go6 backend and code optimizations; uses SSA + pointer analysis to power an Oracle that finds callers, call stacks and implementations; prototypes a tool to suggest narrower interfaces that works but breaks code when it alters types like http.Handler.
AI-written summary · about
chapters (18)
- 0:00Intro
- 1:06Program Analysis Given a program w
- 2:11Program analysis families
- 3:05Dynamic analysis unit tests
- 3:34Dynamic analysis: bound checks
- 5:44Dynamic analysis: race detector
- 9:16Dynamic analysis: pprof
- 10:36Dynamic analysis: execution tracer
- 11:27Dynamic analysis execution tracer
- 13:54Dynamic analysis conclusion
- 17:02The usual suspects
- 25:38The standard library offers many packages for each level.
- 26:20Limitations
- 31:15The importance of naming
- 32:03Referential transparency
- 37:28Oracle
- 45:40Algorithm
- 48:47Static analysis as a test for best practices
related talks
26mUsing and Writing Go Analyses
17mConceptualizing Large Software Systems
50mPractical Advanced Static Analysis
19mProfiling Your Code: 5 Tips to Significantly Boost Performance
29m“The Current State of (free) Static Analysis"
01h 00mAdvanced Tools for Better Productivity
01h 01mBack to Basics: Debugging in Cpp
50mState of the Infer Platform
