½º¸¶Æ® ÄÚµå »ý¼ºÀ» À§ÇÑ ÇÁ·Î±×·¥ ºÐ¼® ½Ã½ºÅÛ ¿¬±¸
The LET Project: program analysis for smalL/safE/smarT code


ÇÁ·Î±×·¥ ºÐ¼® ½Ã½ºÅÛ ¿¬±¸´Ü
°úÇбâ¼úºÎ âÀÇÀû ¿¬±¸ ÁøÈï»ç¾÷
¼­¿ï´ë

[English]

¿¬±¸Ã¥ÀÓÀÚ: ÀÌ ±¤±Ù
(.ps, slides.ps)

¹®Á¦Á¦±â

Áö±¸»óÀÇ ¸ðµç ÄÄÇ»ÅÍ°¡ ÃÊ°í¼Ó ³ÝÆ®¿÷À¸·Î ¿¬°áµÇ¸é Áö±Ý±îÁö¿Í´Â ÆÇÀÌÇÑ ÄÄÇ»Æà ȯ°æÀÌ ¸¸µé¾îÁø´Ù. Áö±Ý±îÁö ½ÇÇè½Ç¿¡¼­ ¼Ò±Ô¸ð·Î ±¸¼ºµÈ ºÐ»ê º´·Ä ÄÄÇ»ÅÍ°¡, Áö±¸À§¿¡¼­ °Å´ëÇÑ ½ºÄÉÀÏ°ú ºÎÁ¤ÇüÀûÀÎ ÅäÆú·ÎÁö·Î Á¶¼ºµÇ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÄÄÇ»Æà ȯ°æ¿¡¼­´Â ÇÁ·Î±×·¥ ½ÇÇàÁß¿¡ ÇÊ¿äÇÑ ÄÚµåºÎÇ°À̳ª µ¥ÀÌŸµéÀÌ ÇÑ ÄÄÇ»ÅÍ¿¡ ¸ð¿©ÀÖÁö ¾Ê°í Àü ¼¼°èÀÇ ÄÄÇ»ÅÍ¿¡ Èð¾îÁ® ÀÖ°Ô µÈ´Ù. ÇÁ·Î±×·¥ ºÎÇ°µéÀº ±× ºÎÇ°¿¡ ƯȭµÈ ±â¼úÀ» °®Ãá ÆÀ¿¡ÀÇÇØ ÃÖ»óÀÇ Ç°Áú·Î ³ÝÆ®¿÷À» ÅëÇØ Áöü¾øÀÌ Á¦°øµÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ¸ðµç ÇÁ·Î±×·¥Àº Áö±¸À§¸¦ ±¤¼ÓÀ¸·Î µ¹¾Æ´Ù´Ï¸é¼­ ÇÊ¿äÇÑ °÷¿¡¼­ ÇÊ¿äÇÑ ÀÚ¿ø(ÄÚµå ºÎÇ°, µ¥ÀÌŸ, CPU, ¸Þ¸ð¸®µî)À» Àû½Ã¿¡ µ¿¿øÇÏ¿© ÀÛ¾÷À» ³¡¸¶Ä¡´Â °ÍÀÌ ÀÏ»óÀûÀÌ µÇ´Â °ÍÀÌ´Ù.

ÀÌ·¯ÇÑ ÄÄÇ»Æà ȯ°æ¿¡ ÃÖÀûÀ¸·Î ÀûÀÀÇÏ´Â Äڵ带 ¸¸µé±â À§Çؼ­´Â Áö±Ý±îÁö »ý°¢Áö ¸øÇÑ ¸¹Àº ¹®Á¦µéÀÌ ÇØ°áµÇ¾ßÇÑ´Ù. ¹°·Ð, ÇöÀçÀÇ ÄÄÇ»ÆÃȯ°æ(desk-top computing) ¿¡¼­µµ ½ÇÇàÄÚµåÀÇ ºÎÇ°°ú µ¥ÀÌŸ¸¦ Àû½Ã¿¡ µ¿¿øÇؼ­(µð½ºÅ©·ÎºÎÅÍ ºÒ·¯µé¿©¼­) ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â °ÍÀº °¡´ÉÇØ¿Ô´ø ÀÏÀÌ´Ù. ±×·¯³ª ¹Ì·¡ÀÇ Àü Áö±¸Àû ÄÄÇ»Æà ȯ°æ¿¡¼­ ¹®Á¦°¡ µÇ´Â °ÍÀº, ±×·¯ÇÑ ÀϵéÀÌ Àü¼¼°èÀÇ ¸ðµç ÄÄÇ»Å͸¦ ¹­Àº ÃÊ°í¼Ó ³ÝÆ®¿÷À» Ÿ°í ¾öû³­ ¾ç°ú ºóµµ·Î ¹ß»ýÇÏ°Ô µÈ´Ù´Â °ÍÀÌ´Ù. Àü¼¼°è ¸ðµç Äڵ尡 ±¤¼ÓÀ¸·Î Áö±¸À§¸¦ ¿òÁ÷À̸鼭 »ç¿ëÀÚ¿¡°Ô ÃÖÀûÀÇ ¼º´ÉÀ» Á¦°øÇÏ·Á°í °æÀïÇϴ ȯ°æ¿¡¼­ ±×·¯ÇÑ ÀϵéÀÌ ÀϾ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ È¯°æ¿¡¼­ ÃÖÀûÀ¸·Î ¼öÇàµÇ´Â ÄÚµå´Â ´ÙÀ½ÀÇ ¹®Á¦¸¦ ÇØ°áÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù.

