ÇÁ·Î±×·¡¹Ö ±³À°¿¡¼­ ½Ç½À ¾ð¾îÀÇ ¼±ÅÃ

À̱¤±Ù
ÇÁ·Î±×·¥ ºÐ¼®½Ã½ºÅÛ ¿¬±¸´Ü
KAIST

2002³â 6¿ù 4ÀÏ

[PDF/Postscript]


±¹³» ´ëÇеéÀÌ ¸¶·ÃÇÏ°í ÀÖ´Â ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ±³°ú°úÁ¤¿¡¼­ ³õÄ¡°í ÀÖ´Â, Áß¿äÇÏÁö¸¸ °¡¸£Ä¡±â ¾î·Á¿î ³»¿ëµéÀ» º¸¿ÏÇÒ ¼ö ÀÖ´Â ¹æ¾È¿¡ ´ëÇÑ ¼Ò°ßÀ» Á¤¸®ÇØ º¸¾Ò´Ù. °­ÀÇ¿¡¼­ »ç¿ëÇÒ ½Ç½À ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ´ëÇÑ Á¦¾ÈÀ¸·Î Á¼ÇôÁø ³»¿ëÀÌ´Ù.

1   ´ë°³ÀÇ ÇÁ·Î±×·¡¹Ö ±³À°

¾çÁúÀÇ IT ÀηÂÀ» ¾ç¼ºÇÏ·Á´Â Çб³¿¡¼­ ¼Õ½±°Ô ¼±ÅÃÇÏ´Â ÇÁ·Î±×·¡¹Ö ±³À° ¹æ¹ýÀº, Áö±Ý ÇöÀç ¸¹Àº »ç¶÷µéÀÌ Á¢ÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀ» °¡Áö°í ÇÁ·Î±×·¥À» Â¥º¸µµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ±¹³» ´ëÇÐ ´ëºÎºÐÀÇ °æ¿ì¸¦ º¸¸é C³ª Java¸¦ ÇÁ·Î±×·¡¹Ö ±³À°¿¡¼­ °­ÀÇÇÏ°í ½Ç½À¾ð¾î·Î »ç¿ëÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.

»ç½Ç ÇÁ·Î±×·¡¹ÖÀº ´Ù¾çÇÑ ¼öÁØ(±â°è¾î ¼öÁØ¿¡¼­ºÎÅÍ ¼ÒÇÁÆ®¿þ¾î ±âȹ/¸í¼¼ ¼öÁØ ÀÌ»ó±îÁö)¿¡¼­ ÀÌ·ç¾îÁö´Â ÀÛ¾÷ÀÌ°í, ÀÌ ¸ðµç ¼öÁØ¿¡¼­ ÀÌ¿ëµÇ´Â ¾ð¾îµéÀÌ ÇÁ·Î±×·¡¹Ö ½Ç½À¾ð¾î·Î »ç¿ëµÇ¾ß ÇÏ°ÚÁö¸¸, C³ª Java¸¦ ÁÖ·Î ¼±ÅÃÇÏ´Â ÀÌÀ¯´Â ¾Æ¸¶µµ ÇöÀç ´ë´Ù¼öÀÇ ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÌ ±×·¯ÇÑ ¾ð¾îµé·Î ÀÌ·ç¾îÁø´Ù´Â ÆÇ´Ü ¶§¹®ÀÏ °ÍÀÌ´Ù. Áö±ÝÀÌ 1950-60³â´ë¶ó¸é ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ±³À°Àº ¾Æ¸¶ ¿¡¼Àºí¸®¾î¿Í ¸µÄ¿¸¦ ÀÌ¿ëÇؼ­ ÁøÇàµÇ¾úÀ» °ÍÀÌ´Ù.

