2.2. ¾î¼Àºí¸®¸¦ »ç¿ëÇÏÁö ¾Ê´Â ¹æ¹ý

2.2.1. È¿À²ÀÌ ³ôÀº Äڵ带 »ý¼ºÇϱâ À§ÇÑ ÀϹÝÀûÀÎ ÀýÂ÷

´º½º±×·ì comp.compilers ÀÇ Charles Fiterman ÀÌ »ç¶÷ÀÌ ¼öÀÛ¾÷ÇÑ ¾î¼Àºí¸® ÄÚµå¿Í ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ ¾î¼Àºí¸® Äڵ带 ºñ±³Çؼ­ ÇÑ ¸»À» ÀοëÇϰڴÙ.

            »ç¶÷ÀÌ ¼öÀÛ¾÷ÇÑ Äڵ尡 ¾ðÁ¦³ª ´õ ¿ì¼öÇÑ ¼º´ÉÀ» º¸ÀδÙ. ÀÌÀ¯´Â
            »ç¶÷Àº ¸ÕÀú, °í¼öÁØÀÇ ¾ð¾î·Î Àüü ÇÁ·Î±×·¥À» ¸¸µç´Ù.
            ±×¸®°í, ±×·¸°Ô Çؼ­ »ý¼ºÇÑ ÄÚµåÀÇ ½Ã°£À» Àâ¾Æ¸Ô´Â µî ºñÈ¿À²ÀûÀΠºÎºÐÀ» Ã£¾Æ³½´Ù.
            ±×¸®°í³ª¼­, ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ ¾î¼Àºí¸® Äڵ带 ÀÚ½ÅÀÌ ¼öÁ¤ÇÑ È¿À²ÀûÀ̰í ÀûÀº ÄÚµå·Î ´ëüÇÑ´Ù.
            ¸¶Áö¸·À¸·Î, ±â°è°¡ »ý¼ºÇÑ Äڵ忡 ºñ±³ÇØ Á¶±Ý ´õ ³ªÀº ¼º´ÉÀÇ Äڵ带 ¼öÀÛ¾÷ÇØ¼­
            ¸¸µé¾î³½´Ù.
            Àΰ£ÀÌ ¸¸µç Äڵ尡 ¾ðÁ¦³ª ´õ ¶Ù¾î³ª´Ù. Àΰ£Àº ±â°è¸¦ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
        

2.2.2. ÃÖÀûÈ­µÈ ÁÁÀº Äڵ带 »ý¼ºÇÏ´Â ÄÄÆÄÀÏ·¯¸¦ °¡Áø ¾ð¾îµé

ObjectiveCAML, SML, CommonLISP, Scheme, ADA, Pascal, C, C++, µî°ú °°Àº ¾ð¾îµéÀº ¸ðµÎ ÁÁÀº free ÄÄÆÄÀÏ·¯¸¦ °¡Áö°í ÀÖÀ¸¸ç, ±×·¯ÇÑ ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇØ¼­ »ý¼ºÇÑ ÄÚµåµéÀº ¸Å¿ì ÃÖÀûÈ­µÈ Äڵ带 ¸¸µé¾îÁØ´Ù. °Ô´Ù°¡ Á¾Á¾, ¼öÀÛ¾÷À¸·Î ¸¸µç ¾î¼Àºí¸® Äڵ庸´Ù ´õ ³ªÀº ÃÖÀûÈ­¸¦ º¸¿©Áֱ⵵ ÇÑ´Ù. ±×¿¡ ´õÇÏ¿©, ¿©·¯ºÐÀÌ º¸´Ù ³ôÀº ¼öÁØÀÇ ¼¼ºÎÀûÀÎ °Í¿¡, Áï, ¾Ë°í¸®ÁòÀ̳ª, ÇÁ·Î±×·¥ÀÇ Àüü ¼³°è¿Í °°Àº ºÎºÐ¿¡ º¸´Ù ½Å°æÀ» ¾²µµ·Ï µµ¿ÍÁØ´Ù. ±×¸®°í, ±×ó·³ ¼³°è¿Í °°Àº ºÎºÐ¿¡ º¸´Ù ½Å°æÀ» ¾¸À¸·Î½á, ÀÚÀßÇÑ, ¸î¸î ºÎºÐ¿¡¼­ÀÇ ¾à°£ÀÇ ¼öÇà¼ÓµµÀÇ ¼Õ½ÇÀº º¸´Ù ³ªÀº µðÀÚÀο¡ ÀÇÇÑ È¿°ú°¡ ÃæºÐÈ÷ »ó¼â½ÃÄÑ ÁÖ°íµµ ³²´Â´Ù. ¹°·Ð, »ó¿ëÀÇ ¾Õ¼­ ¾ð±ÞÇÑ ¾ð¾î¸¦ Áö¿øÇÏ´Â ÈǸ¢ÇÑ ÄÄÆÄÀÏ·¯µéµµ ÀÖ´Ù.

