ÆÞÀº ÅØ½ºÆ®, ÆÄÀÏ, ÇÁ·Î¼¼½º¸¦ ¾ÆÁÖ ½±°Ô ´Ù·ç°Ô ÇØÁÖ´Â ¾ð¾îÀÔ´Ï´Ù. ±âÁ¸¿¡ C ¾ð¾î³ª ½©(shell) ÇÁ·Î±×·¡¹ÖÀ» ÅëÇØ (»ó´çÈ÷ ¾î·Æ°Ô) ÇØ°áÇØ ³Â´ø ¸¹Àº ÀϵéÀÌ ÆÞÀ» »ç¿ëÇÔÀ¸·Î½á ÈξÀ °£¼ÒÇϸ鼵µ ½¬¿î ¹æ½ÄÀ¸·Î ÀÌ·ç¾îÁö°Ô µÇ¾úÁÒ.
ÃÖÃÊ ÆÞÀº data reduction language·Î ¾²ÀÏ ¸ñÀûÀ¸·Î ¸¸µé¾î Á³´Âµ¥¿ä, ¿©·¯ Á¾·ùÀÇ ÆÄÀÏÀ» ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î °Ë»öÇϰųª Å« Å©±âÀÇ ÅØ½ºÆ®¸¦ È¿À²ÀûÀ¸·Î °Ë»ö, ¶Ç´Â ´ÙÀ̳»¹Í µ¥ÀÌŸ¸¦ ¸¸µé¾î ³»±â À§ÇÑ ¸í·É¾î¸¦ °¡µ¿ÇѴٰųª ±×·¸°Ô ¸ðÀº µ¥ÀÌŸ¸¦ ¹ÙÅÁÀ¸·Î Æ÷¸ÅÆÃµÈ ·¹Æ÷Æ®¸¦ ¼Õ½±°Ô ¸¸µé¾î ³¾ ¸ñÀûÀ¸·Î ±âȹµÈ °ÍÀ̾ú½À´Ï´Ù. ±×¸®°í ÆÞÀº ±× ¸ñÀûÀ» ÈǸ¢ÇÏ°Ô ´Þ¼ºÇØ ÁÖ¾úÁÒ. - ÆÐÅÏ ¸ÅĪ(pattern matching)À̶óµçÁö, ÅØ½ºÆ®¸¦ ´Ù·ç´Â °Í¿¡ ÀÖ¾î¼ ±×·± ¸ñÀûÀ» À§ÇØ ¾º¿©Áø C ÇÁ·Î±×·¥º¸´Ù ÈξÀ ¿ùµîÇÑ °á°ú¸¦ µå¹°Àó°Ô º¸¿© ÁÖ¾ú´ø °ÍÀÔ´Ï´Ù.
ÇÏÁö¸¸ ÆÞÀÌ °³¹ßµÇ¾î °¡¸é¼ ÅØ½ºÆ®´Â ¹°·ÐÀÌ°í ÆÄÀÏÀ» ½±°Ô ´Ù·ê¼ö ÀÖ°Ô ÇØÁÖ´Â ¾ð¾î·Îµµ ¼ºÀåÇØ °¬´Âµ¥¿ä. ÆÄÀÏ ³»¿ë°ú´Â º°µµ·Î ÆÄÀÏ ±× ÀÚü¸¦ ´Ù·ç°Ô ÇØ ÁشٵçÁö, ÆÄÀÏÀÇ À§Ä¡¸¦ À̵¿ÇÑ´ÙµçÁö, À̸§À» ¹Ù²Û´ÙµçÁö, ÆÛ¹Ì¼Ç(permission)À» ¹Ù²Û´ÙµçÁö µîÀÇ ÀÛ¾÷ÀÌ ÆÞÀ» ÅëÇØ ¾ÆÁÖ ½±°Ô °¡´ÉÇØÁö°Ô µÈ °ÍÀÔ´Ï´Ù.
¶ÇÇÑ ÆÞÀº ÇÁ·Î¼¼½º¸¦ ´Ù·ç´Â µ¥¿¡µµ ¸Å¿ì Æí¸®ÇÑ ¾ð¾î·Îµµ ÀÚ¸®Àâ½À´Ï´Ù. ÇÁ·Î¼¼½º¸¦ ¸¸µé°Å³ª Á×ÀÌ´Â °Í, ÇÁ·Î¼¼½º »çÀÌÀÇ µ¥ÀÌŸ È帧À» Á¶ÀýÇÏ´Â °Í, ÀÔ·ÂÀ» Àüó¸®(preprocess)Çϰųª Ãâ·ÂÀ» ÈÄó¸®(postprocess)ÇÏ´Â °Í, ±×¸®°í ÇÁ·Î¼¼½º¿¡ ¹®Á¦°¡ »ý±ä °æ¿ì Á¤¸®ÇÏ´Â ±â´É µîÀÌ ÆÞÀ» ÅëÇØ ½±°Ô °¡´ÉÇß´ø °ÍÀÔ´Ï´Ù.
ÆÞÀº ³×Æ®¿öÅ· ¾ð¾î·Îµµ ¸í¼ºÀ» ¾ò½À´Ï´Ù. ±×°Ç ¼ÒÄÏ(socket)À» ÅëÇØ¼ ´Ù¸¥ ¸Ó½®¿¡ ÀÖ´Â ´Ù¸¥ ÇÁ·Î¼¼½º¿Í Ä¿¹Â´ÏÄÉÀ̼ÇÀ» ÇÏ´Â °ÍÀÌ ÆÞÀ» ÅëÇØ °¡´ÉÇ߱⠶§¹®ÀÔ´Ï´Ù.
¹°·Ð ÀÌ·± °ÍµéÀº C ¾ð¾î³ª ´Ù¸¥ ½© ÇÁ·Î±×·¡¹ÖÀ» ÅëÇØ¼µµ °¡´ÉÇÕ´Ï´Ù. ÇÏÁö¸¸ ±×·¸°Ô ¾ïÁö·Î ¸¸µé¾î ³½ ¼Ö·ç¼ÇÀº ¸¸µé±â°¡ ¾î·Á¿üÀ» »Ó¸¸ ¾Æ´Ï¶ó ³À⽺·¯¿öÁö±â ½¬¿ü½À´Ï´Ù. C ¾ð¾î·Î´Â ½©·Î ½±°Ô ÇÒ ¼ö ÀÖ´Â ÀÏÀ» ÇϱⰡ ±î´Ù·Î¿Ô°í, ¿ªÀ¸·Î ½©Àº ¶Ç C ¾ð¾î·Î ½±°Ô µÇ´Â ÀÛ¾÷À» ÇϱⰡ ¾î·Á¿ü±â ¶§¹®ÀÔ´Ï´Ù. ÆÞÀº ¹Ù·Î ÀÌ ¾çÀÚ°£ÀÇ Æ´À»(»ó´çÈ÷ Å« °£°ÝÀ̾úÁÒ.) ÈǸ¢ÇÏ°Ô ¸Þ²Ù¸ç ¾çÂÊ ¾ð¾î¿¡¼ °¡´ÉÇÑ ¸ðµç ÀÛ¾÷µéÀ» ÇÑ Àå¼Ò¿¡¼ ½±°Ô ÇÒ ¼ö ÀÖ´Â ±æÀ» ÅÍ ÁÝ´Ï´Ù. °á±¹ ÆÞÀº ½© ÇÁ·Î±×·¡¹Ö°ú C ÇÁ·Î±×·¡¹ÖÀÇ °¡±³ ¿ªÇÒÀ» ÇÑ °ÍÀÔ´Ï´Ù.
´Ù¸¥ ÇÑ ÆíÀ¸·Î, ÆÞÀ» °øºÎÇÔÀ¸·Î½á C ¾ð¾î¸¦ ¹è¿ì´Â µ¥µµ ¸¹Àº ½ÇÁ¦ÀûÀÎ µµ¿òÀ» ¹ÞÀ» ¼ö ÀÖ´Â °Ô »ç½ÇÀÔ´Ï´Ù. C ¾ð¾î¸¦ ¹è¿ì´Â °Í ÀÚü°¡ ¸ñÀûÀÌ´õ¶óµµ ±×·¸½À´Ï´Ù. ±×¸®°í C ¾ð¾î¸¦ Àß ¾Ë°í ÀÖ´Â »ç¶÷À̶ó¸é ÆÞÀ» ¹è¿ì´Â °ÍÀº ´õ¿í ½¬¿î ÀÏÀÌ µÉ °Ì´Ï´Ù. µÎ ¾ð¾î´Â ¸Å¿ì ºñ½ÁÇÑ ±¸Á¶¸¦ °®°í Àֱ⠶§¹®ÀÔ´Ï´Ù. ±×¸®°í ÆÞÀº, ½©À» ÅëÇØ ½ÇÇàÇÒ ¼ö ÀÖ´Â ¸¹Àº À¯´Ð½º À¯Æ¿¸®Æ¼¿Í °øÅëÁ¡ÀÌ ¸¹¾Ò±â ¶§¹®¿¡, ÆÞ°ú À¯´Ð½º¸¦ ÇÔ²² °øºÎÇÏ´Â °ÍÀº ¼·Î¼·Î ¸¹Àº µµ¿òÀ» ÁÖ°Ô µË´Ï´Ù.
¾î¶² ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ »õ·Î¿î »ç°í ¹æ½ÄÀ» °¡¸£ÃÄ ÁÖÁö ¾Ê´Â´Ù¸é ±× ¾ð¾î´Â ¹è¿ï °¡Ä¡°¡ ¾ø´Ù´Â ¾ê±â°¡ ÀÖ½À´Ï´Ù. ¾Æ¸¶µµ ±× ±ÔÄ¢ÀÇ À¯ÀÏÇÑ ¿¹¿Ü°¡ ÆÞÀÌ ¾Æ´Ò±î ÇÕ´Ï´Ù. ¿Ö³ÄÇÏ¸é ÆÞÀº À¯´Ð½ºÀÇ ¿©·¯ ÆÄÆ®·ÎºÎÅÍ ±× ¹ÙÅÁÀ» ÀÌ·ç´Â öÇÐÀ» Â÷¿ëÇØ ¿À¸é¼ °³¹ßµÇ¾î ¿Ô±â ¶§¹®ÀÔ´Ï´Ù. ÆÞÀ» ÁÁ¾ÆÇÏ´Â »ç¶÷¿¡°Ô ÆÞÀº, Practical extraction report languageÀÏ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ÆÞÀ» »ç¶ûÇÏ´Â »ç¶÷¿¡°Ô´Â, Pathologically eclectic rubbish listerÀÔ´Ï´Ù. ±×¸®°í ¾î¶² ÀÏÀ» ÇÏ´Â µ¥´Â ¿ÀÁ÷ ÇÑ °¡Áö ¹æ¹ý¹Û¿¡ ¾ø´Ù°í ¹Ï°í ÀÖ´Â ¹Ì´Ï¸Ö¸®½ºÆ®µéÀÌ º¼ ¶§ ÆÞÀº Çѽɽº·¯¿ï Á¤µµ·Î µ¿¾î¹Ýº¹ÀûÀÌ°í ´Ù¸¥ °Íµé·ÎºÎÅÍ º£²¸¿Â °Íó·³ º¸ÀÏ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ¾î·µç, À¯´Ð½º Åø¹Ú½º ±âÀú¿¡ ±ò·ÁÀÖ´Â '¹Ì´Ï¸Ö¸®Áò öÇÐ'(minimalistic)À» ½É°¢ÇÏ°Ô À§¹ÝÇÏ´Â °ÍÀ» ÅëÇØ ÆÞÀº À¯´Ð½º »ó¿¡¼ Áß¼Ò ±Ô¸ðÀÇ ÀÛ¾÷À» ó¸®ÇÏ´Â ´ëÇ¥ÀûÀÎ Åø·Î ¶° ¿Ã¶úÀ¸¸ç, °á±¹ À¯´Ð½º Åø¹Ú½º¿Í ¾ÆÁÖ Àß ¾î¿ï¸®´Â ÇüÅ·ΠÁ¸ÀçÇÏ°Ô µÇ¾ú½À´Ï´Ù. ÆÞÀº ¸¹Àº »õ·Î¿î ÅøÀ» âÁ¶ÇØ ³¾ ¼ö ÀÖ´Â ÀÛ¾÷´ë·Î¼ ÀÚ¸®¸Å±èÇÏ°Ô µÈ °ÍÀÔ´Ï´Ù.
ÆÞÀº ¿©·¯ °¡Áö Ãø¸é¿¡¼ ´Ü¼øÇÑ ¾ð¾îÀÔ´Ï´Ù. µ¥ÀÌŸ ŸÀÔÀ̳ª ±¸Á¶¸¦ ¹è¿ì±â ½±°í »ç¿ëÇϱ⵵ ¿ëÀÌÇÏ°Ô ¸¸µé¾îÁ® ÀÖ½À´Ï´Ù. Àß ÀÛ¼ºµÈ ÆÞ ÄÚµå´Â °¡º±°Ô Àо´Â °Í¸¸À¸·Îµµ ±× ±â´ÉÀ» ½±°Ô ÆÄ¾ÇÇÒ ¼ö ÀÖÀ» Á¤µµÀÔ´Ï´Ù. ÆÞ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ´Â °ÍÀº Ưº°ÇÑ ¿ä¼ú ÁÖ¹® °°Àº °ÍÀ» ¸ô¶óµµ °¡´ÉÇÕ´Ï´Ù. ±×³É º¸ÅëÀÇ ½© ½ºÅ©¸³Æ®Ã³·³ ÆÞ ÇÁ·Î±×·¥À» ½ÇÇà½Ãų ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. ½ÉÁö¾î ÆÞ¿¡ ´ëÇÑ ¸ðµç °ÍÀ» ¸ð¸£°í¼µµ ¾ó¸¶µçÁö À¯¿ëÇÑ ÇÁ·Î±×·¥À» ¸¸µé ¼ö ÀÖ´Â °ÍÀÌ ¹Ù·Î ÆÞÀÔ´Ï´Ù.
¿©·¯ °¡Áö Ãø¸é¿¡¼ ´Ü¼øÇϸ鼵µ ÇÑ ÆíÀ¸·Î ÆÞÀº ¸Å¿ì dzºÎÇÑ ¾ð¾îÀ̱⵵ ÇÕ´Ï´Ù. ¹è¿ï·Á°í¸¸ ÇÑ´Ù¸é ¸¹Àº ¹è¿ï°Å¸®°¡ ÀÖ½À´Ï´Ù. ÆÞ·Î ÇÒ ¼ö ÀÖ´Â ¸ðµç °ÍÀ» ´Ù ¹è¿ì·Á¸é »ó´çÇÑ ½Ã°£À» µé¿©¾ß ÇÕ´Ï´Ù¸¸, ´õ ±î´Ù·Î¿î ±â´ÉÀÌ ÇÊ¿äÇÑ ¼ø°£¿¡ ÆÞÀÇ Ç³ºÎÇÑ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº Áñ°Å¿î ÀÏÀÔ´Ï´Ù.
À§¿¡¼ ÆÞÀÌ C³ª ½© ÇÁ·Î±×·¡¹ÖÀ¸·ÎºÎÅÍ ¸¹Àº ±â´ÉµéÀ» ºô¾î¿Ô´Ù°í Çß½À´Ï´Ù. ´Ù¸¥ ÇÑÆíÀ¸·Î ÆÞÀº sed³ª awkÀÇ strict supercase¸¦ °®°í Àֱ⵵ ÇÕ´Ï´Ù. »ç½Ç, ÆÞ¿¡´Â ¿À·¡µÈ sed , awk ÇÁ·Î±×·¥À» º¯È¯ÇÒ ¼ö ÀÖ´Â ¹ø¿ª±â(translator)°¡ Àֱ⵵ ÇÕ´Ï´Ù. ±×°É »ç¿ëÇØ¼ À̵é ÇÁ·Î±×·¥µéÀ» ÆÞ ½ºÅ©¸³Æ®·Î ÀüȯÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ¹Ì Àß ¾Ë°í ÀÖ´Â ±â´ÉµéÀÌ ÆÞ¿¡¼´Â ¾î¶»°Ô ¾²ÀÌ´ÂÁö ½±°Ô »ìÆìº¼ ¼ö ÀÖ½À´Ï´Ù.
À̿ܿ¡µµ ¸¹Àº »ç¶÷µéÀÌ ÆÞÀ» ÁÁ¾ÆÇÏ´Â ´Ù¸¥ ÀÌÀ¯µéÀÌ ÀÖ½À´Ï´Ù. ¸¹Àº À¯´Ð½º À¯Æ¿¸®Æ¼´Â ¹®¼ÈµÇÁö ¾ÊÀº »ç½Ç»óÀÇ ÇѰ谡 ÀÖ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ¿¹¸¦ µé¾î, À¯´Ð½º À¯Æ¿¸®Æ¼µéÀº ¸Å¿ì ±ä ¶óÀÎÀ» Á¦´ë·Î ó¸®ÇÏÁö ¸ø ÇѴٰųª ¹ÙÀ̳ʸ® µ¥ÀÌŸ¸¦ ¸ÔÀÌ¸é ¿¡·¯¸¦ ÀÏÀ¸Å°´Â µîÀÇ ¹®Á¦Á¡ÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ À¯´Ð½º À¯Æ¿¸®Æ¼µéÀÇ ÇѰè´Â ±×°ÍÀÌ C ¾ð¾î·Î ¾º¿©Á³´Ù´Â Á¡¿¡¼ ºñ·ÔµÈ °æ¿ì°¡ »ó´çÈ÷ ¸¹½À´Ï´Ù. ÆÞÀº ±×·± ÇѰ踦 °®°í ÀÖÁö ¾Ê½À´Ï´Ù. ÁÙÀ̳ª ¹è¿À» ¿øÇÏ´Â ´ë·Î ´Ã¸± ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó, ¼ºê·çƾÀÇ ¸®Ä¿Á¯(recursion) ¿ª½Ã ¿øÇÏ´Â ´ë·Î ±í°Ô µé¾î°¥ ¼ö ÀÖ½À´Ï´Ù. º¯¼ö À̸§ ±æÀÌ ¿ª½Ã ¾Æ¹« Á¦ÇÑÀÌ ¾ø½À´Ï´Ù. ¹ÙÀ̳ʸ® µ¥ÀÌŸ°¡ ¹®Á¦¸¦ ÀÏÀ¸Å°Áöµµ ¾Ê½À´Ï´Ù. ÇØ½¬·Î ¸¸µç ÇØ½¬ Å×À̺íÀº ¼º´É¿¡ ÁöÀåÀ» ÁÖÁö ¾Ê´Â ÇÑ ¹«ÇÑÈ÷ È®ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ±×·± °ÍµéÀ» DBM ÆÄÀÏÀ̶ó°í ÇÏ´Â µ¥ÀÌŸº£À̽º ÆÄÀÏ¿¡ ÀúÀåÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
¶Ç´Â ´õ ¾ÈÀüÇÑ ÇÁ·Î±×·¥À» ¸¸µé±â À§ÇØ ÆÞÀ» ¹è¿ì·Á ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. µ¥ÀÌŸ È帧 ÃßÀû ¹ÌÄÉ´ÏÁòÀ» ÅëÇØ, ÆÞÀº ¾î¶² µ¥ÀÌŸ°¡ ¾ÈÀüÇÏÁö ¾ÊÀº ¼Ò½º·ÎºÎÅÍ ¿Ô´ÂÁö¸¦ ¾Ë ¼ö ÀÖ°í, ±×·ÎºÎÅÍ À§ÇèÇÑ ÀÛ¾÷ÀÌ ¼öÇàµÇ´Â °ÍÀ» Â÷´ÜÇÕ´Ï´Ù. ½Ã½ºÅÛ °ü¸®ÀÚ¶ó¸é ÆÞÀÇ ÀÌ·± Ư¡À» ¾ÆÁÖ °í¸¿°Ô »ý°¢ÇÒ °ÍÀÔ´Ï´Ù.
ÆÞÀÌ ¸Å¿ì ºü¸¥ ½Ã°£ ³»¿¡ ÇÁ·Î±×·¥À» ¿Ï¼ºÇÒ ¼ö ÀÖ´Ù´Â °Í¿¡ ²ø¸± ¼öµµ ÀÖ½À´Ï´Ù. ÆÞÀº ÀÎÅÍÇÁ¸®Æ¼µå ½ºÅ©¸³Æ® ¾ð¾îÀ̱⠶§¹®¿¡, ÇÁ·Î±×·¥¿¡ ¹®Á¦°¡ »ý±â´Â °æ¿ì Áï°¢ ¹ÝÀÀÀ» º¸ÀÔ´Ï´Ù. ÆÞ¿¡´Â ÆÞÀÇ ¹®¹ýÀ» ÀÌÇØÇÏ´Â(ÆÞ·Î ¾º¿©Á³±â ¶§¹®¿¡) ±âº»À¸·Î ÀåÂøµÈ symbolic debugger°¡ ÀÖ½À´Ï´Ù.
»ç¶÷µéÀº º¸Åë ÆÞÀ» "½Ã½ºÅÛ °ü¸®ÀÚ ¾ð¾î"¶ó°íµé ÇÕ´Ï´Ù. ½Ã½ºÅÛ °ü¸®ÀÚµéÀÌ ÁÖ·Î ÆÞ¿¡ ´ëÇØ¼ ¸¹Àº ¾ê±â¸¦ Çϱ⠶§¹®ÀÏ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ¿ì¸®°¡ º¸±â¿¡ ÆÞÀº ÈξÀ ´õ ³ÐÀº ºÐ¾ß¿¡¼ ¸Å·ÂÀûÀ¸·Î ¾²ÀÏ ¼ö ÀÖ´Â ¾ð¾îÀÔ´Ï´Ù.
