4541.664A Program Analysis: Theories and Practices

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

강의: 화/목 15:30-16:45 @ 302동 309호

목표 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
  • Problems: design and development of static analyzers

강의 동영상 Lecture Movies New

규정 Policy

  숙제 70%, 시험 30%
  • 성적은 절대평가.
  • 출석 100%는 필수. 어쩔 수 없는 경우는 반드시 사전 허락을 받는다.
TA:   이동권: {dklee} AT ropas.snu.ac.kr

읽을 논문 Papers

숙제및 시험 Homeworks & Exams

  • 프로그래밍 숙제는 컴퓨터를 통해 제출합니다.
  • 제출기한을 지나 48시간 이내로 늦어지면 10% 감점. 그 이후의 숙제는 받지 않습니다.
  • 프로그램 숙제는 OCaml로 작성합니다.
  • HW1 due 4/06 New

진도및 자료 Slides & Resources

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
wk 9 static analysis engineering I: sparsity slide12
wk 10 static analysis engineering II: selectivity slide13
wk 11 type-based analysis slide13, slide14, slide15, slide16, slide17
wk 12 constraint-based analysis & model checking slide18, slide19, slide20, slide21
© Copyright 2013, 이 광근 Kwangkeun Yi