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(basic)
  • HW2 due 4/25(theory)
  • HW3 due 5/11(design), 5/14(implementation)
  • HW4 due 6/02(implementation): ´ÙºóÄ¡ÄÚµå °ËÁõ±â, SWÁö¿Á Å»ÃâÀåÄ¡ °ËÁõ±â 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