LISP, Scheme, Perl µîÀÇ ¾ð¾îÀÇ ÄÄÆÄÀÏ·¯´Â c Äڵ带 »ý¼ºÇϱ⵵ ÇÑ´Ù. ±×·¸°Ô ÇØ¼­ »ý¼ºµÈ c ÄÚµå´Â c ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ¼­ ÃÖÀûÈ­µÇ¸ç, ¼Óµµµµ ²Ï ºü¸¥ ÆíÀÌ´Ù.

2.2.3. ¿©·¯ºÐÀÇ ÄÚµåÀÇ ¼öÇà¼Óµµ¸¦ ³ôÀÌ´Â ÀϹÝÀûÀÎ ÀýÂ÷

ÄÚµåÀÇ ¼öÇà¼Óµµ¸¦ ³ôÀ̱â À§ÇØ ¿©·¯ºÐÀº ÇÁ·ÎÆÄÀÏ ÅøÀÌ °è¼ÓÀûÀ¸·Î ¼öÇ༺´ÉÀÇ º´¸ñ Çö»óÀÌ ÀϾ´Ù°í ÁöÀûÇÏ´Â ºÎºÐÀÇ Äڵ忡 ´ëÇØ¼­¸¸ ÃÖÀûÈ­ÀÇ ÀÛ¾÷À» ÇØ ÁÖ¸é µÈ´Ù.

¿©·¯ºÐÀÌ ÄÚµåÀÇ ÀϺκÐÀÌ ³Ê¹« ´À¸®´Ù´Â °ÍÀ» ¾Ë¾ÆÃ¤¸é, ´ÙÀ½°ú °°Àº Á¶Ä¡¸¦ ÃëÇØ º¸¶ó

¸¶Áö¸·À¸·Î, ¿©·¯ºÐÀÌ ¾î¼Àºí¸® ÄÚµåÀÇ ÀÛ¼ºÀ» ¸¶¹«¸®Çϱâ Àü¿¡ »ý¼ºµÈ ÄÚµåµéÀ» °Ë»çÇØ¼­ ÃÖÀûÈ­µÇÁö ¾ÊÀº »óÅ·ΠÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ Äڵ尡 Á¤¸» ¹®Á¦°¡ µÇ´ÂÁö¸¦ È®ÀÎÇØ º¸¶ó. ´ëºÎºÐ, ±×·¸Áö ¾ÊÀ» °ÍÀÌ´Ù. ¿ÀÈ÷·Á ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇØ ÁØ Äڵ尡 ¿©·¯ºÐÀÌ Á÷Á¢ ÀÛ¼ºÇÑ Äڵ庸´Ù ´õ ³ªÀ» ¼öµµ ÀÖ´Ù. ƯÈ÷, ¿À´Ã³¯ÀÇ º¹ÀâÇÑ, multi-pipelined ¾ÆÅ°ÅØÃÄ ±â¹ÝÀÇ Çϵå¿þ¾î¸¦ »ç¿ëÇϴ ȯ°æ¿¡¼­ÀÇ ÇÁ·Î±×·¥ÀÏ °æ¿ì¿¡´Â ´õ¿í ±×·¯ÇÏ´Ù.