º» ¿¬±¸ÀÇ Â÷º°¼º

¿ì¸®´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î À̷п¡ ±âÃÊÇÑ ¾ö¹ÐÇÑ ÇÁ·Î±×·¥ ºÐ¼®(static analysis) ÀÌ·ÐÀ» ÀÌ¿ëÇؼ­ Á¦¾ÈÇÑ ¹®Á¦µéÀÇ ÇØ°áÃ¥À» ¿¬±¸ÇÒ °ÍÀÌ´Ù. ¹°·Ð, Áö±Ý±îÁöÀÇ ¿¬±¸µéÀÌ ¼öÇÐÀûÀ¸·Î Àß Á¤¸®µÈ À̷п¡ ±âÃÊÇÏÁö ¾Ê°íµµ ¼º°øÀûÀÎ ¿¬±¸°á°ú¸¦ °¡Á®¿Ã ¼ö ÀÖ¾ú°í, ¼ÒÇÁÆ®¿þ¾î À̷е鵵 ÄÄÇ»Æà Çö½ÇÀ» ÃæºÐÈ÷ ºÐ¼®ÇÒ ¼ö ÀÖ´Â ¸ðµ¨À» Á¦°øÇØ ÁÖÁö ¸øÇÑ ¸éÀÌ ÀÖ´Ù. ±×·¯³ª Àü Áö±¸Àû ³ÝÆ®¿÷ ÄÄÇ»Æà ȯ°æÀº ±× ±Ô¸ð¿Í º¹À⼺ÀÌ Áö±Ý±îÁö¿Í´Â ºñ±³µÉ ¼ö ¾ø±â ¶§¹®¿¡ ¼öÇÐÀûÀ¸·Î ¿ä¾àµÈ ¸ðµ¨ÀÌ ²À ÇÊ¿äÇÏ°í, ÃÖ±ÙÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î À̷п¡ ´ëÇÑ ¿¬±¸¼º°úµéÀº ÀÌ·¯ÇÑ È¯°æ¿¡¼­ ½ÇÇàµÇ´Â ÇÁ·Î±×·¥À» ºÐ¼®Çϴµ¥ À¯¿ëÇÑ ÀÌ·ÐÀÌ µÉ ¼ö ÀÖÀ» ¸¸Å­ ºñ¾àÀûÀ¸·Î ¼ºÀåÇÏ°í ÀÖ´Ù. ÀÌ·¯ÇÑ À̷п¡ ±âÃÊÇÏÁö ¾Ê°í¼­´Â °í¾ÈµÈ ÇØ°á¹æ¾ÈÀÇ ÇѰ踦 ÆľÇÇÒ ¼ö µµ ¾ø°í, ÈçÈ÷ ÀÖÀ» ¼ö ÀÖ´Â ¿¬±¸°á°úÀÇ ¿À·ù¸¦ ¾ö°ÝÈ÷ °ËÁõÇÒ ¼öµµ ¾ø´Ù. ¼ÒȦÇÑ ±â¹ÝÀ§¿¡¼­ °í¾ÈµÈ ¿¬±¸°á°ú´Â ¾î´À¼ø°£ ¹«³ÊÁ® ¹ö¸®´Â ´Ù¸®¿Í °°ÀÌ À§ÅÂ·Î¿ï ¼ö ¹Û¿¡ ¾ø°í, ¿µÇâ·ÂÀÖ´Â ¿¬±¸°á°ú·Î ¹ßÀüÇϱ⿡´Â ¿ªºÎÁ·ÀÌ µÉ °ÍÀÌ´Ù.