ÀÌ·¸°Ô ``Áö±Ý ÇöÀç ¸¹Àº »ç¶÷µéÀÌ Á¢ÇÏ´Â'' ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ÇÁ·Î±×·¡¹Ö ±³°ú°úÁ¤À» ¸¶·ÃÇÏ´Â °ÍÀº ¹«³­ÇÑ µí ÇÏ´Ù. Çб³³ª ÁÖº¯ ±³¼öµéÀ» ¼³µæÇϱ⠽±°í, Çлýµéµµ °ÅºÎ¹ÝÀÀ ¾øÀÌ ¼ö¾÷¿¡ ÀÓÇÒ °ÍÀÌ´Ù. ÇÑ°¡Áö ¾î·Á¿òÀ̶ó¸é, ²ÙÁØÈ÷ º¯ÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ÀαâÂ÷Æ®¿¡ µû¶ó ±³°ú°úÁ¤À» »¡¸® ÀûÀÀ½ÃÄÑ¾ß ÇÑ´Ù´Â Á¡ÀÌ´Ù. ¿À´ÃÀº CÀ̹ǷÎ, C·Î. ³»ÀÏÀº C++À̹ǷΠC++·Î. Áö±ÝÀº JavaÀ̹ǷΠJava·Î. ³ªÁß¿¡´Â MLÀ̹ǷΠML·Î.

±×·¯³ª ÀÌ·± ±³À°°úÁ¤ÀÇ ¾Æ½¬¿î Á¡Àº, ÇÁ·Î±×·¡¹Ö ±³À°¿¡¼­ ¹«¾ùÀ» °¡¸£ÃÄ¾ß ÇÏ´Â Áö¿¡ ´ëÇÑ ÃÊÁ¡ÀÌ Ç¥¸éÀûÀÎ °Í¿¡ ¸ÂÃß¾îÁ® ÀÖ´Ù´Â µ¥ ÀÖ´Ù. ÀǾÆÇØÇϽðÚÁö¸¸, Áö±Ý ´çÀå ³Î¸® ¾²ÀÌ´Â ¾ð¾îµéÀº ÇöÀç ÇÁ·Î±×·¡¹Ö ±â¼úÀÇ Áß¿ä ¼º°úµéÀ» Ãæ½ÇÈ÷ °®Ãß°í ÀÖÁö ¸øÇÏ´Ù. ¶§¹®¿¡, ±×·¸°Ô¸¸ ÇÁ·Î±×·¡¹Ö ±³À°À» ¹ÞÀº ÇлýµéÀº ¼ÒÇÁÆ®¿þ¾î ±â¼úÀÇ µÞ ºÏ¸¸À» Ä¡±â ½±»óÀÌ µÇ°Å³ª, ¼ö¸íÀÌ ÂªÀº ÇÁ·Î±×·¡¹Ö ±â¼ú¿¡ Ä¡¿ìÄ¡°Ô µÉ °ÍÀÌ´Ù.

±Û·Î¹ú ¼±µÎ¸¦ Â÷ÁöÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ÀηÂÇ®Àº ÀÌÁ¦´Â ±â¼úÈ帧ÀÇ ÇÙ½ÉÀ» ¸Àº» »ç¶÷µé·Î ±¸¼ºµÉ °ÍÀÎ ¹Ù, À§¿Í°°Àº ±³°ú°úÁ¤Àº ±×·± ÀηÂÀÇ Àúº¯À» µÎÅÓ°ÔÇÏ´Â µ¥´Â ¹Ù¶÷Á÷ÇÏÁö ¾Ê´Ù°í º»´Ù. Ç¥¸éÀº Ç×»ó º¯ÇÏ°í ±× À¯È¿±â°£Àº ª´Ù°í ÇÑ´Ù. ºÎÁö·±È÷ Áö±Ý ÇöÀçÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ±³°ú°úÁ¤À» ¸¸µé°í ÀçÆíÇØ º¸Áö¸¸, ÇлýµéÀÌ ÀÍÈ÷´Â ³»¿ëÀÇ À¯È¿±â°£Àº ¼ö½Ã·Î º¯Çϴ ǥ¸éÀÇ ±×°Í¸¸Å­ ªÀ» ¼ö ¹Û¿¡ ¾øÀ» °ÍÀÌ´Ù. ¿­½ÉÈ÷´Â ¶ÙÁö¸¸ À̱âÁö´Â ¸øÇÏ´Â Ã౸ÆÀÀ» ¸¸µé ¼ö ¹Û¿¡ ¾ø´Â ÈÆ·Ã ÇÁ·Î±×·¥À̶ö±î.

2  ÇÁ·Î±×·¡¹Ö ±³À°ÀÇ µÎ°¡Áö ³»¿ë

