´º½º±×·ì comp.compilers ÀÇ Charles Fiterman ÀÌ »ç¶÷ÀÌ ¼öÀÛ¾÷ÇÑ ¾î¼Àºí¸® ÄÚµå¿Í ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ ¾î¼Àºí¸® Äڵ带 ºñ±³Çؼ ÇÑ ¸»À» ÀοëÇϰڴÙ.
»ç¶÷ÀÌ ¼öÀÛ¾÷ÇÑ Äڵ尡 ¾ðÁ¦³ª ´õ ¿ì¼öÇÑ ¼º´ÉÀ» º¸ÀδÙ. ÀÌÀ¯´Â
»ç¶÷Àº ¸ÕÀú, °í¼öÁØÀÇ ¾ð¾î·Î Àüü ÇÁ·Î±×·¥À» ¸¸µç´Ù.
±×¸®°í, ±×·¸°Ô ÇØ¼ »ý¼ºÇÑ ÄÚµåÀÇ ½Ã°£À» Àâ¾Æ¸Ô´Â µî ºñÈ¿À²ÀûÀÎ ºÎºÐÀ» ã¾Æ³½´Ù.
±×¸®°í³ª¼, ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ ¾î¼Àºí¸® Äڵ带 ÀÚ½ÅÀÌ ¼öÁ¤ÇÑ È¿À²ÀûÀ̰í ÀûÀº ÄÚµå·Î ´ëüÇÑ´Ù.
¸¶Áö¸·À¸·Î, ±â°è°¡ »ý¼ºÇÑ Äڵ忡 ºñ±³ÇØ Á¶±Ý ´õ ³ªÀº ¼º´ÉÀÇ Äڵ带 ¼öÀÛ¾÷ÇØ¼
¸¸µé¾î³½´Ù.
Àΰ£ÀÌ ¸¸µç Äڵ尡 ¾ðÁ¦³ª ´õ ¶Ù¾î³ª´Ù. Àΰ£Àº ±â°è¸¦ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
ObjectiveCAML, SML, CommonLISP, Scheme, ADA, Pascal, C, C++, µî°ú °°Àº ¾ð¾îµéÀº ¸ðµÎ ÁÁÀº free ÄÄÆÄÀÏ·¯¸¦ °¡Áö°í ÀÖÀ¸¸ç, ±×·¯ÇÑ ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇØ¼ »ý¼ºÇÑ ÄÚµåµéÀº ¸Å¿ì ÃÖÀûÈµÈ Äڵ带 ¸¸µé¾îÁØ´Ù. °Ô´Ù°¡ Á¾Á¾, ¼öÀÛ¾÷À¸·Î ¸¸µç ¾î¼Àºí¸® Äڵ庸´Ù ´õ ³ªÀº ÃÖÀûȸ¦ º¸¿©Áֱ⵵ ÇÑ´Ù. ±×¿¡ ´õÇÏ¿©, ¿©·¯ºÐÀÌ º¸´Ù ³ôÀº ¼öÁØÀÇ ¼¼ºÎÀûÀÎ °Í¿¡, Áï, ¾Ë°í¸®ÁòÀ̳ª, ÇÁ·Î±×·¥ÀÇ Àüü ¼³°è¿Í °°Àº ºÎºÐ¿¡ º¸´Ù ½Å°æÀ» ¾²µµ·Ï µµ¿ÍÁØ´Ù. ±×¸®°í, ±×ó·³ ¼³°è¿Í °°Àº ºÎºÐ¿¡ º¸´Ù ½Å°æÀ» ¾¸À¸·Î½á, ÀÚÀßÇÑ, ¸î¸î ºÎºÐ¿¡¼ÀÇ ¾à°£ÀÇ ¼öÇà¼ÓµµÀÇ ¼Õ½ÇÀº º¸´Ù ³ªÀº µðÀÚÀο¡ ÀÇÇÑ È¿°ú°¡ ÃæºÐÈ÷ »ó¼â½ÃÄÑ ÁÖ°íµµ ³²´Â´Ù. ¹°·Ð, »ó¿ëÀÇ ¾Õ¼ ¾ð±ÞÇÑ ¾ð¾î¸¦ Áö¿øÇÏ´Â ÈǸ¢ÇÑ ÄÄÆÄÀÏ·¯µéµµ ÀÖ´Ù.
LISP, Scheme, Perl µîÀÇ ¾ð¾îÀÇ ÄÄÆÄÀÏ·¯´Â c Äڵ带 »ý¼ºÇϱ⵵ ÇÑ´Ù. ±×·¸°Ô ÇØ¼ »ý¼ºµÈ c ÄÚµå´Â c ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ¼ ÃÖÀûȵǸç, ¼Óµµµµ ²Ï ºü¸¥ ÆíÀÌ´Ù.
ÄÚµåÀÇ ¼öÇà¼Óµµ¸¦ ³ôÀ̱â À§ÇØ ¿©·¯ºÐÀº ÇÁ·ÎÆÄÀÏ ÅøÀÌ °è¼ÓÀûÀ¸·Î ¼öÇ༺´ÉÀÇ º´¸ñ Çö»óÀÌ ÀϾٰí ÁöÀûÇÏ´Â ºÎºÐÀÇ Äڵ忡 ´ëÇØ¼¸¸ ÃÖÀûÈÀÇ ÀÛ¾÷À» ÇØ ÁÖ¸é µÈ´Ù.
¿©·¯ºÐÀÌ ÄÚµåÀÇ ÀϺκÐÀÌ ³Ê¹« ´À¸®´Ù´Â °ÍÀ» ¾Ë¾ÆÃ¤¸é, ´ÙÀ½°ú °°Àº Á¶Ä¡¸¦ ÃëÇØ º¸¶ó
¸ÕÀú, ´õ ³ªÀº ¾Ë°í¸®ÁòÀ» »ç¿ëÇϵµ·Ï Ç϶ó.
±×¸®°í ³ª¼, ±× Äڵ带 ÀÎÅÍÇÁ¸®Æ® ÇÏÁö ¸»°í, ÄÄÆÄÀÏ(!) Çϵµ·Ï Ç϶ó.
¿©·¯ºÐÀÇ ÄÄÆÄÀÏ·¯ÀÇ tweak optimization À» Ȱ¼ºÈ½ÃÄѼ ÄÄÆÄÀÏÇ϶ó.
±×¸®°í ³ª¼, ÄÄÆÄÀÏ·¯¿¡°Ô ÃÖÀûÈ ½ÃŰ´Â ¹ý¿¡ °üÇÑ ÈùÆ®¸¦ ÁÖ¾î¶ó (ÃÖÀûÈ Á¤º¸¸¦ ¸®½ºÇÁ·Î ¸¸µé°í, gcc µîÀ¸·Î µî·Ï½ÃÄѶó. ´ëºÎºÐÀÇ ÄÄÆÄÀÏ·¯¿¡´Â ¸¹Àº ¿É¼ÇÀÌ ÀÖ´Ù.) (¿ªÀÚ ÁÖ:¹ø¿ªÀÌ ³Ê¹« ¸Å²ô·´Áö ¸øÇϱº¿ä -_-;)
then give the compiler hints about how to optimize (typing information in LISP; register usage with GCC; lots of options in most compilers, etc).
±×¿Í°°ÀÌ ÇÑ´Ù¸é, ¾î¼Àºí¸® ÇÁ·Î±×·¡¹ÖÀ» ÃæºÐÈ÷ ´ë½ÅÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¸¶Áö¸·À¸·Î, ¿©·¯ºÐÀÌ ¾î¼Àºí¸® ÄÚµåÀÇ ÀÛ¼ºÀ» ¸¶¹«¸®Çϱâ Àü¿¡ »ý¼ºµÈ ÄÚµåµéÀ» °Ë»çÇØ¼ ÃÖÀûȵÇÁö ¾ÊÀº »óÅ·ΠÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ Äڵ尡 Á¤¸» ¹®Á¦°¡ µÇ´ÂÁö¸¦ È®ÀÎÇØ º¸¶ó. ´ëºÎºÐ, ±×·¸Áö ¾ÊÀ» °ÍÀÌ´Ù. ¿ÀÈ÷·Á ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇØ ÁØ Äڵ尡 ¿©·¯ºÐÀÌ Á÷Á¢ ÀÛ¼ºÇÑ Äڵ庸´Ù ´õ ³ªÀ» ¼öµµ ÀÖ´Ù. ƯÈ÷, ¿À´Ã³¯ÀÇ º¹ÀâÇÑ, multi-pipelined ¾ÆÅ°ÅØÃÄ ±â¹ÝÀÇ Çϵå¿þ¾î¸¦ »ç¿ëÇϴ ȯ°æ¿¡¼ÀÇ ÇÁ·Î±×·¥ÀÏ °æ¿ì¿¡´Â ´õ¿í ±×·¯ÇÏ´Ù.
ÇÁ·Î±×·¥¿¡¼ ½Ã°£À» ¸¹ÀÌ Àâ¾Æ¸Ô´Â ºÎºÐÀº Á¤¸» ±×·¯Çѵ¥(?-¹ø¿ªÀÌ ÀÌ»óÇÕ´Ï´Ù...-_-;) ¿Ö³ÄÇϸé, ¿À´Ã³¯ÀÇ Ãʰí¼Ó :-)ÀÇ ÇÁ·Î¼¼¼µé¿¡¼´Â ½ÇÇà ½Ã°£À» ´ÊÃß´Â ÁÖ ¿øÀÎÀ¸·Î, ¸Þ¸ð¸® Á¢±Ù(¸Þ¸ð¸®¿¡ Á¢±ÙÇϴµ¥ °É¸®´Â ½Ã°£Àº ·¹Áö½ºÅÍ¿¡ Á¢±ÙÇÏ´Â µ¥ °É¸®´Â ½Ã°£ÀÇ ¸î¹è¿¡¼ ¸î½Ê¹è´Â ´õ ±æ´Ù), ij½¬ÀÇ ºÎÀç, TLB (¿ªÀÚÁÖ : Transtate lookaside buffer:ÀÎÅÚ °è¿ÀÇ ÇÁ·Î¼¼¼¿¡¼ ¸Þ¸ð¸® ÁÖ¼ÒÀÇ »óÈ£º¯È¯À» º¸´Ù »¡¸® Çϱâ À§ÇØ descriptor ¸¦ ÀúÀåÇϴ ij½¬¿Í ºñ½ÁÇÑ °Í) ÀÇ ºÎÀç, ÆäÀÌÁö ÆúÆ® µîÀÇ ¿øÀÎÀÌ ÀÖ´Ù. µû¶ó¼, ·¹Áö½ºÅ͸¦ ÃÖÀûÈ Çϴ°ÍÀº Á¡Â÷ º° ¾µ¸ð°¡ ¾ø¾îÁö°Ô µÇ¾ú´Ù. ´ë½Å, ÀÚ·á ±¸Á¶¿Í ¾²·¹µùÀÇ Á¶ÀýÀ» ÅëÇØ¼ ¸Þ¸ð¸®¿¡ Á¢±ÙÇϴ Ƚ¼ö¸¦ ÁÙÀÌ´Â °ÍÀÌ º¸´Ù ³ªÀº ¼Óµµ¸¦ ¾ò´Âµ¥ ´õ È¿°úÀûÀÌ µÇ¾ú´Ù. ¾Æ¸¶µµ, ¿ÏÀüÈ÷ ´Ù¸¥ ¹æÇâ¿¡¼ÀÇ Á¢±ÙÀÌ µµ¿òÀÌ µÉÁöµµ ¸ð¸¥´Ù.
ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇØ ³½ ¾î¼Àºí¸® Äڵ带 °íÂûÇØ º¸¾Æ¾ß ÇÒ ¸¹Àº ÀÌÀ¯°¡ ÀÖ´Ù. ¿©·¯ºÐÀÌ ÇØ¾ß ÇÒ ÀÏÀº
ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ Äڵ尡 ¼öÀÛ¾÷À¸·Î ¸¸µç ¾î¼Àºí¸® Äڵ庸´Ù ´õ ³ªÀºÁö Á¤¸» °Ë»çÇØ º¼ °Í (¶Ç´Â, ÄÄÆÄÀÏ·¯ÀÇ ¿É¼ÇÀ» ¸Å¿ì ¼¼¹ÐÇÏ°Ô Á¶Á¤ÇØ º¼ °Í)
±×·² °æ¿ì (¿ªÀÚ ÁÖ:ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ Äڵ尡 ¸¶À½¿¡ µéÁö ¾Ê´Â´Ù´Â »ý°¢ÀÌ µé¶§) óÀ½ºÎÅÍ ¿ÏÀüÈ÷ ¼ÕÀ¸·Î ¸¸µå´Â °Í º¸´Ù ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ ¹Ù·Î ±× Äڵ带 ¼öÁ¤ÇÏ´Â °ÍÀ¸·Î ÃÖÀûÈÇ϶ó
º¸´Ù ÀϹÝÀûÀ¸·Î À̾߱âÇØ¼, ÄÄÆÄÀÏ·¯°¡ ¸¸µé¾î³½ Äڵ带 ´ÜÁö, ¿©·¯ºÐÀÇ ¾î¼Àºí¸® ·çƾ°ú ¿ÜºÎ ·çƾÀÇ ÀÎÅÍÆäÀ̽º¸¸ Á¦°øÇÏ´Â »À´ë¸¸ »ý¼ºµÈ ½ºÅÓ(stub) ÄÚµå·Î °£ÁÖÇϰí ÀÛ¾÷Ç϶ó.
(±×·² ÀÏÀº º°·Î ¾ø°ÚÁö¸¸)¿©·¯ºÐÀÇ ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ Äڵ带 µû¶ó ÀÐ¾î ³»·Á°¡¸é¼ ¹ö±×¸¦ ãµµ·Ï Ç϶ó.(track down bugs in your compiler (hopefully the rarer))
°á·ÐÀûÀ¸·Î, ¾î¼Àºí¸®·Î ÄÚµùÇϴ ǥÁØ(?)ÀûÀÎ ¹æ¹ýÀº ¿©·¯ºÐÀÇ ÄÄÆÄÀÏ·¯¿¡(gcc ÀÏ °ÍÀ̶ó°í °¡Á¤Çϰí..) -S ¿É¼ÇÀ» ÁÖ°í c µîÀ¸·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇØ¼ »ý¼ºµÈ ¾î¼Àºí¸® Äڵ带 »ç¿ëÇØ¼ ÇÁ·Î±×·¥À» ¸¸µå´Â °ÍÀÌ´Ù. ´ëºÎºÐÀÇ À¯´Ð½º °è¿¿¡¼ »ç¿ëµÇ´Â ÄÄÆÄÀÏ·¯·Î °¡´ÉÇÏ´Ù. gcc ¸¦ »ç¿ëÇÒ °æ¿ì, -fverbose-asm ¿É¼Çµµ ÁØ »óÅ¿¡¼ ÄÄÆÄÀÏÇÑ´Ù¸é, º¸´Ù ¾Ë±â½¬¿î ¾î¼Àºí¸® Äڵ带 »ý»êÇÒ °ÍÀÌ´Ù. ¹°·Ð, ÈǸ¢ÇÑ(!) ¾î¼Àºí¸® Äڵ带 ¾ò±â¸¦ ¿øÇÑ´Ù¸é, ¿©·¯ºÐÀÌ Æò¼Ò¿¡ »ç¿ëÇÏ´ø ÃÖÀûÈ ¿É¼Ç°ú ÈùÆ®¸¦ ÄÄÆÄÀÏ·¯¿¡ ÁÖ´Â °ÍÀ» ÀØÁö ¸»¶ó.