Àü¼¼°èÀûÀ¸·Î, ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀ» ¿¬±¸ÇÏ´Â ±×·ìÀº ´ë»óÀ¸·Î ÇÏ´Â ÇÁ·Î±×·¡¹Ö Àα¸ÀÇ °ü¼º(programming sociology)À» µû¶ó°¡±â ¶§¹®¿¡(Java ÁÖº¯ÀÇ °æ¿ì¿Í °°ÀÌ) ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ½Å ÀÌ·ÐÀ» ¹Þ¾ÆµéÀÌ´Â °ÍÀÌ ´À¸®°í, ÇÁ·Î±×·¡¹Ö ¾ð¾î À̷п¡ ¸ôµÎÇÏ´Â ±×·ìÀº ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛ ±â¼ú¿¡ÀÇ ÀÀ¿ë¿¡ ¹«°ü½ÉÇÏ´Ù. ÀÌ Æ´»õ¸¦ º» ¿¬±¸°¡ °ø·«ÇÒ °ÍÀÌ´Ù. º»ÀÎÀÌ ÀÌ µÎ ºÐ¾ßÀÇ ´ëÇ¥ÀûÀÎ ¿¬±¸±×·ì (Center for Supercomputing Research and Development, University of Illinois at Urbana-Champaign °ú Software Principles Research Department, Bell Laboratories) ¿¡¼­ ¿¬±¸ÇÑ ÀÕÁ¡À» ¸ðµÎ µ¿¿øÇÒ °ÍÀ̸ç, ±× Á߽ɿ¡´Â º»ÀÎÀÌ Áö±Ý±îÁö ¼º°øÀûÀ¸·Î ¼öÇàÇØ¿Â, Àṉ̀¸Á¶¿¡ ÀÔ°¢ÇÑ ÇÁ·Î±×·¥ ºÐ¼® (semantics-based static analysis) ¿¬±¸°¡ ÀÚ¸®ÇÒ °ÍÀÌ´Ù.

´õ±º´Ù³ª, Áö±Ý±îÁöÀÇ ±Û·Î¹ú ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀÇ ¿©·¯°¡Áö ¹®Á¦¸¦ ÇØ°áÇÏ´Â µ¥¿¡´Â ÇÁ·Î±×·¥ ºÐ¼® ºÐ¾ß¿¡¼­ ¿¬±¸µÈ ¸¹Àº °á°úµéÀÌ ¸Å¿ì À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Â µ¥µµ ºÒ±¸ÇÏ°í ÀÌ µÎ ºÐ¾ß°¡ ¾ÆÁ÷ È°¹ßÈ÷ ¼ÒÅëÇÏ°í ÀÖÁö ¸øÇÏ´Ù\cite{ToTh97}. ¾î¼¸é, ±Û·Î¹ú ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀÇ ¹®Á¦µéÀÌ ¾î¶²°ÍÀÌ ÀÖÀ»Áöµµ ¾ÆÁ÷ Á¤È®ÇÏ°Ô Á¤ÀǵÇÁö ¾ÊÀº »óŶó¼­, ÇÁ·Î±×·¥ ºÐ¼®ÀÌ·ÐÀÌ ¾î¶»°Ô »ç¿ëµÉ ¼ö ÀÖÀ» Áö°¡ µå·¯³ªÁö ¾ÊÀº °ÍÀÏ ¼öµµ ÀÖ´Ù.

¿¬±¸°¡¼³

