¿ì¸®¸» ³í¹®¾²±âÀÇ ¿øÄ¢
ÀÌ ±¤±Ù
1997³â 1¿ù 3ÀÏ
(PDF,Postscript,DVI)
¹è°æ
³ª´Â ¿ì¸®ÀÇ °øºÎ¸¦ ¿ì¸®ÀÇ ¾ð¾î·Î ½±°í Á¤È®ÇÏ°Ô Ç¥ÇöÇÏ´Â °ÍÀÌ
Áß¿äÇÑ ÇмúÈ°µ¿À̶ó°í ¿©±â°í ÀÖ°í, ±× ½ÇÇà¿¡ ¼¼½ÉÇÑ ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÑ´Ù°í
¹Ï´Â´Ù. ¿ì¸® Á¶»óÀÇ ±â¶ó¼º°°Àº °øºÎÀÇ ³»¿ëÀÌ ¿Ü±¹¾î(Áß±¹¾î)·Î ¾²ÀÎ
±î´ß¿¡ ¿ì¸®¿¡°Ô ½±°Ô Àü´ÞµÇÁö ¸øÇÏ°í ÁöÁöºÎÁøÇØÁø ``¿ª»ç''¸¦ ±íÀÌ
À¯³äÇØ¾ß ÇÒ °ÍÀÌ´Ù[1].
±Í±¹ÈÄ ÇлýµéÀÇ ±ÛÀ» ÁöµµÇØ º¸¸é¼ ¿ì¸®±ÛÀÇ ¿øÄ¢¿¡ ´ëÇØ Çлýµé
ÇϳªÇϳª¸¦ ¼³µæÇÏ´Â °úÁ¤ÀÌ ³»°Õ Áö·çÇÑ ¹Ýº¹À̾ú´Ù. ¸Å³â »õ·Î Á¢ÇÏ°Ô
µÇ´Â Çлýµé¿¡°Ô °°Àº ¾ê±â¸¦ ¹Ýº¹ÇÏ´Â ¹øÀâÀ» ÀÌ ±Û·Î ÁÙ¿© º¼ »ý°¢ÀÌ´Ù.
³ª´Â ÀÌÇØÇÑ´Ù. ÇöÀç ¿ì¸®ÀÇ ÀÔÀå¿¡¼, ¿ì¸®°¡ üµæÇÑ ¹®Á¦¸¦ ¿ì¸®ÀÇ ¾ð¾î·Î
Ç®¾î°¡´Â µ¥ ÁÖ¸ñÇÏ´Â °ÍÀÌ, ÀÎÅͳÝÀ» Ÿ°í Èê·¯¿Â ³²ÀÇ À̾߱âµéÀ»
ÁÖ¿ö´ã´Â µ¥ ÁÖ¸ñÇÏ´Â °Íº¸´Ù ¸î ¹è ¾î·Á¿î °ÍÀ̸®¶ó. ±âÁöÃÌ ¹æ½Ä¿¡[3]
Àͼ÷ÇÑ ¿ì¸®·Î½á´Â ÀÚ½ÅÀÌ Ã¼ÇèÇÑ ¹®Á¦¸¦ ÀÚ½ÅÀÇ ¾ð¾î·Î½á Ç®¾î³ª°¡´Â
°ÍÀÌ, ¼±Áø ¿Ü±¹ÀÎ °úÇÐÀÚÀÇ ¼¼·ÃµÈ ¿µ¾î¸¦ Çص¶ÇÏ´Â °Í º¸´Ù ¸î ¹è´Â
´õ ¾î·Á¿î °ÍÀÎÁö ¸ð¸¥´Ù.
¾î¶»°Ô ÀÌ ±âÁöÃÌÀÇ °ü¼ºÀ» »Ñ¸®Ä¥ °ÍÀΰ¡.
Ä¿¹Â´ÏÄÉÀ̼ÇÀÇ ¹ß´ÞÀº ºñ½ÁÇÑ ¼º°ÝÀÇ ¿¬±¸°úÁ¦µéÀ» Àü ¼¼°èÀûÀ¸·Î
´ë·®»ý»êÇÏ°í ÀÖ°í, ¾îµð¿¡¼±°¡ ÇØ°áÇÑ ¹®Á¦´Â ½Ç½Ã°£À¸·Î Àü ¼¼°è ¸ðµç °³°³ÀÎÀÇ
°øºÎ³»¿ëÀ» ¹Ù²Ù¾î ³õ´Â´Ù. ±× °úÁ¤¿¡¼ ÀÌÁúÀûÀÎ ¾ÆÀ̵ð¾î¿Í ÇØ´äµéÀÌ
¼·Î ¸¸³ª°Ô µÇ´Âµ¥, °Å±â¼ ¸¶Áö¸·À¸·Î ³²´Â °ÍÀº °¢ ÆÀÀÇ °¡Àå µ¶Æ¯ÇÑ
°øºÎÀÌ°í, ±× °øºÎÀÇ µ¶Æ¯ÇÔÀº ¿ì¸® ÁÖº¯ÀÇ ¹®Á¦µéÀ» ÀÚ°¢ÀûÀ¸·Î Ç®¾î°¡Áö
¾ÊÀ¸¸é ¸¸µé¾îÁöÁö ¾ÊÀ» °ÍÀÌ´Ù[2]. ÀÌ ÀÚ°¢ÀÌ ¿ì¸®°¡ ¼¼½ÉÇÏ°Ô
õÂøÇØ°¡´Â ¿ì¸®±ÛÀ» ÅëÇؼ º¸´Ù »¡¸® ¿Ã°ÍÀ¸·Î ¹Ï´Â´Ù.
¿øÄ¢
- Àü¹®¿ë¾îÀÇ Àǹ̸¦ Á¤È®È÷ ÀÌÇØÇϵµ·Ï ÇÑ´Ù.
- ±× Àǹ̰¡ Á¤È®È÷ Àü´ÞµÇ´Â ¿ì¸®¸»À» ã´Â´Ù.
- À̶§, Áö·¹ ``°Ì¸Ô°Ô ÇÏ´Â'' ¿ë¾î(ºÒÇÊ¿äÇÑ Çѹ®)¸¦ ÇÇÇÏ°í, µÉ ¼ö
ÀÖÀ¸¸é ½¬¿î¸»À» ã´Â´Ù.
- À̶§, Àü¹®¿ë¾î Çϳª¿¡ Çѱۿë¾î Çϳª°¡ ÀÏ´ëÀÏ ´ëÀÀÀÏ ÇÊ¿ä°¡ ¾øÀÌ,
»óȲ¿¡ µû¶ó¼ ´Ù¾çÇÏ°Ô Ç®¾î¾µ ¼ö ÀÖ´Ù. Áß¿äÇÑ °ÍÀº ÀǹÌÀÇ ¸íÈ®ÇÑ Àü°³.
- Àü¹®¿ë¾î´Â ÇØ´ç ¿ì¸®¸» ´ÙÀ½¿¡ °ýÈ£¾È¿¡ Ç×»ó µû¶ó ºÙÀδÙ.
- µµÀúÈ÷ ¿ì¸®¸»À» ãÀ» ¼ö ¾øÀ» ¶©,
¼Ò¸®³ª´Â´ë·Î ¾²°í °ýÈ£¾È¿¡ µû¶óºÙÀδÙ.
- ±âÁ¸ÀÇ ¿ë¾î»çÀüÀÇ ±ÇÀ§¿¡ ¾ô¸ÅÀÌÁö ¾Ê´Â´Ù.
º¸´Ù ÁÁÀº ¿ì¸®¸»À»
ã¾ÒÀ¸¸é, ±×·¸°Ô ¾´´Ù. ¿ì¸® ºÐ¾ßÀÇ Àü¹®°¡ÀÎ ¿ì¸®°¡ ÁÖµµÇÑ´Ù.
¿¹
- ¹ø¿ª¿ë·Ê Á¾ÇÕ (ÇÁ·Î±×·¡¹Ö ¾ð¾î¹× ½Ã½ºÅÛ ºÐ¾ß)
- ¸Þ¸ð¸® ÀçÈ°¿ë(garbage collection) v.s. ``°¡ºñÁö ¸ðÀ½''? no.
- ¸Þ¸ð¸® ÃâÇ÷(memory leak)
- µ¿°³ ¸Þ¸ð¸®(dangling pointer)
- ÇÔ¼ö¸¦ ÁÖ°í ¹Þ´Â ÇÔ¼ö(high-order function), °íÂ÷ ÇÔ¼ö(high-order function)
- º¹ÇÕÇü ÇÔ¼ö(polymorphic function), ÀÎÀÚ Å¸ÀÔ¿¡ »ó°ü¾ø´Â
ÇÔ¼ö(polymorphic function)
- ¸Þ¸ð¸® °èÃø±â(heap profiler)
- ¼Ò±ØÀû °è»ê¹ý(lazy evaluation), °ª °è»êÀ» ÃÖ´ëÇÑ ¹Ì·ç´Â(lazy
evaluation), ÇÊ¿äÇÒ ¶§¸¸ °ªÀ» °è»êÇÏ´Â(lazy evaluation)
- Àû±ØÀû °è»ê¹ý(strict evaluation), ÀÏ´Ü °ªÀ» °è»êÇÏ°í º¸´Â(strict evaluation)
- ¾ÈÀü¼º(soundness) v.s. ``°ÇÀü¼º''? no.
- ¿ä¾à Çؼ®/ºÐ¼®(abstract interpretation) v.s. ``Ãß»ó Çؼ®''? no.
- ¿ä¾àµÈ Àṉ̀¸Á¶/½Ä(abstract semantics) v.s. ``Ãß»ó ÀǹÌ''? no.
- ¸ðµâ(module), ÀϹÝÈµÈ ¸ðµâ(parameterized module)
- Àṉ̀¸Á¶(semantics) v.s. ``Àǹ̷Ð''? no.
- ¹®¹ý±¸Á¶(syntax) v.s. ``±¸¹®·Ð''? no.
- ³ª¹«±¸Á¶(tree), °¡Áö ±¸Á¶(tree) v.s.``¸ñ±¸Á¶''? no.
- ¸Þ¸ð¸® Áß½ÉÀÇ ¾ð¾î(imperative language), ±â°è
Áß½ÉÀÇ ¾ð¾î(imperative language), ÇൿÁöħÇü ¾ð¾î(imperative
language), ¼ø¼ Áß½ÉÀÇ ¾ð¾î(imperative language)
- °ª Áß½ÉÀÇ ¾ð¾î(applicative language)
- ¹°°Ç Áß½ÉÀÇ ¾ð¾î(object-oriented language) v.s. ``°´Ã¼ÁöÇâ''? no.
- ÇÔ¼ö Áß½ÉÀÇ ¾ð¾î(functional language), ÇÔ¼ö ¾ð¾î(functional language)
- ½ÇÇàÁß¿¡ µå·¯³ª´Â À̸§ÀÇ ½Çü(dynamic scoping),
À̸§ÀÇ À¯È¿¹üÀ§°¡ ´ÙÀ̳ª¹ÍÇÏ°Ô °áÁ¤µÇ´Â(dynamic scoping)
- ½ÇÇàÀü¿¡ °áÁ¤µÇ´Â À̸§ÀÇ ½Çü(static scoping),
À̸§ÀÇ À¯È¿¹üÀ§°¡ ¹Ì¸® °áÁ¤µÇ´Â(static scoping)
- ¾ÕÀ¸·Î ÇÒÀÏÀ» ÇÔ¼ö·Î Á¤¸®Çؼ Àü´ÞÇØÁÖ´Â(continuation passing style),
°è»ê°úÁ¤ÀÇ Àü´Þ(continuation passing style),
°è»ê°úÁ¤ Àü´Þ º¯È¯(continuation passing style transformation)
- [1]
- ±è ¿ë¿Á. [µ¿¾çÇÐ ¾î¶»°Ô ÇÒ °ÍÀΰ¡], Å볪¹«. 1989
- [2]
- ``¿ì¸®´Â ±¹°¡ °æ¿µÀü·«ÀÌ Àִ°¡ II (¼¼°èÈ Á¤Ã¥ÀÇ ÁÖº¯À̾߱â),'' [µµ¿Ã°í½Å], Á¦ 9 ½Å. pp.1-3. 1996
- [3]
- ±è ¿µ¹Î. [Å»½Ä¹Î¼º°ú ¿ì¸® Àι®ÇÐÀÇ
±Û¾²±â], ¹ÎÀ½»ç, 1996