4541.664A Program Analysis: Theories and Practices
°ÀÇ: È/¸ñ
11:00-12:15 @ 302µ¿ 309-1È£
Á¦´ë·Î ÀÛµ¿ÇÒ Áö¸¦ ¹Ì¸® °ËÁõÇÒ ¼ö ¾ø´Â ±â°è¼³°è´Â ¾ø´Ù. Á¦´ë·Î ¼ÀÖÀ» Áö¸¦ ¹Ì¸® °ËÁõÇÒ ¼ö ¾ø´Â °ÇÃ༳°è´Â ¾ø´Ù. Àΰø¹°µéÀÌ ÀÚ¿¬¼¼°è¿¡¼
¹®Á¦ ¾øÀÌ ÀÛµ¿ÇÒ Áö¸¦ ¹Ì¸® ¾ö¹ÐÇÏ°Ô ºÐ¼®ÇÏ´Â ¼öÇÐÀû ±â¼úµéÀº Àß ¹ß´ÞÇØ
¿Ô´Ù. ´ºÆ° ¿ªÇÐ, ¹ÌÀûºÐ ¹æÁ¤½Ä, Åë°è ¿ªÇеîÀÌ ±×·¯ÇÑ ±â¼úµéÀÏ °ÍÀÌ´Ù.
¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇؼ´Â ¾î¶²°¡?
ÀÛ¼ºÇÑ ¼ÒÇÁÆ®¿þ¾î°¡ Á¦´ë·Î ½ÇÇàµÉ Áö¸¦ ¹Ì¸® ¾ö¹ÐÇÏ°Ô È®ÀÎÇØ ÁÖ´Â
±â¼úµéÀº Àִ°¡? ÀÌ¿¡ ´ëÇÑ ´äÀÌ ÇÁ·Î±×·¥ ºÐ¼®(static program
analysis)±â¼ú À̶ó´Â À̸§À¸·Î ¸ð¿©Áö´Â ±â¼úµéÀÌ´Ù.
±×µ¿¾È ´Ù¾çÇÑ À̸§À¸·Î ´Ù¾çÇÑ ¼öÁØ¿¡¼ ´Ù¾çÇÑ ÇÊ¿ä¿¡ ¸ÂÃß¾î ºÒ¸®¿öÁö´Â
±â¼úµéÀ» ¸ðµÎ Æ÷¼·ÇÑ´Ù:
"static analysis", "abstract interpretation",
"type system", "software model checking", "data-flow analysis",
"program logics and proof system" µî.
ÀÌ °Á¿¡¼´Â Á¤Àû ÇÁ·Î±×·¥ ºÐ¼® ±â¼úµéÀÇ À̷аú ½ÇÁ¦¸¦ ÀÍÈù´Ù.
- °ÀÇ
- À§ÀÇ ¸ðµç ±â¼úµéÀ» Æ÷¼·ÇÏ´Â ÀÏ¹Ý Á¤ÀûºÐ¼® µðÀÚÀΠƲÀÎ
¿ä¾àÇؼ®(abstract interpretation)°ú ±× ¹è°æÀÌ·ÐÀ» ÀÍÈù´Ù.
- ¿ä¾àÇؼ®¸¸Å ÀϹÝÀûÀÌÁö´Â ¾ÊÁö¸¸ Á¦ÇÑµÈ °æ¿ì¿¡ °£ÆíÇÏ°Ô »ç¿ëÇÒ
¼ö ÀÖ´Â Æ¯ÈµÈ Á¤ÀûºÐ¼® µðÀÚÀΠƲ ¼¼ °¡Áö(analysis by equation,
by monotonic closure, and by proof construction)¸¦ ÀÍÈù´Ù.
- Á¤ÀûºÐ¼®±âÀÇ ½ÇÇà ºñ¿ëÀ» ÁÙÀÌ´Â ´ëÇ¥ÀûÀÎ ±â¼úµéÀ» ÀÍÈù´Ù.
- ¼÷Á¦
- Á¤ÀûºÐ¼®±â µðÀÚÀο¡ ÇÊ¿äÇÑ °³³ä ÈÆ·ÃÇϱâ.
- ¿ä¾àÇؼ® Ʋ(ÀÌ·Ð)À» ÀÌ¿ëÇؼ Á¤ÀûºÐ¼®±â¸¦ µðÀÚÀÎÇÏ°í µðÀÚÀÎÇÑ
ºÐ¼®±â°¡ ¾ÈÀüÇÔÀ» Áõ¸íÇϱâ.
- µðÀÚÀÎÀ» ½ÇÁ¦ ÇÁ·Î±×·¥À¸·Î ±¸ÇöÇÏ°í ½ÇÇàÇØ º¸±â.
°ÀÇ¿¡¼´Â °¡´ÉÇϸé [½¬¿îÀü¹®¿ë¾î]¸¦ »ç¿ëÇÕ´Ï´Ù.
- Preliminaries: abstract syntax,
semantics, inductive definitions, logics and inference, fixpoints
- Semantic formalisms: natural semantics, structural operational
semantics, abstract machine semantics, denotational semantics
- General framework: abstract interpretation,
transitional approach, compositional approach, abstraction,
concretization, galois connection, correctness, fixpoint algorithms
- Specialized frameworks: analysis by equations,
analysis by monotonic closure, analysis by proof construction,
data flow analysis, constraint-based analysis, monomorphic type system,
polymorphic type system, effect system
- Implementations: algorithms, worklist, sparse analysis
- Exercises: design and development of static analyzers
¼÷Á¦
90%. ±âŸ 10%. ¼ºÀûÀº Àý´ëÆò°¡.
Á¶±³ÆÀ TA team
- ±èµµÇü,
À̵µÀ±
- Á¶±³´Â ¼ö°»ý ¿©·¯ºÐÀ» µµ¿ÍÁÖ±â À§Çؼ ÀÖ½À´Ï´Ù.
- Á¶±³´Â
°ú¸ñ
À¥º¸µå¿Í
Á¶±³ÆäÀÌÁö¸¦
ÅëÇؼ Á¤º¸¸¦ °øÁöÇÏ°í ¿©·¯ºÐÀÇ ¾î·Á¿òÀ» µ½½À´Ï´Ù.
- Á¶±³´Â ¿©·¯ºÐÀÇ ¼÷Á¦¸¦ äÁ¡ÇÕ´Ï´Ù.
Textbook:
Introduction to Static Analysis: an Abstract Interpretation
Perspective, MIT Press, 2020.
  
- ½Ç¶óºÎ½º
- slides 00,
slides 0:
gentle introduction, motivation, priliminary concepts
- slides 1: inductive definition, induction
proof, inference rules, soundness, completeness
- slides 2: denotational semantics, semantic domain, semantic function, fixpoint
- slides 3-0, slides
3: operational semantics, semantic domain, semantic function, fixpoint
- slides 4: abstract interpretation framework
(part I)
- slides 5: abstract interpretation framework
(part II)
- slides 6: abstract interpretation framework
(part III)
- slides 7: abstract interpretation framework
(part IV)
- slides 8: abstract interpretation framework
(part V)
- slides 9: sparse analysis framework for analysis scalability
- slides 10: specialized frameworks:
static analysis by equations, monotonic closure, or proof construction
To view/print PDF files: Acrobat
Reader
|
|