º» °úÁ¦¿¡¼­ Á¦¾ÈÇÑ ¹®Á¦µéÀÇ ÇØ°á¿¡´Â, ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¾ö¹ÐÇÑ Àṉ̀¸Á¶¿¡ ±âÃÊÇÑ ÇÁ·Î±×·¥ ºÐ¼®(semantics-based static analysis) ±â¼úÀÌ ÇÙ½ÉÀÌ µÈ´Ù´Â °ÍÀÌ ¿ì¸®ÀÇ ÀÔÀåÀÌ´Ù. ÇÁ·Î±×·¥ ºÐ¼®(static analysis)À» ÅëÇؼ­ ÇÁ·Î±×·¥ÀÌ ½ÇÇàÁß¿¡ °¡Áú ¼ö ÀÖ´Â ¼ºÁúÀ» ¹Ì¸® ¿¹ÃøÇÒ ¼ö Àִµ¥, ÀÌ ¿¹ÃøÀ» ÅëÇؼ­ °¡´ÉÇÏ°Ô µÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. º»ÀÎÀº, ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ Á¤ÇüÀûÀÎ Àṉ̀¸Á¶(mathematical semantics)·Î ºÎÅÍ ÇÁ·Î±×·¥ÀÇ ¼ºÁúÀ» ¿¹ÃøÇÏ´Â ¿¬±¸¸¦ ¼öÇà¿¡ ¿Ô´Âµ¥, ÀÌ ¿¬±¸ ¼º°úµéÀ» °è±â·Î Çؼ­ À§ÀÇ ¼¼ °¡Áö ¹®Á¦µéÀÌ ÇØ°áµÉ ¼ö ÀÖÀ» °ÍÀ¸·Î ¹Ï°Ô µÇ¾ú´Ù:

¿¬±¸³»¿ë¹× ÃßÁøü°è

¿¬±¸ ÃßÁøÀº µÎ °¡Áö ÃàÀ¸·Î ±¸¼ºµÈ´Ù: ÇÑ ¹æÇâÀº À§ÀÇ ¼¼°¡Áö ¿¬±¸ ¹®Á¦¸¦ Çϳª¾¿ ÇØ°áÇØ °¡´Â °ÍÀÌ°í, ´Ù¸¥ ÇÑ ¹æÇâÀº °í¾ÈµÈ ÇØ°áÃ¥µéÀ» ½ÇÁ¦ ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀ» ±¸ÃàÇϸ鼭 ½ÇÇöÇغ¸´Â °ÍÀÌ´Ù. À̶§ ±¸ÃàÇÏ´Â ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀº ML\cite{MTHM97}À̶ó´Â ¾ð¾îÀÇ »õ·Î¿î -- À§ÀÇ ¹®Á¦µé¿¡ ´ëÇÑ ´äÀ» °®Ãá Äڵ带 »ý¼ºÇس»´Â -- ÄÄÆÄÀÏ·¯°¡ µÉ °ÍÀÌ´Ù. MLÀº À§¿¡ Á¦¾ÈÇÑ ¹®Á¦µéÀ» Ǫ´Âµ¥ ÇÊ¿äÇÑ ¾ð¾î ÀÌ·ÐÀ» °¡Àå Ãæ½ÇÈ÷ °®Ãá ¾ð¾îÁßÀÇ ÇϳªÀ̸鼭, Â÷¼¼´ë ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ºÎ»óÇÏ°í Àֱ⠶§¹®ÀÌ´Ù. º»ÀÎÀº Áö³­ 3³âµ¿¾È MLÀÇ ¾ö¹ÐÇÑ Àṉ̀¸Á¶¿¡ ±âÃÊÇؼ­ ML ÇÁ·Î±×·¥ÀÇ ¾ÈÀü¼ºÀ» °ËÁõÇÏ´Â ±â¼ú(exception analysis)°ú ŸÀÔ À¯Ãß ¾Ë°í¸®Áò¿¡¼­ ¼¼°èÀûÀ¸·Î ÁÖ¸ñ¹Þ´Â ¿¬±¸¼º°ú¸¦ ÀÌ·ç¾î¿À°í ÀÖÀ¸¸ç, ¿ì¸®´Â ÀÌ ¿¬Àå¼±»ó¿¡¼­, À§¿¡¼­ ³íÀÇÇÑ ÇØ°á¹æ¾ÈµéÀ» MLÀÇ ÄÄÆÄÀÏ·¯·Î ±¸ÇöÇؼ­ ±× ½Ç¿ë¼ºÀ» È®ÀÎÇØ °¥ °ÍÀÌ´Ù. ÀÌ·¸°Ô Çؼ­ ¼º°øÀûÀ¸·Î ÆǺ°µÈ ÇØ°á¹æ¾È°ú, MLÀÌ µå·¯³Â´ø Á¦ÇÑÁ¡µéÀ» °¡Áö°í MLÀÇ ´ë¾ÈÀ¸·Î ±Û·Î¹ú ÄÄÇ»Æà ȯ°æ¿¡ ÀûÇÕÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â °Íµµ °¡´ÉÇÒ °ÍÀ¸·Î ¿¹»óµÈ´Ù. ÀÌ ´Ü°è±îÁö Àü¼¼°è ¿¬±¸ÆÀ°úÀÇ ±³·ù:Çù·Â:°æÀïÀÇ ºñÀ²ÀÌ 4:3:3 Á¤µµ°¡ µÉ °ÍÀÌ´Ù.