ÇÁ·Î±×·¥¿¡¼­ ½Ã°£À» ¸¹ÀÌ Àâ¾Æ¸Ô´Â ºÎºÐÀº Á¤¸» ±×·¯Çѵ¥(?-¹ø¿ªÀÌ ÀÌ»óÇÕ´Ï´Ù...-_-;) ¿Ö³ÄÇϸé, ¿À´Ã³¯ÀÇ Ãʰí¼Ó :-)ÀÇ ÇÁ·Î¼¼¼­µé¿¡¼­´Â ½ÇÇà ½Ã°£À» ´ÊÃß´Â ÁÖ ¿øÀÎÀ¸·Î, ¸Þ¸ð¸® Á¢±Ù(¸Þ¸ð¸®¿¡ Á¢±ÙÇϴµ¥ °É¸®´Â ½Ã°£Àº ·¹Áö½ºÅÍ¿¡ Á¢±ÙÇÏ´Â µ¥ °É¸®´Â ½Ã°£ÀÇ ¸î¹è¿¡¼­ ¸î½Ê¹è´Â ´õ ±æ´Ù), ij½¬ÀÇ ºÎÀç, TLB (¿ªÀÚÁÖ : Transtate lookaside buffer:ÀÎÅÚ °è¿­ÀÇ ÇÁ·Î¼¼¼­¿¡¼­ ¸Þ¸ð¸® ÁÖ¼ÒÀÇ »óÈ£º¯È¯À» º¸´Ù »¡¸® Çϱâ À§ÇØ descriptor ¸¦ ÀúÀåÇϴ ij½¬¿Í ºñ½ÁÇÑ °Í) ÀÇ ºÎÀç, ÆäÀÌÁö ÆúÆ® µîÀÇ ¿øÀÎÀÌ ÀÖ´Ù. µû¶ó¼­, ·¹Áö½ºÅ͸¦ ÃÖÀûÈ­ Çϴ°ÍÀº Á¡Â÷ º° ¾µ¸ð°¡ ¾ø¾îÁö°Ô µÇ¾ú´Ù. ´ë½Å, ÀÚ·á ±¸Á¶¿Í ¾²·¹µùÀÇ Á¶ÀýÀ» ÅëÇØ¼­ ¸Þ¸ð¸®¿¡ Á¢±ÙÇϴ Ƚ¼ö¸¦ ÁÙÀÌ´Â °ÍÀÌ º¸´Ù ³ªÀº ¼Óµµ¸¦ ¾ò´Âµ¥ ´õ È¿°úÀûÀÌ µÇ¾ú´Ù. ¾Æ¸¶µµ, ¿ÏÀüÈ÷ ´Ù¸¥ ¹æÇâ¿¡¼­ÀÇ Á¢±ÙÀÌ µµ¿òÀÌ µÉÁöµµ ¸ð¸¥´Ù.

2.2.4. ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ Äڵ忡 ´ëÇÑ °íÂû

ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇØ ³½ ¾î¼Àºí¸® Äڵ带 °íÂûÇØ º¸¾Æ¾ß ÇÒ ¸¹Àº ÀÌÀ¯°¡ ÀÖ´Ù. ¿©·¯ºÐÀÌ ÇØ¾ß ÇÒ ÀÏÀº

°á·ÐÀûÀ¸·Î, ¾î¼Àºí¸®·Î ÄÚµùÇϴ ǥÁØ(?)ÀûÀÎ ¹æ¹ýÀº ¿©·¯ºÐÀÇ ÄÄÆÄÀÏ·¯¿¡(gcc ÀÏ °ÍÀ̶ó°í °¡Á¤Çϰí..) -S ¿É¼ÇÀ» ÁÖ°í c µîÀ¸·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇØ¼­ »ý¼ºµÈ ¾î¼Àºí¸® Äڵ带 »ç¿ëÇØ¼­ ÇÁ·Î±×·¥À» ¸¸µå´Â °ÍÀÌ´Ù. ´ëºÎºÐÀÇ À¯´Ð½º °è¿­¿¡¼­ »ç¿ëµÇ´Â ÄÄÆÄÀÏ·¯·Î °¡´ÉÇÏ´Ù. gcc ¸¦ »ç¿ëÇÒ °æ¿ì, -fverbose-asm ¿É¼Çµµ ÁØ »óÅ¿¡¼­ ÄÄÆÄÀÏÇÑ´Ù¸é, º¸´Ù ¾Ë±â½¬¿î ¾î¼Àºí¸® Äڵ带 »ý»êÇÒ °ÍÀÌ´Ù. ¹°·Ð, ÈǸ¢ÇÑ(!) ¾î¼Àºí¸® Äڵ带 ¾ò±â¸¦ ¿øÇÑ´Ù¸é, ¿©·¯ºÐÀÌ Æò¼Ò¿¡ »ç¿ëÇÏ´ø ÃÖÀûÈ­ ¿É¼Ç°ú ÈùÆ®¸¦ ÄÄÆÄÀÏ·¯¿¡ ÁÖ´Â °ÍÀ» ÀØÁö ¸»¶ó.