ÇÁ·Î±×·¡¹Ö ±³À°ÀÇ ÃÐÁ¡À» Ç¥¸é¿¡¼­ ÇÙ½ÉÀ¸·Î ¿Å°Üº¸¸é, ´ÙÀ½ µÎ°³ÀÇ Áú¹®¿¡ ¸ÂÃçÁú °ÍÀÌ´Ù:

ÇöÀçÀÇ ±â¼ú ¼öÁØÀ» ÀÍÈ÷µµ·Ï ÇÏ´Â °ÍÀº ´ç¿¬ÇÏ´Ù. ¼±Ç³±â ±â¼ú¸¸ ¾Ë°í ÀÖ´Â ¿£Áö´Ï¾îÇÏ°í ¹°ÆßÇÁ¿Í ¹è¼ö½Ã½ºÅÛ ±â¼ú±îÁö ¾Ë°íÀÖ´Â ¿£Áö´Ï¾îÇÏ°í´Â È«¼ö³­ ³í¹çÀÇ ¹°À» Á¦°ÅÇÏ´Â ¹®Á¦¸¦ ÇØ°áÇÏ´Â ´É·Â¿¡ Â÷ÀÌ°¡ ³¯ °ÍÀÌ´Ù. ´Ù¾çÇÑ »ý°¢ÀÇ Æ²À» °®Ãß°Ô ÇÏ´Â °Íµµ ÇÊ¿äÇÏ´Ù. ¹®Á¦¸¦ Á¤ÀÇÇÏ°í ´äÀ» ±Ã¸®ÇÏ´Â »ý°¢ÀÇ Æ²À» ÀûÀýÈ÷ ¼±ÅÃÇÒ ÁÙ ¾Æ´Â ¿£Áö´Ï¾î´Â, ±×·¸Áö ¸øÇÑ ¿£Áö´Ï¾î¸¦ Ç×»ó ´É°¡ÇÒ °ÍÀÌ´Ù.

°í¹ÎÇØ¾ß ÇÒ Á¡Àº ¹«½¼ ±â¼úµéÀÌ ÇöÀçÀÇ ÇÁ·Î±×·¡¹Ö ±â¼úÀÌ°í ¾î¶² ÇÁ·Î±×·¡¹Ö »ý°¢ÀÇ Æ²ÀÌ Áß¿äÇÑ °ÍÀÌ³Ä Àε¥, ÀÌ °í¹ÎÀÇ ´äÀº °­ÀÇ¿¡¼­ »ç¿ëÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ÅëÇØ Çлýµé¿¡°Ô Àü´ÞµÉ °ÍÀÌ´Ù. µû¶ó¼­ ¹®Á¦´Â ¹«½¼ ¾ð¾îµéÀ» ¼±ÅÃÇÏ¸é µÇ³Ä´Â °ÍÀε¥, ¾Æ½±°Ôµµ À§ÀÇ µÎ°¡Áö Áú¹®¿¡ ´ëÇؼ­ C¿Í JavaÀÇ ¼±ÅÃÀº ¸Å¿ì ºÎÁ·ÇÑ ¸éÀÌ ÀÖ´Ù.

2.1   C¿Í Java°¡ ³õÄ¡´Â ÇÙ½É ÇÁ·Î±×·¡¹Ö ±â¼ú

C¿Í Java·Î ÇÁ·Î±×·¥Çϸ鼭 °æÇèÇÒ ¼ö ¾ø´Â ¼ÒÇÁÆ®¿þ¾î ±â¼úÀº, ÇÁ·Î±×·¥ÀÇ ¿À·ù¸¦ ÀÚµ¿À¸·Î ã¾Æ³»´Â ±â¼úµéÀÌ´Ù. ÇÁ·Î±×·¡¹Ö ±³À°ÀÇ ÇÑ ¸ñÇ¥°¡ ¹ö±× ¾ø´Â ¼ÒÇÁÆ®¿þ¾î¸¦ °ª½Î°Ô ¸¸µå´Â ±â¼úÀ» ÀÍÈ÷°ÔÇÏ´Â °Í Àε¥, ÀÌ ±â¼úÀÇ ÇÙ½É µ¿ÇâÀ» C³ª Java¸¦ ÅëÇؼ­´Â ÀÍÈú ¼ö ¾ø´Â ¾Æ½¬¿òÀÌ ÀÖ´Ù.

