4541.664A Program Analysis: Theories and Practices
강의: 월/수
09:30-10:45 @ 302동 208호
제대로 작동할 지를 미리 검증할 수 없는 기계설계는 없다. 제대로 서있을 지를 미리 검증할 수 없는 건축설계는 없다. 인공물들이 자연세계에서
문제 없이 작동할 지를 미리 엄밀하게 분석하는 수학적 기술들은 잘 발달해
왔다. 뉴튼 역학, 미적분 방정식, 통계 역학등이 그러한 기술들일 것이다.
소프트웨어에 대해서는 어떤가?
작성한 소프트웨어가 제대로 실행될 지를 미리 엄밀하게 확인해 주는
기술들은 있는가? 이에 대한 답이 프로그램 분석(static program
analysis)기술 이라는 이름으로 모여지는 기술들이다.
그동안 다양한 이름으로 다양한 수준에서 다양한 필요에 맞추어 불리워지는
기술들을 모두 포섭한다:
"static analysis", "abstract interpretation",
"type system", "software model checking", "data-flow analysis",
"program logics and proof system" 등.
이 강좌에서는 정적 프로그램 분석 기술들의 이론과 실제를 익힌다.
이 목표를 위해서 두 부분으로 구성된다.
- 강의중심 Lecture-based Teaching:
위의 모든 기술들을 아우를 수 있는 가장 강력한 틀인 요약해석(abstract
interpretation)의 이론과 실제를 강의와 숙제를 통해서 익힌다.
- 문제중심 Problem-based Teaching:
문제(숙제)를 중심으로 프로그램 분석 기술의 이론과 실제를 익힌다.
- Preliminaries: abstract syntax,
semantics, inductive definitions, logics and inference, fixpoints
- Semantic formalisms: natural semantics, structural operational
semantics, abstract machine semantics, denotational semantics
- Abstract interpretation: abstraction,
concretization, galois connection, correctness, fixpoint algorithms
- Type-based analysis: monomorphic type system,
polymorphic type system, effect system, unification
- Constraint-based analysis: set constraints, flow
logics, constraint solving
- Problems: design and development of static analyzers
숙제/시험:
90%, 기타: 10%
- 성적은 절대평가.
- 출석 100%는 필수. 어쩔 수 없는 경우는 반드시 사전 허락을 받는다.
TA: 김진영, 강지훈: {jykim, jhkang} AT ropas.snu.ac.kr

wk 1 |
preliminaries |
book5-24, slide1
|
wk 2 |
semantic formalisms I |
book25-50,
slide2
slide3
|
wk 3 |
semantic formalisms II |
windskel-book
slide4
slide5
|
wk 4 |
abstract interpretation I |
book61-75,
slide6,
slide7
|
wk 5 |
abstract interpretation II |
slide8,
slide9
|
wk 6 |
abstract interpretation III |
book74-108,
slide10-1,
slide10-1b,
|
wk 7 |
exam week |
mid-term projects
|
wk 8 |
abstract interpretation IV |
slide10-1c,
slide10-2
|
wk 9 |
abstract interpretation V |
slide11,
slide12
|
wk 10 |
type-based analysis I |
slide13,
slide14,
slide15
|
wk 11 |
type-based analysis II |
slide16,
slide17
|
wk 12 |
exam week |
final projects
|
wk * |
constraint-based analysis & model checking |
slide18,
slide19,
slide20,
slide21
|
|
|