¿¬±¸Å׸¶ÀÇ °¡Ä¡

¼¼°èÀû ¿¬±¸µ¿Çâ

±Û·Î¹ú ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛ¿¡ ´ëÇÑ ¿¬±¸´Â ÇöÀçÀÇ ÀÎÅÍ³Ý ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛ¿¡ ´ëÇÑ ¿¬±¸µé\cite{DeFeWa96,Ro96}À̳ª Â÷¼¼´ë ³ÝÆ®¿÷ ¾ÆÅ°ÅØÃç\cite{TeWe96,SFGNFS96}¿¡ ´ëÇÑ ¿¬±¸·Î ³ª´©¾îÁú ¼ö ÀÖ´Ù. ÀÎÅÍ³Ý ÇÁ·Î±×·¡¹Ö ȯ°æ¿¬±¸´Â Java¸¦ Áß½ÉÀ¸·Î ÇöÀçÀÇ ÀÎÅͳݿ¡¼­ È¿°úÀûÀ¸·Î »ç¿ëµÉ ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛ¿¡ °üÇÑ ¿¬±¸ÀÌ°í, Â÷¼¼´ë ³ÝÆ®¿÷ ¾ÆÅ°ÅØÃç ¿¬±¸´Â ÇöÀçÀÇ ÀÎÅͳÝÀÇ ÇѰ踦 ³Ñ¾î¼­¼­, º» Á¦¾È¼­¿¡¼­ »óÁ¤ÇÏ´Â, Àü Áö±¸Àû ³ÝÆ®¿÷ ÄÄÇ»Æà ȯ°æÀ» ±¸ÃàÇÏ°íÀÚ ÇÏ´Â ¹æÇâÀÇ ¿¬±¸ÀÌ´Ù.

´ëÇ¥ÀûÀÎ ¿¬±¸ ±×·ìÀº ¾Æ·¡¿Í °°´Ù.

º» ¿¬±¸°èȹ°ú °¡Àå °¡±î¿î ¿¬±¸¸¦ ÁøÇàÇÏ°í ÀÖ°í ÀÖ´Â ±×·ìÀº CMU ±×·ìÀε¥, Áõ¸í(theorem proving) ½Ã½ºÅÛ°ú ŸÀÔ ÀÌ·ÐÀ» ÀÌ¿ëÇؼ­ ÄÚµåÀÇ ¾ÈÀü¼º °ËÁõ ¹®Á¦¸¦ ´Ù·ç°í ÀÖ´Ù. ÀÌ ±×·ìÀº ¾ÆÁ÷ ÇÁ·Î±×·¥ ºÐ¼®(static analysis) ºÐ¾ß¿¡¼­ ÃàÀûÇÑ À̷еéÀ» ÀÌ¿ëÇÏ°í ÀÖÁö ¸øÇÏ°í ÀÖ´Ù.

Java³ª Agent°ü·Ã ¿¬±¸±×·ìµéÀº ±Û·Î¹ú ÄÄÇ»Æà ¸ðµ¨ÀÇ ¾ö¹ÐÇÑ ºÐ¼®¿¡ ±âÃÊÇÏ°í ÀÖÁö ¾ÊÀ» »Ó´õ·¯, ¹Ì·¡ÀÇ ³ÝÆ®¿÷Àº Áö±ÝÀÇ ÀÎÅͳݰú´Â ¸¹Àº Â÷ÀÌ(°¢ ½ºÀ§Äª ³ëµå°¡ ÇÁ·Î±×·¥ °¡´ÉÇÑ ÀÏ¹Ý ÇÁ·Î¼¼¼­ÀÇ ¼öÁØÀ¸·Î Çâ»óµÇ´Â µî)°¡ ÀÖÀ» °ÍÀ̱⠶§¹®¿¡, ÀÌ·¯ÇÑ ¿¬±¸µéÀÌ Â÷¼¼´ë ³ÝÆ®¿÷ ÇÁ·Î±×·¡¹Ö ȯ°æ¿¡ ½±°Ô Àû¿ëµÇ´Â ±â¹Ý±â¼úÀ» ¸¸µé¾î ³¾Áö´Â Àǹ®ÀÌ´Ù.