¼ÒÇÁÆ®¿þ¾î ¹ö±×¸¦ ÀÚµ¿À¸·Î ã¾ÆÁÖ´Â ±â¼úÀº Áö±Ý±îÁö 2¼¼´ë ±â¼úÀÌ ¿Ï¼ºµÇ¾ú´Âµ¥, C¿Í Java´Â 1¼¼´ë ±â¼ú¸¸À» °®Ãß°í ÀÖÀ» »ÓÀÌ´Ù. 1¼¼´ë ¿À·ù °ËÁõ ±â¼úÀº 1970³â´ë¿¡ ´Þ¼ºµÈ °ÍÀ¸·Î, »ý±ä°Ô À߸øµÈ ÇÁ·Î±×·¥À» ÀÚµ¿À¸·Î ã¾Æ³»´Â ±â¼úÀÌ´Ù. ÀÌ ±â¼úÀÌ ¹®¹ý°ËÁõ±â¼ú(parsing)ÀÌ°í, ¿ÏÀüÈ÷ ¿Ï¼ºµÇ¾î ¾î´À ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­³ª Á¦°øµÇ´Â ±â¼úÀÌ´Ù. ´öÅÿ¡, ¾î´À ÇÁ·Î±×·¡¹Ö ±³À°¿¡¼­µµ ÇÁ·Î±×·¡¸Ó°¡ ¹®¹ý ¿À·ù¸¦ ¼ÕÀ¸·Î ã¾Æ³»µµ·Ï ÇÏ´Â ½Ç½À¾ð¾î¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.

C³ª Java°¡ ³õÄ¡°í ÀÖ´Â 2¼¼´ë ¹÷Àâ´Â ±â¼úÀº 1990³â´ë¿¡ ¿Ï¼ºµÇ±â ½ÃÀÛÇÑ ±â¼úÀε¥, ŸÀÔ°ËÁõ(type checking)À̶ó´Â ±â¼úÀÌ´Ù. ÀÌ ±â¼úÀº ÇÁ·Î±×·¥ÀÌ ½ÇÇàÁß¿¡ À߸øµÈ °ªÀÌ À߸øµÈ °è»ê°úÁ¤¿¡ ÈÛ¾µ¸± ¼ö ÀÖ´Â °æ¿ì°¡ ¾ø´ÂÁö¸¦ ÄÄÆÄÀÏ·¯°¡ ¹Ì¸® ¾ÈÀüÇÏ°Ô È®ÀÎÇØ ÁØ´Ù. C³ª Java¸¸À» »ç¿ëÇÏ´Â ÇÁ·Î±×·¡¸ÓµéÀº ÀÌ·¸°Ô ¹Ì¸® ¾ö¹ÐÇÏ°Ô È®ÀÎÇØ ÁÖ´Â ½Ç¿ëÀûÀÎ ±â¼úÀÌ °¡´ÉÇÏ´Ù´Â »ç½ÇÀ» ¾ËÁö ¸øÇÏ°Ô µÈ´Ù. ÀÌ¹Ì ÀÌ ±â¼úÀ» È¿°úÀûÀ¸·Î ±¸ÇöÇÑ ½Ç¿ëÀûÀÎ ¾ð¾îµéÀÌ ¼Ó¼Ó ÃâÇöÇÏ°í ÀÖ°í, ¿Ü±¹ÀÇ ÁÖ¿ä ´ëÇеéÀº ±×·¯ÇÑ ¾ð¾î¸¦ ÇÁ·Î±×·¡¹Ö ½Ç½ÀÀÇ ¾ð¾î·Î ¼±ÅÃÇÏ°í ÀÖ´Ù. 2¼¼´ë ¹÷Àâ´Â ±â¼úÀ» ¸Àº» ¿£Áö´Ï¾î´Â ±×·¯ÇÑ ±â¼úÀÇ °¡´É¼º ¸¶Á®µµ ¾ËÁö ¸øÇÏ°í ÀÖ´Â ¿£Áö´Ï¾î¸¦ ½±°Ô ´É°¡ÇÒ ¼ö ÀÖ´Â °ÍÀº »·ÇÏ´Ù. »ç½Ç ÀÌÁ¦´Â ¾î¼¸é 3¼¼´ë ¹÷Àâ´Â ±â¼úÀ» Çлýµé¿¡°Ô ¸Àº¸ÀÌ´Â °Íµµ ÇÊ¿äÇÑ ½ÃÁ¡À̶ó°í º¸¸é, C¿Í Java¿¡ ¸Ó¹®´Ù´Â °ÍÀº ¾Æ½¬¿î ¸éÀÌ ¸¹´Ù.

