What are the levels of static analysis and their primary purposes?
A. Lexical analysis for syntax checking
B. Semantic analysis for code behavior understanding
C. Structural analysis for code quality metrics
D. Behavioral analysis for runtime error detection