4541.664A Program Analysis: Theories and Practices
      
°ÀÇ: È/¸ñ 
      15:30-16:45 @ 302µ¿ 309È£
      
        
      
 Á¦´ë·Î ÀÛµ¿ÇÒ Áö¸¦ ¹Ì¸® °ËÁõÇÒ ¼ö ¾ø´Â ±â°è¼³°è´Â ¾ø´Ù. Á¦´ë·Î ¼ÀÖÀ» Áö¸¦ ¹Ì¸® °ËÁõÇÒ ¼ö ¾ø´Â °ÇÃ༳°è´Â ¾ø´Ù. Àΰø¹°µéÀÌ ÀÚ¿¬¼¼°è¿¡¼
¹®Á¦ ¾øÀÌ ÀÛµ¿ÇÒ Áö¸¦ ¹Ì¸® ¾ö¹ÐÇÏ°Ô ºÐ¼®ÇÏ´Â ¼öÇÐÀû ±â¼úµéÀº Àß ¹ß´ÞÇØ
¿Ô´Ù. ´ºÆ° ¿ªÇÐ, ¹ÌÀûºÐ ¹æÁ¤½Ä, Åë°è ¿ªÇеîÀÌ ±×·¯ÇÑ ±â¼úµéÀÏ °ÍÀÌ´Ù.
 
¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇØ¼´Â ¾î¶²°¡? 
ÀÛ¼ºÇÑ ¼ÒÇÁÆ®¿þ¾î°¡ Á¦´ë·Î ½ÇÇàµÉ Áö¸¦ ¹Ì¸® ¾ö¹ÐÇÏ°Ô È®ÀÎÇØ ÁÖ´Â
±â¼úµéÀº Àִ°¡? ÀÌ¿¡ ´ëÇÑ ´äÀÌ ÇÁ·Î±×·¥ ºÐ¼®(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
      
  
      
          ¼÷Á¦ 70%, ½ÃÇè 30%
      
        - ¼ºÀûÀº Àý´ëÆò°¡.
        
 - Ãâ¼® 100%´Â Çʼö. ¾î¿ ¼ö ¾ø´Â °æ¿ì´Â ¹Ýµå½Ã »çÀü Çã¶ôÀ» ¹Þ´Â´Ù.
      
  
      TA:   ÃÖÀç½Â: {jschoi} 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
           |  
        
          | 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
           |  
 
      
    | 
    
       |