2.2   C¿Í Java°¡ ³õÄ¡´Â Áß¿äÇÑ ÇÁ·Î±×·¡¹Ö ÆĶó´ÙÀÓ

C³ª Java·Î °æÇèÇÒ ¼ö ¾ø´Â »ý°¢ÀÇ Æ²Àº °ªÁß½É(value-oriented)À¸·Î ¹®Á¦¸¦ Á¤ÀÇÇÏ°í ÇØ°áÇÏ´Â, ¼öÇп¡¼­ ¿ì¸®°¡ ¿À·§µ¿¾È »ç¿ëÇØ¿Â °£ÆíÇÑ ¾ð¾î ÀÎÇÁ¶óÀÌ´Ù. °ªÁß½ÉÀ¸·Î »ý°¢Çϱâ´Â ¹°°Ç(object)À» ¸¸µé°í º¯È­½ÃÅ°´Â ±â°èÀûÀÎ °úÁ¤¿¡ ½Å°æ¾²´Â °Í¿¡¼­ ¹þ¾î³ª¼­, °ª(value)À» Á¤ÀÇÇÏ°í °è»êÇÏ´Â °úÁ¤¿¡ ÁýÁßÇÏ´Â ¹æ¹ýÀÌ´Ù. Áß°íµîÇб³ ¼öÇп¡¼­ ´ëºÎºÐÀÇ ÇлýµéÀÌ ÀÌ¹Ì Àͼ÷ÇÏ°Ô »ç¿ëÇØ ¿Ô¾ú´ø ½±°í °£´ÜÇÑ ÇÁ·Î±×·¡¹Ö °³³äÀÌ´Ù. ¿¹¸¦µé¾î ¾î´À ¼öÇÐÃ¥ÀÇ ÇÑ ÆäÀÌÁö¿¡¼­ µû¿Â ´ÙÀ½ÀÇ ´Ü¶ôÀ» º¸ÀÚ:

``V¸¦ (interior A) U f(W) ¶ó°í ÇÏÀÚ. ±×·¯¸é V U (interior W) = f(A) °¡ »ç½ÇÀÓÀ» ¾Ë ¼ö ÀÖ´Ù.''

¿©±â¼­ ù ¹®Àå¿¡ ³ªÅ¸³ª´Â (interior A)´Â A°¡ °¡Áö´Â °ªÀ» º¯È­½ÃÅ°Áö ¾Ê´Â´Ù. ±×·¡¼­ µÎ¹ø° ¹®Àå¿¡ ³ªÅ¸³ª´Â A¿Í óÀ½ÀÇ A °°Àº °ÍÀÌÁö, ¹®ÀåµéÀÌ ½ÇÇàµÇ¸é¼­ º¯ÇÏ´Â ¹°°ÇÀÌ ¾Æ´Ñ °ÍÀÌ´Ù. f(W)¶ó´Â ¿¬»êµµ ¸¶Âù°¡Áö´Ù. ù¹®Àå¿¡¼­³ª µÎ¹ø° ¹®Àå¿¡¼­³ª W´Â °°Àº °ªÀ» °¡Áú »ÓÀÌ´Ù.

