http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1517 [º¹»ç]
ÆÄÀ̽ã(Python)Àº 1991³â ÇÁ·Î±×·¡¸ÓÀÎ ±Íµµ ¹Ý ·Î¼¶(Guido van Rossum)ÀÌ ¹ßÇ¥ÇÑ °í±Þ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î, Ç÷§Æû µ¶¸³ÀûÀ̸ç ÀÎÅÍÇÁ¸®ÅͽÄ, °´Ã¼ÁöÇâÀû, µ¿Àû ŸÀÌÇÎ(dynamically typed) ´ëÈÇü ¾ð¾îÀÌ´Ù. ÆÄÀ̽ãÀ̶ó´Â À̸§Àº ±Íµµ°¡ ÁÁ¾ÆÇÏ´Â Äڹ̵𠡴Monty Python's Flying Circus¡µ¿¡¼ µû¿Â °ÍÀÌ´Ù.ÆÄÀ̽ãÀº ºñ¿µ¸®ÀÇ ÆÄÀ̽㠼ÒÇÁÆ®¿þ¾î Àç´ÜÀÌ °ü¸®ÇÏ´Â °³¹æÇü, °øµ¿Ã¼ ±â¹Ý °³¹ß ¸ðµ¨À» °¡Áö°í ÀÖ´Ù. »ç½Ç»óÀÇ Ç¥ÁØÀº CPythonÀÇ ±¸ÇöÀÌ´Ù.
ÆÄÀ̽ãÀº Ãʺ¸ÀÚºÎÅÍ Àü¹®°¡±îÁö Æø³ÐÀº »ç¿ëÀÚÃþÀ» º¸À¯ÇÏ°í ÀÖ´Ù. µ¿Àû ŸÀÌÇÎ(dynamic typing) ¹ü¿ë ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î, ÆÞ ¹× ·çºñ¿Í ÀÚÁÖ ºñ±³µÈ´Ù. ´Ù¾çÇÑ Ç÷§Æû¿¡¼ ¾µ ¼ö ÀÖ°í, ¶óÀ̺귯¸®(¸ðµâ)°¡ dzºÎÇÏ¿©, ´ëÇÐÀ» ºñ·ÔÇÑ ¿©·¯ ±³À° ±â°ü, ¿¬±¸ ±â°ü ¹× »ê¾÷°è¿¡¼ ÀÌ¿ëÀÌ Áõ°¡ÇÏ°í ÀÖ´Ù. ¶Ç ÆÄÀ̽ãÀº ¼ø¼öÇÑ ÇÁ·Î±×·¥ ¾ð¾î·Î¼ÀÇ ±â´É ¿Ü¿¡µµ ´Ù¸¥ ¾ð¾î·Î ¾²ÀÎ ¸ðµâµéÀ» ¿¬°áÇÏ´Â Ç®¾ð¾î(glue language)·Î½á ÀÚÁÖ ÀÌ¿ëµÈ´Ù. ½ÇÁ¦ ÆÄÀ̽ãÀº ¸¹Àº »ó¿ë ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ½ºÅ©¸³Æ® ¾ð¾î·Î ä¿ëµÇ°í ÀÖ´Ù. µµ¿ò¸» ¹®¼µµ Á¤¸®°¡ Àß µÇ¾î ÀÖÀ¸¸ç, À¯´ÏÄÚµå ¹®ÀÚ¿À» Áö¿øÇؼ ´Ù¾çÇÑ ¾ð¾îÀÇ ¹®ÀÚ Ã³¸®¿¡µµ ´ÉÇÏ´Ù.
ÆÄÀ̽ãÀº ±âº»ÀûÀ¸·Î Çؼ®±â(ÀÎÅÍÇÁ¸®ÅÍ) À§¿¡¼ ½ÇÇàµÉ °ÍÀ» ¿°µÎ¿¡ µÎ°í ¼³°èµÇ¾ú´Ù.
ÁÖ¿ä Ư¡
µ¿Àû ŸÀÌÇÎ(dynamic typing). (½ÇÇà ½Ã°£¿¡ ŸÀÔ °Ë»ç°¡ ÀÌ·ç¾îÁø´Ù.)
°´Ã¼ÀÇ ¸â¹ö¿¡ ´ëÇÑ Á¢±ÙÀÌ Á¦ÇѵǾî ÀÖÁö ¾Ê´Ù. (¼Ó¼ºÀ̳ª Àü¿ëÀÇ ¸Þ¼µå ÈÅÀ» ¸¸µé¾î Á¦ÇÑÇÒ ¼ö´Â ÀÖÀ½.)
¸ðµâ, Ŭ·¡½º, °´Ã¼¿Í °°Àº ¾ð¾îÀÇ ¿ä¼Ò°¡ ³»ºÎ¿¡¼ Á¢±ÙÇÒ ¼ö ÀÖ°í, ¸®Ç÷º¼ÇÀ» ÀÌ¿ëÇÑ ±â¼úÀ» ¾µ ¼ö ÀÖ´Ù.
ÀÎÅÍÇÁ¸®ÅÍÀÇ Á¾·ù
CPython : C·Î ÀÛ¼ºµÈ ÀÎÅÍÇÁ¸®ÅÍ.
½ºÅø®½º ÆÄÀ̽ã : C ½ºÅÃÀ» »ç¿ëÇÏÁö ¾Ê´Â ÀÎÅÍÇÁ¸®ÅÍ.
Jython : ÀÚ¹Ù °¡»ó ¸Ó½Å ¿ë ÀÎÅÍÇÁ¸®ÅÍ. °ú°Å¿¡´Â Á¦ÀÌÆÄÀ̽ã(JPython)À̶ó°í ºÒ·È´Ù.
IronPython : .NET Ç÷§Æû ¿ë ÀÎÅÍÇÁ¸®ÅÍ.
PyPy : ÆÄÀ̽ãÀ¸·Î ÀÛ¼ºµÈ ÆÄÀ̽ã ÀÎÅÍÇÁ¸®ÅÍ.
Çö´ëÀÇ ÆÄÀ̽ãÀº ¿©ÀüÈ÷ ÀÎÅÍÇÁ¸®ÅÍ ¾ð¾îÀÎ °Íó·³ µ¿ÀÛÇϳª »ç¿ëÀÚ°¡ ¸ð¸£´Â »çÀÌ¿¡ ½º½º·Î ÆÄÀ̽㠼ҽº Äڵ带 ÄÄÆÄÀÏÇÏ¿© ¹ÙÀÌÆ® ÄÚµå(Byte code)¸¦ ¸¸µé¾î ³¿À¸·Î½á ´ÙÀ½¿¡ ¼öÇàÇÒ ¶§¿¡´Â ºü¸¥ ¼Óµµ¸¦ º¸¿© ÁØ´Ù. ÆÄÀ̽ãÀÇ ÀÌ·¯ÇÑ Æ¯Â¡À¸·Î ¼Ò½º ÄÚµåÀÇ À¯Ãâ µîÀÇ º¸¾È ¹®Á¦µµ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
ÆÄÀ̽㿡¼´Â µé¿©¾²±â(indentation)¸¦ »ç¿ëÇؼ ºí·ÏÀ» ±¸ºÐÇÏ´Â µ¶Æ¯ÇÑ ¹®¹ýÀ» ä¿ëÇÏ°í ÀÖ´Ù. ÀÌ ¹®¹ýÀº ÆÄÀ̽㿡 Àͼ÷ÇÑ »ç¿ëÀÚ³ª ±âÁ¸ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼ µé¿©¾²±âÀÇ Á߿伺À» ³ôÀÌ Æò°¡ÇÏ´Â »ç¿ëÀÚ¿¡°Ô´Â Àß ¹Þ¾Æµé¿©Áö°í ÀÖÁö¸¸, ´Ù¸¥ ¾ð¾îÀÇ »ç¿ëÀÚ¿¡°Ô¼´Â ÇÁ·Î±×·¡¸ÓÀÇ ÄÚµù ½ºÅ¸ÀÏÀ» Á¦ÇÑÇÑ´Ù´Â ºñÆǵµ ¸¹´Ù. ÀÌ ¹Û¿¡µµ ³×ÀÌƼºê ÀÌÁø ÆÄÀÏ(¹ÙÀ̳ʸ®)À» ¸¸µé¾î ÁÖ´Â C/C++ µîÀÇ ¾ð¾î¿¡ ºñÇØ ¼öÇà ¼Óµµ°¡ ´À¸®´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ±×·¯³ª »ç¾÷ ºÐ¾ß µî ÀϹÝÀûÀÎ ÄÄÇ»ÅÍ ÀÀ¿ë ȯ°æ¿¡¼´Â ¼Óµµ°¡ ±×¸® Áß¿äÇÏÁö ¾Ê°í, ºü¸¥ ¼Óµµ¸¦ ¿äÇÏ´Â ÇÁ·Î±×·¥ÀÇ °æ¿ì¿¡µµ ÇÁ·ÎÅäŸÀÌÇÎÇÑ µÚ ºü¸¥ ¼Óµµ°¡ ÇÊ¿äÇÑ ºÎºÐ¸¸ °ñ¶ó¼ C ¾ð¾î µîÀ¸·Î ¸ðµâÈÇÒ ¼ö ÀÖ´Ù(ctypes, SWIG, SIP µî wrapper »ý¼º ÇÁ·Î±×·¥µéÀÌ ¸¹ÀÌ ÀÖ´Ù). ¶ÇÇÑ Pyrex, Psyco, NumPy µîÀ» ÀÌ¿ëÇÏ¸é ¼öÄ¡¸¦ ºü¸£°Ô ¿¬»êÇÒ ¼ö Àֱ⠶§¹®¿¡ °úÇÐ, °øÇÐ ºÐ¾ß¿¡¼µµ ¸¹ÀÌ ÀÌ¿ëµÇ°í ÀÖ´Ù. Á¡Â÷ÀûÀÎ Á߿伺ÀÇ °Á¶·Î ±¹³»¿¡¼µµ Á¡Â÷ ±× È°¿ëµµ°¡ Ä¿Áö°í ÀÖÀ¸¸ç 2010³â Çѱ¹°úÇбâ¼ú¿ø(kaist)¿¡¼ óÀ½ ½ÅÀÔ»ýÀ» »ó´ë·Î C¾ð¾î³ª ÀÚ¹Ù ´ë½Å ÀÌ pythonÀ» ¹è¿ì°Ô²û ÇÏ°í ÀÖÀ¸³ª Çлýµé »çÀÌ¿¡¼´Â "¾Ç¸¶ÀÇ ¾ð¾î"·Î ÅëÇÑ´Ù.
(Ãâó:À§Å°¹é°ú)
¿äÁò ÆÄÀ̽㿡 °ü½ÉÀÌ »ý°Ü¼, Çѹø À§Å°¹é°ú ³»¿ëÀ» ÀϺΠ¿Ã·È½À´Ï´Ù.
±âº»Àû ¹®¹ýÀº c¾ð¾î¿¡¼ °¡Á®¿Ô´Ù°í ÇÏ´Ï, c¾ð¾î¸¦ °øºÎÇÑ ´ÙÀ½¿¡ Çѹø °øºÎÇغ¸°í ½Í³×¿ä.(6°³¿ù¿¡ c¾ð¾î °øºÎÇÏ°í ÀÖ´Â 1ìÑ)
ps. ±Ùµ¥ ¿Ö ¾Ç¸¶ÀÇ ¾ð¾îÀϱî¿ä? |
Hit : 7437 Date : 2010/08/19 02:39
|