4541.664A Program Analysis: Theories and Practices

이광근 Kwangkeun Yi
소프트웨어무결점 연구센터/ 프로그래밍 연구실/CSE/Seoul National University

강의: 화/목 14:30-15:45 @ 302동 209호

목표 Objectives

제대로 작동할 지를 미리 검증할 수 없는 기계설계는 없다. 제대로 서있을 지를 미리 검증할 수 없는 건축설계는 없다. 인공물들이 자연세계에서 문제 없이 작동할 지를 미리 엄밀하게 분석하는 수학적 기술들은 잘 발달해 왔다. 뉴튼 역학, 미적분 방정식, 통계 역학등이 그러한 기술들일 것이다.

소프트웨어에 대해서는 어떤가? 작성한 소프트웨어가 제대로 실행될 지를 미리 엄밀하게 확인해 주는 기술들은 있는가? 이에 대한 답이 프로그램 분석(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:
    각 팀의 프로젝트 과제를 중심으로 프로그램 분석 이론을 실제 응용에 적용하면서 속내용을 구체적으로 익힌다.

내용 Contents

주전:
  • 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
  • Software model checking: model checking, program logics, abstraction refinement

규정 Policy

  숙제 및 시험: 40%, 프로젝트: 60%
  • 성적은 절대평가.
  • 출석 100%는 필수. 어쩔 수 없는 경우는 반드시 사전 허락을 받는다.
TA:   공순호, 최원태: {soon,wtchoi} AT ropas, x1865

읽을 논문 Papers

숙제및 시험 Homeworks & Exams

진도및 자료 Slides & Resources

wk 1 preliminaries book5-24, slide1                    
wk 2 semantic formalisms I book25-50, slide2 New, slide3 New  
wk 3 semantic formalisms II slide4 New, 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-2 New
wk 7 abstract interpretation IV slide11 New, slide12
wk 8 abstract interpretation V
wk 9 problem-based approach I
wk 10 problem-based approach II
wk 11 problem-based approach III
wk 12 problem-based approach IV
© Copyright 2008, 이 광근 Kwangkeun Yi