±¹³»ÀÇ ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛ ¿¬±¸µéÀº Java °ü·Ã ¿¬±¸µéÀÌ È°¹ßÇÏ°Ô ÁøÇàµÇ°í Àִµ¥, ÀÌ ¿¬±¸µéµµ ÇÁ·Î±×·¡¹Ö ¾ð¾î ÀÌ·ÐÀ̳ª ¾ö¹ÐÇÑ ÄÄÇ»Æà ¸ðµ¨¿¡ ±âÃÊÇÏ°í ÀÖÁö ¾Ê±â ¶§¹®¿¡, ¹Ì·¡ÀÇ È¿°úÀûÀÎ ±Û·Î¹ú ÄÄÇ»ÆÃÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ÇÙ½É ±â¹Ý±â¼ú·Î ºÎ°¢µÇ±â´Â Èûµé°ÍÀ¸·Î º¸ÀδÙ.

±×¸®°í, º» ¿¬±¸°¡ ÁøÇàÁß¿¡ Ç×»ó ±× ¹ßÀü°úÁ¤À» ¿°µÎ¿¡ µÎ¾î¾ß ÇÏ´Â ºÐ¾ß·Î, ÇÁ·Î±×·¡¹Ö ¾ð¾î ¸ðµ¨¿¡ ´ëÇÑ ¿¬±¸°¡ ÀÖ´Ù. ¹Ì·¡ÀÇ ±Û·Î¹ú ÄÄÇ»Æà ȯ°æÀÇ °è»ê ¸ðµ¨À» Á¦¾ÈÇÏ°í ±× ¸ðµ¨¿¡ ±âÃÊÇÑ ´Ù¾çÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î ¸ðµ¨µéÀ» °í¾ÈÇÏ´Â ¿¬±¸·Î½á, MilnerÀÇ Pi-calculus\cite{MiPaWa89a,MiPaWa89b}, FournetÀÇ Join-calculus\cite{FoGo96,FGLMR96,FLMR96}, CardelliÀÇ Ambient-calculus\cite{CaGo98}, AbadiÀÇ Spi-calculus\cite{AbGo97,AbGo97b}µîÀÌ ÀÖ´Ù. ¹Ì·¡¿¡´Â, ÀÌ·¯ÇÑ ±âÃÊÀûÀÎ ¸ðµ¨µé¿¡ ±â¹ÝÇÑ »õ·Î¿î ±Û·Î¹ú ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ¸¸µé¾îÁö°Å³ª(Obliq\cite{Ca94,BrNa96}, PLAN\cite{HKMGN98} µî), ±âÁ¸ÀÇ ¾ð¾î¿¡ ÀûÀýÇÑ È®ÀåÀÌ\cite{Fac93} ÀÌ·ç¾î Áú °ÍÀ¸·Î ¿¹»óµÈ´Ù. ¿ì¸®´Â ÀÌ·¯ÇÑ ±Û·Î¹ú ÇÁ·Î±×·¡¹Ö ¸ðµ¨ÀÇ ÇÙ½É ±¸Á¶µé¿¡ ´ëÇÑ ÀÌ·Ð ¿¬±¸¸¦ Ç×»ó °í·ÁÇÏ°Ô µÉ °ÍÀÌ´Ù. ù° ÀÌÀ¯´Â, º» ¿¬±¸°¡ ÀÌ·¯ÇÑ ¸ðµ¨¿¡ ±âÃÊÇÑ ¹Ì·¡ÀÇ ¾ð¾îµéÀÇ ÄÄÆÄÀÏ·¯ ½Ã½ºÅÛ¿¡ ½±°Ô Àû¿ëµÇ´Â Çٽɱâ¼úÀ» ¸¸µé¾î³»¾ß Çϱ⠶§¹®ÀÌ°í, µÑ° ÀÌÀ¯´Â, ±×·¯ÇÑ ¾ö¹ÐÇÑ ¸ðµ¨¿¡ ±âÃÊÇÑ ¿¬±¸´Â ¿ì¸®°¡ ´ë»óÀ¸·Î ÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¾ö¹ÐÇÑ Àṉ̀¸Á¶¸¦ Á¦°øÇÏ´Â ±âÃÊ°¡ µÇ¾î ¿ì¸® ¿¬±¸¸¦ ¾ö°ÝÈ÷ °ËÁõÇÏ°í ±× ÇѰ踦 ±Ô¸íÇÏ´Â µ¥¿¡ ÇʼöÀ̱⠶§¹®ÀÌ´Ù.