¿Ö, ¼öÇÐ(°úÇÐ)ÀÇ ¹ßÀüÀ» ¼ÒÅë½ÃÄ×´ø ÀÌ·¯ÇÑ °£ÆíÇÑ ¾ð¾î ÀÎÇÁ¶ó¸¦ ÇÁ·Î±×·¡¸Ó°¡ ÀÍÈ÷µµ·Ï ÇØ¾ß ÇÒ±î? ÄÄÇ»ÅÍ ¼ÒÇÁÆ®¿þ¾î´Â ¼öÇÐÀÇ ÇÁ·Î±×·¥(³íÁõ)¿¡¼­¿Í ¶È°°ÀÌ, ±× Âü/°ÅÁþÀ» ÆǸíÇØ¾ß ÇÏ´Â Çʿ伺ÀÌ Á¡Á¡ Áß¿äÇØÁö°í Àֱ⠶§¹®ÀÌ´Ù. °úÇп¡¼­ ÇÁ·Î±×·¥ÀÇ Âü/°ÅÁþÀ» ÆǸíÇÏ´Â °ÍÀÌ °úÇÐÀÇ Á¸Àç¿Í ¹ßÀüÀÇ ±Ù°£À̾úµíÀÌ, ÄÄÇ»ÅÍ ¼ÒÇÁÆ®¿þ¾îÀÇ Á¸Àç¿Í ¹ßÀüÀÇ ±Ù°£Àº ÀÌÁ¦ ÇÁ·Î±×·¥ÀÇ Âü/°ÅÁþÀ» ÆǸíÇÏ´Â ±â¼úÀÌ µÇ°íÀÖ´Ù. ÇÁ·Î±×·¥ÀÌ ¿Ç°í ±×¸¥Áö¸¦ ÆǸíÇÏ´Â °ÍÀº ´Ù¸§¾Æ´Ï¶ó ÇÁ·Î±×·¥ÀÌ ¿À·ù¾øÀÌ »ý°¢´ë·Î ÀÛµ¿ÇÒ Áö ¾ÈÇÒ Áö ¸¦ È®ÀÎÇÏ´Â °ÍÀ̱⠶§¹®ÀÌ´Ù. ÀÌ·± È®ÀÎÀ» ¹Ì¸® ÀÚµ¿À¸·Î ÇØÁÖ´Â ±â¼úÀÌ ²ÉÇÇ´Â ¶¥Àº °ªÁß½ÉÀÇ °³³äÀ» ¹ÙÅÁÀ¸·Î ÇÑ ÇÁ·Î±×·¥µéÀÌ µÉ °ÍÀ¸·Î º¸ÀδÙ. ÀÌ´Â °úÇбâ¼úÀÇ Âü/°ÅÁþÀ» È¿°úÀûÀ¸·Î ¼ÒÅë½ÃÄ×´ø ¾ð¾î°¡ °ªÁß½ÉÀÇ ¾ð¾î¿´´Ù´Â »ç½Ç·Î ½±°Ô ¿¹»óÇÒ ¼ö ÀÖ´Â ÀÏÀÌ´Ù.

ÀÌ·¯ÇÑ ÇÁ·Î±×·¡¹Ö °³³äÀº ÀÌÁ¦ ¼¼°è ÁÖ¿ä ´ëÇÐÀÇ ±âÃÊ ÇÁ·Î±×·¡¹Ö °ú¸ñ¿¡¼­ °­Àǵǰí Àִµ¥, ÀÌ °³³äÀÌ Áö±Ý±îÁö ¼ÒÇÁÆ®¿þ¾î ¼¼°è¿¡¼­ ¹¯ÇôÁ³´ø °ÍÀº, ÄÄÇ»ÅÍ¿¡¼­ ±× °³³äÀ» ½Ç¿ëÀûÀ¸·Î Áö¿øÇÏ´Â ¹æ¹ýÀÌ ¾ø¾ú±â ¶§¹®ÀÌ´Ù. ÇÏÁö¸¸, ÀÌÁ¦´Â ±×·¯ÇÑ ÀÚ¿¬½º·´°í °£´ÜÇÑ ÇÁ·Î±×·¡¹Ö °³³äÀ» È¿°úÀûÀ¸·Î ±¸ÇöÇØÁÖ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀÌ ÀÌ¹Ì ÇöÀåÀ¸·Î ³ª¿À±â ½ÃÀÛÇß°í ÁÖ¿ä ºÎºÐ¿¡¼­ ÀÌ¿ëµÇ°í ÀÖ´Ù. ÀüÅëÀûÀÎ ÄÄÆÄÀÏ·¯ ±â¼úµéÀÌ ¿¡¼Àºí¸® ÇÁ·Î±×·¡¹ÖÀ» ¸¸Á·½º·´°Ô ´ëü½ÃÄ×µíÀÌ, °ªÁß½ÉÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ±¸ÇöÇÏ´Â »õ·Î¿î ÄÄÆÄÀÏ·¯ ±â¼úµéÀÌ ÃæºÐÈ÷ ½×¿©¼­ ÀÌ¹Ì »ê¾÷ü¿¡¼­ ¾²ÀÌ´Â ¾ð¾îµéÀÌ µÇ¾úÀ» Áö°æÀÌ´Ù. ÀÌ·± »ç½ÇÀ» ¿ì¸®°¡ º¸Áö ¸øÇß´ø °ÍÀº ¾Æ¸¶µµ ¿ì¸®·Î¼­´Â C¿Í JavaÀÇ °ü¼º¿¡ ÈÛ¾µ¸± ¼ö ¹Û¿¡ ¾ø´Â Àڽۨ ºÎÁ·ÀÌ ÇÑ ¿øÀÎÀ̶ó°í º»´Ù.

3   ½Ç½À ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀÇ Á¦¾È

C¿Í Java°¡ ³õÄ¡´Â Á¡À» º¸ÃæÇØ ÁÖ´Â ½Ç½À ¾ð¾î·Î´Â ³íÀÇÇÑ ´ë·Î ´ÙÀ½ÀÇ µÎ Áú¹®À» ¸¸Á·ÇÏ´Â °ÍÀ» ãÀ¸¸é µÉ °ÍÀÌ´Ù. ¿À·ù¸¦ ÀÚµ¿À¸·Î ã¾Æ³» ÁÖ´Â ±â¼úÀÇ ÇöÀç ¼öÁØÀ» Á¦´ë·Î °®Ãá ¾ð¾îÀΰ¡? °ªÁß½ÉÀÇ ÇÁ·Î±×·¡¹Ö ÆĶó´ÙÀÓÀ» ÀÍÈú ¼ö ÀÖ´Â ¾ð¾îÀΰ¡?

ÁÖ¿ä ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀ» ÀÌ µÎ ±âÁØ°ú °ü·ÃÇؼ­ ÀϺ°ÇØ º¸¸é (¾Æ·¡Ç¥ ÂüÁ¶) ¼±ÅÃÇÒ ¾ð¾î´Â µÎ°³ÀÇ ±×·ì¿¡¼­ Çϳª¾¿ÀÌ¸é µÇ´Â °ÍÀ¸·Î Á¤¸®µÈ´Ù: C, C++, Java µîÀÇ ±×·ì°ú ML, Haskell, SchemeµîÀÇ ±×·ì. ƯÈ÷ C³ª JavaÁß¿¡ Çϳª, ML°ú HaskellÁß¿¡ Çϳª¸¦ Á¶ÇÕÇؼ­ ÀÌ¿ëÇÒ °ÍÀ» Á¦¾ÈÇÑ´Ù.

 

C

C++

Java

ML

Haskell

Scheme

1¼¼´ë ¹÷Àâ´Â ±â¼ú

 o

 o

 o

 o

 o

 o

2¼¼´ë ¹÷Àâ´Â ±â¼ú

 

 

 

 o

 o

 

object-oriented

 

 o

 o

 

 

 

value-oriented

 

 

 

 o

 o

 o

»ê¾÷ü ½Ç¿ë¼º

 o

 o

 o

 o

 o

 o

ÀÌ Á¦¾ÈÀÌ ¿ì¸® ÇÁ·Î±×·¡¹Ö ±³À°¿¡ »ç¿ëÇÒ ½Ç½À¾ð¾î¸¦ Áö±Ý ½ÃÁ¡¿¡¼­ ¿Ã¹Ù¸£°Ô ¾È³»ÇÏ´Â °ÍÀ̶ó°í ¹Ï´Â´Ù. ¾Æ¹«ÂÉ·Ï À߸ø ó¸®ÇÏ´Â ¾Æ´Â ¹Ù°¡ ¾Æ´Ï±æ ºó´Ù.


3¼¼´ë ¹÷Àâ´Â ±â¼ú: ¹®¹ý ¿À·ùµµ ¾ø°í ŸÀÔ ¿À·ùµµ ¾øÁö¸¸ ½ÇÇàÁß¿¡ °¡Á®¾ßÇÒ Á¤±³ÇÑ Á¶°ÇÀ» ¸¸Á·½Ãų ¼ö ¾ø´Â ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ·¯°¡ °ËÁõÇØ ³»´Â ±â¼ú.
  Objective Caml: www.ocaml.org,  Standard ML: www.smlnj.org, nML: ropas.kaist.ac.kr/n
 Haskell: www.haskell.org
 Scheme: www.drscheme.org, www.swiss.ai.mit.edu/projects/scheme, www.teach-scheme.org