·Îº¿ ÇÁ·Î±×·¥
ÇÁ·Î±×·¥ÀÇ ÃµÀç°¡ µÇÀÚ : Richard E. Pattis Jim Roberts Mark Stehlik Àú, Á¶¹üÁØ ¿ª, ³»ÇÏÃâÆÇ»ç, 2003 (¿ø¼ : Karel the Robot: A Gentle Introduction to the Art of Programming, John Wiley & Sons, 1994), Page 1~31, 229~231
2. ±âº» ¸í·Éµé°ú °£´ÜÇÑ ÇÁ·Î±×·¥
(5) ¿¡·¯ ¹ß»ý ó¸® (Error Shutoffs)
(6) ÇÁ·Î±×·¡¹Ö ¿¡·¯ (programming Errors)
·Îº¿Àº Çö ¼¼»ó¿¡´Â Á¸ÀçÇÏÁö ¾ÊÁö¸¸ (±×°÷¿¡´Â Ȼ굵 ¾ø°í, Áß±¹½Ä ½Ä´çµµ ¾ø°í, ½ÉÆ÷´Ï ¿ÀÄɽºÆ®¶óµµ ¾ø´Ù), ±×·¯³ª ·Îº¿ÀÌ °£´ÜÇÏ°Ô ÇÒ ¼ö ÀÖ´Â Èï¹Ì·Î¿î ÀÏÀÌ ¸¹ÀÌ ÀÖ´Â ±×·± ¼¼»ó¿¡ »ì°í ÀÖ´Ù. ·Îº¿ÀÌ »ì°í ÀÖ´Â ¼¼»óÀº ·Îº¿ÀÌ À̵¿ÇÒ ¼ö ÀÖ´Â ±æÀÌ ¸ðµÎ °ÝÀÚ ¸ð¾çÀ¸·Î ¶Õ·Á ÀÖ´Ù. ±× ±æ¿¡´Â ·Îº¿ÀÌ °¨ÁöÇÒ ¼ö ÀÖ°í Á¶ÀÛÇÒ ¼ö Àִ Ưº°ÇÑ ¹°Ã¼°¡ ÀÖ´Ù.
±×¸² 1 ·Îº¿ÀÇ ¼¼»ó
[±×¸² 1] Àº ·Îº¿ÀÌ Á¸ÀçÇÏ´Â ¼¼»óÀÇ ±¸Á¶¸¦ ³ªÅ¸³»´Â ÁöµµÀÌ´Ù. ÀϹÝÀûÀ¸·Î µ¿¤ý¼¤ý³²¤ýºÏ¿¡´Â ÀÏÁ¤ °£°ÝÀ¸·Î Æ÷ÀÎÆ®°¡ Á¸ÀçÇÏ°í ¸Å¿ì ÆòÆòÇÑ ÆÇ ¸ð¾çÀ» Çϰí ÀÖ´Ù. ÀÌ ¼¼°è´Â ¼ÂÊÀ» ±âÁØÀ¸·Î ÇÏ¿©, ºÏÂÊÀ¸·Î ÇѾøÀÌ »¸ÃÄÁø º®ÀÌ ÀÖ°í, ³²ÂÊÀ» ±âÁØÀ¸·Î µ¿ÂÊÀ¸·Î ÇѾøÀÌ Âß »¸Àº º®ÀÌ ÀÖ´Ù. ÀÌ ±âÁØÀÌ µÇ´Â º®Àº ´ºÆ®·Î´Ï¾ö (Neutronium) À̶ó´Â ±úÁöÁöµµ ¾Ê°í ¶ÕÀ» ¼öµµ ¾ø´Â ±Ý¼ÓÀ¸·Î µÇ¾î ÀÖ¾î ·Îº¿ÀÌ ¼¼°èÀÇ ³¡¿¡¼ ¾Æ·¡·Î ¶³¾îÁö´Â °ÍÀ» ¸·À» ¼ö ÀÖ´Ù.
µ¿¿¡¼ ¼ÂÊÀ¸·Î »¸Àº Street ¿Í ºÏ¿¡¼ ³²À¸·Î »¸Àº Avenue °¡ ÇÑ ºí·Ï °£°ÝÀ¸·Î °è¼Ó ±³Â÷µÇ¾î ÀÖ´Ù. ¿©·¯ºÐÀÌ Street ¿Í Avenue ¸¦ ½±°Ô ±¸ºÐÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº Avenue ÀÇ 'A' ´Â ºÏÂÊÀ» ÇâÇØ »ÏÁ·ÇÏ°Ô ³ª¿Í ÀÖ°í 'V' ´Â ³²ÂÊÀ» °¡¸®Å°°í ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇϸé ÁÁ´Ù. Äڳʶõ Street ¿Í Avenue °¡ ¸¸³ª´Â ±³Â÷·Î ³ªÅ¸³½´Ù. ·Îº¿Àº ÀÌ Äڳʿ¡¸¸ À§Ä¡ÇÒ ¼ö ÀÖ´Ù. Steet ¿Í Avenue µÑ ¸ðµÎ °¢°¢ ÀÏ·Ã ¹øÈ£°¡ ¸Å°ÜÁ® ÀÖ´Ù. ù ¹øÂ° Street ¿Í ù ¹øÂ° Avenue °¡ ¸¸³ª´Â ±³Â÷Á¡À» Ãâ¹ßÁ¡ (Origin) À̶ó°í ÇÑ´Ù. Àý´ë°æ·Î (Absolute) ÀÔÀå¿¡¼ º¸¾ÒÀ» ¶§ Ãâ¹ßÁ¡Àº ù ¹øÂ° Street ¿Í ù ¹øÂ° Avenue ÀÇ ±³Â÷ÁöÁ¡ (Intersection) À» ¸»ÇÏ´Â °ÍÀÌ´Ù. ÀÌ Ãâ¹ßÁ¡À» »ó´ë°æ·Î (Relative) ÀÔÀå À§Ä¡¿Í ·Îº¿ ¼¼»óÀÇ ¹°Ã¼ÀÇ À§Ä¡¸¦ Àý´ë°æ·Î¿Í »ó´ë°æ·Î ¸ðµÎ¸¦ »ç¿ëÇÏ¿© ³ªÅ¸³¾ °ÍÀÌ´Ù.
·Îº¿ ¼¼»ó¿¡´Â µÎ Á¾·ùÀÇ ¹°Ã¼°¡ Á¸ÀçÇϴµ¥, ù ¹øÂ° ¹°Ã¼´Â ¹Ù·Î º® (Wall Section) ÀÌ´Ù. ÀÌ º® ¿ª½Ã ´ºÆ®·Î´Ï¾öÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ°í ¿øÇÏ´Â ±æÀÌ¿Í ¸ð¾çÀ¸·Î Á¦Á¶µÉ ¼ö ÀÖ´Ù. ÀÌ º®Àº Street ÄÚ³ÊÀÇ Áß°£ ÁöÁ¡¿¡ À§Ä¡ÇÏ¿© ÀÖ°í ·Îº¿ÀÌ ÇÑ Äڳʿ¡¼ ´Ù¸¥ ÄڳʷΠÀ̵¿ÇÒ ¶§ ¹æÇâÀ» °¡·Î¸·À» ¼ö ÀÖ°Ô µÇ¾î ÀÖ´Ù. ÀÌ·¸°Ô º®Àº ·Îº¿ÀÌ Á¶»çÇØ¾ß ÇÒ ¸ñÇ¥¹°À» µÑ·¯½Î°í ÀÖ´Â ÇãµéÀ̳ª »ê°ú °°Àº ¹æÇع°·Î »ý°¢ÇÒ ¼ö ÀÖ´Ù. ¹æÀ̳ª ÆÛÁñ, ±×¸®°í ´Ù¸¥ À庮À» ÀÌ º®À¸·Î ¸¸µé ¼ö ÀÖ´Ù. [±×¸² 2] ´Â º®ÀÇ ÀüÇüÀûÀÎ ¿¹¸¦ º¸¿©ÁØ´Ù.
±×¸² 2 ·Îº¿ ¼¼»ó¿¡ Á¸ÀçÇÒ ¼ö ÀÖ´Â º®µéÀÇ ¸ð¾ç
·Îº¿ÀÇ ¼¼»ó¿¡¼ º¼ ¼ö ÀÖ´Â µÎ ¹øÂ° ¹°Ã¼´Â ºñÆÛ (Beeper) ÀÌ´Ù. ÀÌ ºñÆÛ´Â Á¶±×¸¶ÇÑ ÇÃ¶ó½ºÆ½ ¿ø»Ô ¸ð¾çÀ¸·Î »ý°å°í »ß ÇÏ´Â ¼Ò¸®¸¦ ³½´Ù. À̰͵éÀº Äڳʿ¡ ³õ¿©Á® ÀÖÀ¸¸ç ·Îº¿¿¡ ÀÇÇØ¼ Áý¾îÁö°í, ¿Å°ÜÁö°í, »õ·Î¿î À§Ä¡¿¡ ³õ¿©Áú ¼ö ÀÖ´Ù. ·Îº¿ÀÌ ¼öÇàÇÏ´Â ¸î °¡Áö ÀÓ¹« ÁßÀÇ Çϳª°¡ ¹Ù·Î ÀÌ ºñÆÛ¸¦ Á¤ÇØÁø ¸ð¾ç´ë·Î Áý¾î ¿Ã¸®°Å³ª ³õ°Å³ª, ¶Ç´Â ºñÆÛ¸¦ ã°Å³ª À̵¿½ÃŰ´Â °ÍÀÌ´Ù. [±×¸² 3] Àº ºñÆÛ°¡ ³õ¿©Áö´Â ÇѰ¡Áö ¸ð¾çÀ» ³ªÅ¸³½ °ÍÀÌ´Ù.
±×¸² 3 ·Îº¿ ¼¼»óÀÇ ºñÆÛ ¹è¿ÀÇ ÇÑ °¡Áö ¿¹
ÀÚ! ÀÌÁ¦ ·Îº¿ÀÇ ¼¼°è¿¡¼ ´«À» ¶¼°í ·Îº¿ ÀÚü¿¡ °ü½ÉÀ» µ¹·Áº¸ÀÚ. ·Îº¿Àº ÀÚ½ÅÀÌ ¹Ù¶óº¸°í ÀÖ´Â ¹æÇâÀ¸·Î ÀüÁøÇÒ ¼ö ÀÖ°í ȸÀüÇÒ ¼öµµ ÀÖ´Â À̵¿ °¡´ÉÇÑ ·Îº¿ÀÌ´Ù. ·Îº¿Àº ºû, ¼Ò¸®, ¹æÇ⠱׸®°í Ã˰¢°ú °°Àº ±âº»ÀûÀÎ °¨°¢À¸·Î ±×ÀÇ ÁÖº¯¿¡ ÀÖ´Â °ÍµéÀ» °¨ÁöÇØ ³¾ ¼ö ÀÖ´Ù.
·Îº¿Àº ¾Õ, ÁÂ, ¿ì¿¡ ¼³Ä¡µÈ TV Ä«¸Þ¶ó Áß Çϳª·Î º¼ ¼öµµ ÀÖ´Ù. ÀÌ Ä«¸Þ¶óµéÀº ÀÚ½ÅÀ¸·ÎºÎÅÍ Á¤È®È÷ ¹Ý ºí·Ï ¶³¾îÁø °÷±îÁö º¼ ¼ö ÀÖ´Ù. ¶ÇÇÑ ·Îº¿Àº ºñÆÛÀÇ ¼Ò¸®¸¦ µéÀ» ¼ö ÀÖ´Â ´É·ÂÀÌ Àִµ¥ ºñÆÛ°¡ °°Àº Äڳʿ¡ ÀÖÀ» ¶§¸¸ °¡´ÉÇÏ´Ù. ·Îº¿Àº ÀÚ½ÅÀÌ ¾î´À À§Ä¡¸¦ º¸°í ¼ ÀÖ´ÂÁöµµ ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù. ¸¶Áö¸·À¸·Î ·Îº¿Àº ºñÆÛ¸¦ µé¾î¿Ã¸®°Å³ª ³»·Á³õÀ» ¼ö ÀÖ´Â °Ã¶·Î µÈ ÆÈÀÌ ÀÖ´Ù. ±×¸®°í ºñÆÛ¸¦ ³ª¸£±â À§Çؼ Ç㸮 ºÎºÐ¿¡ ¹æÀ½ÀåÄ¡°¡ µÈ °¡¹æ (Beeper Bag) À» ÀåÂøÇϰí ÀÖ´Ù. ±×¸®°í ·Îº¿Àº °¡¹æÀ» »ìÆìº½À¸·Î½á ±×°¡ ºñÆÛ¸¦ ¿î¹ÝÇϰí ÀÖ´ÂÁö¸¦ ¾Ë ¼ö ÀÖ´Ù.
¿ì¸®°¡ ·Îº¿¿¡°Ô ¾î¶°ÇÑ ÀÓ¹«¸¦ ÁÙ ¶§, ±× ÀÏÀ» ÇØ³»´Â µ¥ ÇÊ¿äÇÑ ¼¼ºÎ »çÇ×µéÀ» ÇϳªÇϳª Á¤È®ÇÏ°Ô ¼³¸íÇØ ÁÖ¾î¾ß ÇÑ´Ù. ·Îº¿Àº ÇÁ·Î±×·¥ (Program) À̶ó´Â ¸í·É¹®µéÀ» ÀÐ°í ±×´ë·Î ÀÓ¹«¸¦ ¼öÇàÇÒ ¼ö°¡ ÀÖ´Â °ÍÀÌ´Ù. ±×·¯¸é ¾î¶² ¾ð¾î·Î ·Îº¿À» Á¶Á¤ÇÏ´Â ÇÁ·Î±×·¥ (¿©±â¼ ÇÁ·Î±×·¥À̶õ ¸í·ÉµéÀ» ¿°ÅÇÏ´Â °ÍÀ» ¸»ÇÑ´Ù) À» ¸¸µé °ÍÀΰ¡? Çѱ¹¾îó·³ ÀÌ¹Ì ¾Ë°í ÀÖ´Â ¾ð¾î·Î ÇÁ·Î±×·¥À» ÇÏ´Â ´ë½Å, ¿ì¸®´Â ·Îº¿ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â µ¥ ¸Å¿ì À¯¿ëÇϵµ·Ï ¼³°èµÈ ¾ð¾î¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù. ±× ¾ð¾î´Â ´Ü¾î, ±¸µÎÁ¡ ±×¸®°í ¹®¹ýµµ °¡Áö°í ÀÖ´Ù. ÀÌ ¾ð¾î´Â ¸Å¿ì ´Ü¼øÇؼ ·Îº¿ÀÌ ÀÌÇØÇÒ ¼ö ÀÖ°í ¶ÇÇÑ ¿ì¸®°¡ ·Îº¿À» À§Çؼ °£´ÜÇÏ°í ¸í·áÇÏ°Ô ÇÁ·Î±×·¥ÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÖ´Ù.
ÀÓ¹« (Task) ¶õ ¿ì¸®°¡ ·Îº¿¿¡°Ô Çϱ⸦ ¿øÇÏ´Â ÀÏÀ» ¸»ÇÑ´Ù. ¾Æ·¡ÀÇ ³»¿ëÀº ·Îº¿ÀÌ ÇÒ ¼ö ÀÖ´Â ¸î °¡Áö ÀÓ¹«ÀÇ ¿¹µéÀÌ´Ù.
|
ÀÌ·¯ÇÑ °ÍµéÀº ¸Å¿ì °£´ÜÇÑ ÈÆ·Ãµé¿¡ ÇØ´çÇÑ´Ù.
»óȲ (Situation) À̶õ ·Îº¿ÀÇ ¼¼°è¸¦ Á¤È®ÇÏ°Ô ¹¦»çÇÏ´Â °ÍÀ» ¶æÇÑ´Ù. ·Îº¿ ¼¼°èÀÇ ±âº»ÀûÀÎ ±¸Á¶»Ó¸¸ ¾Æ´Ï¶ó, º®µé°ú ºñÆÛµéÀ» Æ÷ÇÔ½ÃÄÑ ¸ðµç »óȲÀ» ³ªÅ¸³»´Â °ÍÀÌ´Ù. »óȲÀ» ¿Ïº®ÇÏ°Ô ¼³¸íÇϱâ À§Çؼ´Â ¿ì¸®´Â ´ÙÀ½°ú °°Àº Á¤º¸¸¦ ³ªÅ¸³» ÁÖ¾î¾ß ÇÑ´Ù.
|
±×¸² 4 ·Îº¿ÀÌ ÇØ¾ß ÇÒ ¼·Î ´Ù¸¥ 6 °¡Áö ÀÓ¹«
ÀÌ Ã¥¿¡¼´Â ÀÛÀº Áöµµ±×¸²À̳ª °£´ÜÇÑ ¼³¸íÀ¸·Î ÀÌ·¯ÇÑ »óȲÀ» ¸í½ÃÇØ ÁÙ °ÍÀÌ´Ù. ¸¸¾à¿¡ ¿ì¸®°¡ ·Îº¿ÀÇ ºñÆÛ¹é (Beeper Bag) ¿¡ ÀÖ´Â ºñÆÛÀÇ °³¼ö¸¦ ¾Ë°í ÀÖ´Ù¸é À̰͵µ ¾Ë·Á ÁÖ¾î¾ß ÇÑ´Ù. [±×¸² 4] ´Â ¾ÕÀ¸·Î ·Îº¿ÀÌ ÇØ¾ß ÇÒ ¸î °¡Áö ÀÓ¹«ÀÇ ¼·Î ´Ù¸¥ Ãʱâ»óȲÀ» ³ªÅ¸³»°í ÀÖ´Ù. ¾î¶² ÀÓ¹«¶óµµ Ãʱâ»óȲ (Initial Situation) ¿¡´Â ·Îº¿ÀÌ ÀÓ¹«¸¦ ½ÃÀÛÇÒ Ãʱâ À§Ä¡¸¦ Ç¥½ÃÇÏ¿©¾ß ÇÑ´Ù. Á¾·á »óȲ (Final Situation) Àº ·Îº¿ÀÌ ÀÚ½ÅÀÇ ½ºÀ§Ä¡¸¦ ²ø ¶§ÀÇ À§Ä¡¸¦ ³ªÅ¸³½´Ù. ´Ù¸¥ ¸»ÀÌ ¾ø´Â ÀÌ»ó ·Îº¿Àº ºó ºñÆÛ¹éÀ¸·Î ÀÓ¹«¸¦ ½ÃÀÛÇÑ´Ù°í »ý°¢ÇÒ ¼ö ÀÖ´Ù.
·Îº¿ÀÇ À§Ä¡¸¦ ¹Ù²Ùµµ·Ï ÇÏ´Â µ¥´Â µÎ °¡ÁöÀÇ ±âº» ¸í·ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±× ù¹øÂ° °ÍÀÌ move ¶ó´Â ¸í·É¾îÀÌ´Ù.
>> move <<
·Îº¿ÀÌ move ¶ó´Â ¸í·É¾î¸¦ ¼öÇàÇÒ ¶§¿¡´Â ÀÚ½ÅÀÌ ÇâÇϰí ÀÖ´Â ¹æÇâÀ¸·Î 1 ºí·Ï ¾ÕÀ¸·Î À̵¿Çؼ ±× ¹æÇâÀ» ±×´ë·Î À¯ÁöÇÏ´Â °ÍÀ» ¶æÇÑ´Ù. ·Îº¿Àº ÀÚ½ÅÀÇ ¾Õ¿¡ º®°ú °°Àº Àå¾Ö¹°ÀÌ ÀÖÀ¸¸é ¾ÕÀ¸·Î ¿òÁ÷ÀÌÁö ¾Ê°í ±× ´ë½Å¿¡ ÀÚ½ÅÀÇ Àü¿øÀ» ²¨¹ö¸± °ÍÀÌ´Ù. ÀÌ ÇൿÀ» Error Shutoff ¶ó Çϴµ¥, (5) ¿¡¼ ´õ ÀÚ¼¼ÇÏ°Ô ¼³¸íÇϰڴÙ.
À§ÀÇ Á¤ÀÇ¿¡¼ ¾Ë ¼ö ÀÖµíÀÌ move ¶ó´Â ¸í·ÉÀº ·Îº¿À» ÇÑ ºí·Ï ¾ÕÀ¸·Î À̵¿½ÃŰ´Â °ÍÀÌ´Ù. ±×¸®°í º®¿¡ ºÎµúÃÆÀ» ¶§´Â Erro Shutoff ¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. ´ÙÀ½ ±×¸²¿¡ ÀÌ µÎ °¡Áö »óȲÀ» ³ªÅ¸³»¾ú´Ù. [±×¸² 1] Àº ¼º°øÀûÀ¸·Î move ¸í·É¾î¸¦ ¼öÇàÇÑ °æ¿ì·Î¼ º®Àº ·Îº¿ÀÇ À§Ä¡¿¡¼ ¹Ý ºí·Ï ÀÌ»ó ¶³¾îÁ® ÀÖ´Ù.
±×¸² 1 (A) move ¸í·É ÀüÀÇ Ãʱ⠻óÅÂ, (B) move ¸í·É ÈÄÀÇ ÃÖÁ¾ »óÅÂ
¹Ý¸é¿¡ [±×¸² 2] ´Â À߸øµÈ move ¸í·ÉÀÇ ¼öÇàÀ» ³ªÅ¸³» ÁØ´Ù. ·Îº¿Àº ¾Æ·¡ »óȲ¿¡¼ move ¶ó´Â ¸í·É¾î¸¦ ¼öÇàÇÏ·Á°í ÇÏÁö¸¸ º®À» º¸°Ô µÇ°í ±×ÀÇ Àڱ⠺¸È£ º»´É¿¡ µû¶ó¼ Error Shutoff ¶ó´Â °úÁ¤À» ¼öÇàÇÑ´Ù.
±×¸² 2 ¾ÕÀÌ ¸·Çô ÀÖÀ» ¶§ Error Shutoff ¸¦ ¼öÇàÇÑ °á°ú
·Îº¿À» ¿òÁ÷ÀÌ°Ô Çϴµ¥ »ç¿ëµÇ´Â µÎ ¹øÂ° ±âº» ¸í·ÉÀº turnleft ÀÌ´Ù. ÀÌ ¸í·É¾î´Â ·Îº¿ÀÌ ÇâÇÏ´Â ¹æÇâÀ» ¹Ù²ÙÁö¸¸ ±×ÀÇ À§Ä¡´Â º¯È½ÃŰÁö ¾Ê´Â´Ù.
>> turnleft <<
·Îº¿Àº turnleft ¸í·ÉÀ» ¹Þ°Ô µÇ¸é ¿ÞÂÊÀ¸·Î 90° µ·´Ù. ¿©±â¿¡¼ ·Îº¿Àº ¹æÇâÀ» ¹Ù²ÙÁö¸¸ À§Ä¡´Â ±×´ë·ÎÀ̸ç, º®ÀÌ ·Îº¿À» ¸·´Â´Ù´Â °ÍÀº ºÒ°¡´ÉÇϱ⠶§¹®¿¡ turnleft ¸í·É¾î´Â Error Shutoff ¸¦ À¯¹ß½Ãų ¼ö°¡ ¾ø´Ù.
·Îº¿Àº Ç×»ó ¾î¶² Äڳʿ¡¼ µ¿¼³²ºÏÀÇ ÇÑ ¹æÇâÀ» ¹Ù¶óº¸¸é¼ ÀÓ¹«¸¦ ½ÃÀÛÇÑ´Ù. ·Îº¿Àº ¹Ý ºí·Ï¾¿ À̵¿ÇѴٵ簡 90° ÀÌ¿ÜÀÇ °¢µµ·Î´Â ¹æÇâÀ» ¹Ù²ÙÁö ¾Ê´Â´Ù. move ³ turnleft °¡ ºñ·Ï ·Îº¿ÀÇ À§Ä¡³ª ¹æÇâÀ» ¹Ù²Ù±â´Â ÇÏÁö¸¸ ¿©ÀüÈ÷ ·Îº¿Àº ¼¼»óÀÇ ¾î´À ÇÑ Äڳʿ¡¼ ÀÖ°Ô µÈ´Ù.
·Îº¿ÀÇ ±âº» ¾ð¾î¿¡´Â turnleft ¶ó´Â ´Ü¾î°¡ ¾ø´Ù. turnleft ¶ó´Â ´Ü¾î°¡ ÀÖ´Ù°í ÇØ¼ Áö±ÝÀÇ 5 °³ ¸í·É¾î·Î ÇÏÁö ¸øÇÏ´Â »õ·Î¿î Å×½ºÅ©¸¦ Ç®¾î ³¾ ¼ö ÀÖÀ»±î? Àá±ñ »ý°¢ÇØ º¸¸é turnleft ¶ó´Â ´Ü¾î´Â ºÒÇÊ¿äÇÏ´Ù´Â °ÍÀ» ´À³¥ ¼ö°¡ ÀÖ´Ù. turnleft °¡ ÀÖÀ½À¸·Î¼ »õ·Î¿î ÀÏÀ» ÇØ³»´Â °Íµµ ¾Æ´Ï°í, 3 ¹øÀÇ turnleft ¸í·ÉÀ» ³»¸®¸é turnleft ¿Í °°¾ÆÁø´Ù´Â °ÍÀ» ¾Ë ¼ö Àֱ⠶§¹®ÀÌ´Ù.
·Îº¿Àº ºñÆÛ¸¦ ´Ù·ç´Â 2 °¡ÁöÀÇ ±âº» ¸í·É¾î¸¦ ¾Ë°í ÀÖ´Ù. ÀÌ µÎ °¡Áö ¸í·É¾î´Â ¼·Î ¹Ý´ëµÇ´Â ÇൿÀ» ÇÑ´Ù.
>> pickbeeper <<
·Îº¿ÀÌ pickbeeper ÀÇ ¸í·ÉÀ» ¼öÇàÇÒ ¶§ ·Îº¿Àº ºñÆÛ¸¦ ±×°¡ ¼ ÀÖ´Â Äڳʿ¡¼ ÁÖ¿ö¼ ÀÚ½ÅÀÇ ºñÆÛ¹é¿¡ ³Ö´Â´Ù. ¸¸¾à¿¡ ºñÆÛ°¡ ¾ø´Â Äڳʿ¡¼ pickbeeper ¶ó´Â ¸í·ÉÀ» ¼öÇàÇϵµ·Ï ÇÏ¸é ·Îº¿Àº Error Shutoff ¸í·ÉÀ» ¼öÇàÇØ ¹ö¸°´Ù. ºñÆÛ°¡ 1 °³ ÀÌ»óÀÖ´Â Äڳʿ¡µµ ·Îº¿Àº ¿ÀÁ÷ 1 °³¾¿¸¸ ÁÖ¿ö¼ ºñÆÛ¹é¿¡ ³Ö´Â´Ù.
>> putbeeper <<
·Îº¿Àº putbeeper ¶ó´Â ¸í·É¾î¸¦ ¹Þ°Ô µÇ¸é ÀÚ½ÅÀÇ ºñÆÛ¹é¿¡¼ ºñÆÛ¸¦ Çϳª »©¼ ÀÚ½ÅÀÌ ¼ ÀÖ´Â Äڳʿ¡ ³»·Á³õ´Â´Ù. ¸¸¾à ·Îº¿¿¡°Ô putbeeper ¸í·ÉÀ» ¼öÇàÇϵµ·ÏÇÒ ¶§ ºñÆÛ¹éÀÌ ºñ¾îÀÖÀ¸¸é ·Îº¿Àº ¹Ù·Î Error Shutoff ¸¦ ½ÇÇàÇØ ¹ö¸°´Ù.
ºñÆÛ´Â ±× Å©±â°¡ ¿ö³« À۾Ƽ ·Îº¿ÀÌ ¿òÁ÷À̴µ¥ Àå¾Ö¹°ÀÌ µÇÁö´Â ¸øÇÑ´Ù. ¿ÀÁ÷ º®¸¸ÀÌ ·Îº¿ÀÌ °¡´Â ±æÀ» ¸·À» ¼ö ÀÖ´Ù.
¸¶Áö¸·À¸·Î ·Îº¿¿¡°Ô ÀÓ¹«¸¦ ¾ÆÁÖ Àß ³¡¸¶ÃÆ´Ù´Â °ÍÀ» ¾Ë·ÁÁÙ Çʿ䰡 ÀÖ´Ù. À̶§ turnoff ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù.
>> turnoff <<
·Îº¿ÀÌ turnoff ¸í·É¾î¸¦ ¹Þ°Ô µÇ¸é ÀÚ½ÅÀÇ ½ºÀ§Ä¡¸¦ ²ô°í »õ·Î¿î ÀÓ¹«¸¦ ½ÃÀÛÇϱâ Àü±îÁö ¾î¶°ÇÑ ¸í·É¾îµµ ¼öÇàÇÒ ¼ö ¾ø´Â »óŰ¡ µÈ´Ù. ¸ðµç ÇÁ·Î±×·¥ÀÇ ¸¶Áö¸· ¸í·É¾î´Â Ç×»ó turnoff ÀÌ´Ù.
À̹ø Àý¿¡¼´Â ·Îº¿¿¡°Ô ÇϳªÀÇ ÀÓ¹«¸¦ ¼öÇàÇÒ ¼ö ÀÖµµ·Ï ÇϳªÀÇ ¿Ïº®ÇÑ ÇÁ·Î±×·¥À» ÁÙ °ÍÀÌ´Ù. [±×¸² 3] ¿¡¼ ³ª¿Í ÀÖ´Â °Íó·³ ·Îº¿ÀÇ ÀÓ¹«´Â ºñÆÛ¸¦ 2 ¹øÂ° Street ¿Í 4 ¹øÂ° Avenue ¿¡¼ 4 ¹øÂ° Street ¿Í 5 ¹øÂ° Avenue ·Î ¿Å°Ü ³õ´Â °ÍÀÌ´Ù. ºñÆÛ¸¦ ³»·Á³õÀº ÈÄ ·Îº¿Àº ºÏÂÊÀ¸·Î 1 ºí·Ï ´õ À̵¿ÇÏ¿© ÀÚ½ÅÀÇ ½ºÀ§Ä¡¸¦ ²ô´Â °ÍÀÌ´Ù.
±×¸² 3 (A) ÀÓ¹«ÀÇ Ãʱ⠻óÅÂ, (B) ÀÓ¹«ÀÇ ÃÖÁ¾ »óÅÂ
¾Æ·¡¿¡ ¾²¿© ÀÖ´Â ÇÁ·Î±×·¥À» ·Îº¿¿¡°Ô ÁÖ¸é À§ÀÇ ÀÓ¹«¸¦ ·Îº¿ÀÌ ¿Ïº®ÇÏ°Ô ½ÇÇàÇØ³½´Ù. ÀÌ ÇÁ·Î±×·¥Àº ·Îº¿ÀÇ ±âº»ÀûÀÎ 5 °¡ÁöÀÇ ¸í·É¾î¿Í ·Îº¿ÀÇ »çÀü¿¡ ÀÖ´Â ¸î°¡ÁöÀÇ ±âº»ÀûÀÎ ´Ü¾î, ±×¸®°í ¼¼¹ÌÄÝ·Ð (;) À¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ¸ÕÀú, ·Îº¿ÀÇ ÇÁ·Î±×·¥ ½ÇÇà¿¡ ´ëÇØ¼ À̾߱âÇÏ°í ±× ´ÙÀ½¿¡ ÀÌ ·Îº¿ ÇÁ·Î±×·¥ÀÇ ±¸Á¶¿¡ ´ëÇØ¼ ºÐ¼®ÇØ º¸°Ú´Ù.
program ~~~~~ |
BEGINNING-OF-PROGRAM BEGINNING-OF-EXECUTION move; move; pickbeeper ; move; turnleft; move; move; putbeeper; move; turnoff END-OF-EXECUTION END-OF-PROGRAM |
À§ÀÇ ÇÁ·Î±×·¥Àº ÁÖ¾îÁø ÀÓ¹«¸¦ ½ÇÇàÇÏ´Â ¼ö¾øÀÌ ¸¹Àº ¸í·ÉÀÇ Á¶ÇÕ ÁßÀÇ Çϳª¶ó´Â °ÍÀ» ¸í½ÉÇØ¾ß ÇÑ´Ù.
·Îº¿ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇϱâ Àü¿¡ ¾Æ¹«·± ¹®Á¦°¡ »ý±âÁö ¾Êµµ·Ï Çϱâ À§ÇØ ÇÑ ¹ø ÇÁ·Î±×·¥À» Àо´Ù. ¿¡·¯¿¡ °üÇØ¼´Â ´ÙÀ½¿¡ ¼³¸íÇϱâ·Î Çϰí Áö±ÝÀº ¿ì¸®ÀÇ ÇÁ·Î±×·¥ÀÌ ¿À·ù°¡ ¾ø´Â ¿Ïº®ÇÑ ÇÁ·Î±×·¥À̶ó°í °¡Á¤ÇØ º¸ÀÚ.
·Îº¿ÀÌ ÇÁ·Î±×·¥À» ¾î¶»°Ô ½ÇÇàÇÏ´Â °ÍÀϱî? ·Îº¿Àº BEGINNING-OF-EXECUTION °ú END-OF-EXECUTION ÀÇ »çÀÌ¿¡ ÀÖ´Â °¢ ¸í·É¾î¸¦ Çϳªµµ »©Áö ¾Ê°í À§¿¡¼ ¾Æ·¡·Î ¼ø¼´ë·Î ¼öÇàÇØ ³ª°£´Ù. ·Îº¿Àº turnoff ¸í·É¾î¸¦ ¹Þ°Å³ª ¿¡·¯¿¡ ÀÇÇÑ Á¾·á°¡ µÇ±â Àü±îÁö´Â °è¼Ó ¸í·É¾î¸¦ ¼öÇàÇØ ³ª°£´Ù.
¹°·Ð, ¿ì¸®´Â ·Îº¿ÀÌ Áױ⸦ ¹Ù¶óÁö ¾Ê±â ¶§¹®¿¡ ·Îº¿¿¡°Ô ÇÁ·Î±×·¥À» ÁÙ ¶§¿¡ Ç×»ó ¹®Á¦°¡ ÀÖ´ÂÁö ¾ø´ÂÁö »ìÆìº¸°Ô µÈ´Ù. Ȥ½Ã ·Îº¿ÀÌ Wall Section ¿¡ ºÎµúÈ÷Áö´Â ¾Ê´ÂÁö, ºñÆÛ°¡ ¾ø´Âµ¥µµ ÁÖ¿ì·Á°í ÇÏÁö´Â ¾Ê´ÂÁö µîÀ» È®ÀÎÇØ º¸°Ô µÈ´Ù. ÀÌ·¯ÇÑ °ÍÀ» ½Ã¹Ä·¹À̼ÇÀ̶ó ÇÑ´Ù. ¿ì¸®´Â ·Îº¿ÀÌ ÇÏ·Á´Â ¸ðµç Çൿ¿¡ ´ëÇØ¼ ü°èÀûÀ¸·Î Á¤¸®Çϰí ÀúÀåÇÔÀ¸·Î½á ½Ã¹Ä·¹À̼ÇÀ» ÇÒ ¼ö ÀÖ´Ù. ±× ¹æ¹ý ÁßÀÇ Çϳª°¡ Á¾ÀÌ À§¿¡ ±×¸²À» ±×¸®¸é¼ ÇÁ·Î±×·¥À» ½Ã¹Ä·¹À̼ÇÇØ º¸´Â °ÍÀÌ´Ù. ¿ì¸®´Â ·Îº¿ÀÌ ¸í·ÉÀ» ¼öÇàÇÏ´Â ¼ø¼¸¦ ±×´ë·Î µû¶óÇØ º½À¸·Î½á ÇÁ·Î±×·¥¿¡ ¹®Á¦°¡ ¾ø´ÂÁö ÃßÀûÇØ º¼ ¼ö ÀÖ´Ù. ·Îº¿ÀÇ ÇൿÀ» Á¤È®ÇÏ°í ºü¸£°Ô ÆÄ¾ÇÇØ ³»´Â °ÍÀº ¿ì¸®°¡ ½ÀµæÇØ¾ß ÇÒ Áß¿äÇÑ ±â¼ú ÁßÀÇ ÇϳªÀÌ´Ù. ´ÙÀ½ÀÇ ÇÁ·Î±×·¥À» ½Ã¹Ä·¹À̼ÇÇØ º¸ÀÚ. 2, 2 ´Â 2 ¹øÂ° Street ¿Í 2 ¹øÂ° Avenue ¸¦ ¶æÇÑ´Ù.
program ~~~~~ |
|
BEGINNING-OF-PROGRAM BEGINNING-OF-EXECUTION
move;
move;
pickbeeper ;
move;
turnleft;
move;
move;
putbeeper;
move;
turnoff
END-OF-EXECUTION END-OF-PROGRAM |
·Îº¿Àº 2, 2 Äڳʿ¡¼ µ¿ÂÊÀ» ¹Ù¶óº¸°í ÀÖÀ¸¸ç, ºñÆÛ¹é¿¡´Â ºñÆÛ°¡ Çϳªµµ ¾ø´Ù. ·Îº¿Àº µ¿ÂÊÀ¸·Î 1 Ä ¿òÁ÷¿©, 2, 3 ¿¡ µµ´ÞÇÑ´Ù. ·Îº¿Àº µ¿ÂÊÀ¸·Î 1 Ä ¿òÁ÷¿©, 2, 4 ¿¡ À§Ä¡ÇÑ´Ù. ·Îº¿Àº ºñÆÛ 1 °³¸¦ Áݴ´Ù. ºñÆÛ¹é¿¡ ºñÆÛ°¡ 1 °³ ÀÖ´Ù. ·Îº¿Àº µ¿ÂÊÀ¸·Î 1 Ä ¿òÁ÷¿©, 2, 5 ¿¡ µµ´ÞÇÑ´Ù. ·Îº¿Àº 2, 5 ¿¡¼ ¿ÞÂÊÀ¸·Î µ¹¾Æ ºÏÂÊÀ» ÇâÇÑ´Ù. ·Îº¿Àº ºÏÂÊÀ¸·Î 1 Ä ¿òÁ÷¿© 3, 5 ¿¡ À§Ä¡ÇÑ´Ù. ·Îº¿Àº ºÏÂÊÀ¸·Î 1 Ä ¿òÁ÷¿© 4, 5 ¿¡ À§Ä¡ÇÑ´Ù. ·Îº¿Àº ºñÆÛ 1 °³¸¦ ³»·Á³õ´Â´Ù. ºñÆÛ¹é¿¡´Â ºñÆÛ°¡ 1 °³µµ ¾ø´Ù. ·Îº¿Àº ºÏÂÊÀ¸·Î 1 Ä ¿òÁ÷¿© 5, 5 ¿¡ À§Ä¡ÇÑ´Ù. ·Îº¹Àº 5, 5 ¿¡¼ ºÏÂÊÀ» ÇâÇÏ¸é¼ ÀÚ½ÅÀÇ ½ºÀ§Ä¡¸¦ ²ö´Ù.
|
·Îº¿ÀÌ ÀÓ¹«¸¦ ¸ðµÎ ¿Ï¼öÇß´Ù. ±×¸®°í ¿ì¸®´Â ÀÌ ÇÁ·Î±×·¥ÀÇ ½Ã¹Ä·¹À̼ÇÀ» ÅëÇØ, ÀÌ ÇÁ·Î±×·¥¿¡ ¿¡·¯ (Error) °¡ ¾ø´Ù´Â °ÍÀ» ¹àÇô³Â´Ù.
·Îº¿ÀÌ ¾î¶»°Ô ÇÁ·Î±×·¥À» ¼öÇàÇÏ´ÂÁö º¸¾Ò±â ¶§¹®¿¡, ÀÌÁ¦´Â ·Îº¿°ú ÀÇ»ç ¼ÒÅëÇÏ´Â µ¥ ÇÊ¿äÇÑ ¹®¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. ·Îº¿ÀÇ ¾ð¾î´Â ¹®¹ý°ú ±¸µÎ¹ýÀÌ ±²ÀåÈ÷ ±î´Ù·Ó´Ù. ±×·¯¹Ç·Î ¿ì¸®´Â ¿©±â¿¡¼ ±×·¯ÇÑ ¹ýÄ¢¿¡ ´ëÇØ¼ ÀÚ¼¼ÇÏ°Ô °øºÎÇØ ³õÀ¸¸é ÁÁ´Ù. ·Îº¿ÀÌ ÀÌÇØÇÒ ¼ö ÀÖ´Â ¸ðµç ³»¿ë (Symbol) À» ¼¼ °¡Áö Ŭ·¡½º (Class) ·Î ±¸ºÐÇÏ´Â °ÍºÎÅÍ ½ÃÀÛÇØ º¸ÀÚ. ù ¹øÂ° Ŭ·¡½º´Â ±¸µÎÁ¡ÀÎ ½ê¹ÌÄÝ·Ð (;) ÀÌ´Ù. ´ÙÀ½ µÎ °¡Áö´Â ·Îº¿ÀÇ ´Ü¾î»çÀü¿¡ Àִµ¥ ¿¹Á¦¿¡¼ º¸¾Ò´ø ±âº» ¸í·É¾îµé°ú, ¿¹¾à¾î (Reserved Words) µéÀÌ´Ù.
¿¹¾à¾î (Reserved Word) ´Â ·Îº¿ÀÇ ¾ð¾îÀÇ ¿ø½ÃÀûÀÎ ¸í·ÉµéÀ» ±¸Á¶ÀûÀ¸·Î Á¶Á÷Çϱâ À§Çؼ »ç¿ëµÈ´Ù. ÇÁ·Î±×·¥À» Àб⠽±°Ô Çϱâ À§Çؼ, ¿¹¾à¾î´Â ´ë¹®ÀÚ·Î, ±âº» ¸í·É¾î´Â ¼Ò¹®ÀڷΠǥ±â¸¦ Çß´Ù. ÀÌ·¸°Ô ÇÏ¸é ¿¹¾à¾î¿Í ±âº» ¸í·É¾î¸¦ ±¸º°ÇØ ³»´Âµ¥ ½¬¿ï °ÍÀÌ´Ù. ÇÏÁö¸¸ À̰ÍÀº ¿ì¸®µé¿¡°Ô µµ¿òÀÌ µÇ¶ó°í ÇÏ´Â °ÍÀÌÁö ·Îº¿¿¡°Ô´Â »ó°üÀÌ ¾ø´Ù. ·Îº¿Àº ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
´ÙÀ½ÀÇ ÇÁ·Î±×·¥À» °¡Áö°í »ç¿ëµÈ ³× °³ÀÇ ¿¹¾à¾î¿Í ±¸¹®ÀÇ ±ÔÄ¢¿¡ ´ëÇØ¼ À̾߱âÇØ º¸°Ú´Ù. ÁøÇàÇϱ⿡ ¾Õ¼ ´Ù½Ã Çѹø ÇÁ·Î±×·¥À» »ìÆìº¸ÀÚ.
program ~~~~~ |
BEGINNING-OF-PROGRAM BEGINNING-OF-EXECUTION move; move; pickbeeper ; move; turnleft; move; move; putbeeper; move; turnoff END-OF-EXECUTION END-OF-PROGRAM |
¸ðµç ·Îº¿ ÇÁ·Î±×·¥Àº ²À BEGINNING-OF-PROGRAM À̶ó´Â ¿¹¾à¾î·Î ½ÃÀÛÇØ¾ß Çϰí, ´ÙÀ½¿¡´Â BEGINNING-OF-EXECUTION À̶ó´Â ¿¹¾à¾î°¡ ³ª¿À°í ±âº» ¸í·É¾îµéÀº ±× ´ÙÀ½¿¡ ³ª¿Â´Ù. ÀÌ ±âº» ¸í·É¾îµé µÚ¿¡´Â END-OF-EXECUTION °ú END-OF-PROGRAM À̶ó´Â ¿¹¾à¾î°¡ ¼ø¼´ë·Î ³ª¿Â´Ù. BEGIN °ú END ¿¹¾à¾îÀÇ Á¶ÇÕÀº ½ÃÀÛ°ú ³¡À» ³ªÅ¸³»´Â Áß¿äÇÑ ¿ä¼ÒÀ̱⠶§¹®¿¡ °æ°è±âÈ£ (Delimiter) ¶ó°íµµ ºÎ¸¥´Ù.
BEGINNING-OF-EXECUTION À̶ó´Â ¿¹¾à¾î´Â ·Îº¿¿¡°Ô ÇÁ·Î±×·¥ÀÇ ¾î´À °÷¿¡¼ºÎÅÍ ±âº» ¸í·É¾îµéÀ» ½ÇÇàÇØ¾ß ÇÏ´ÂÁö¸¦ °¡¸£ÃÄ ÁØ´Ù. END-OF-EXECUTION À̶ó´Â ¿¹¾à¾î´Â ·Îº¿ÀÇ ¸í·É ½ÇÇàÀÌ ³¡³µ´Ù´Â °ÍÀ» ÀǹÌÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù. turnoff ¶ó´Â ±âº» ¸í·É¾î°¡ ±× ¿ªÇÒÀ» ÇÏ´Â °ÍÀÌ´Ù. END-OF-EXECUTION À̶ó´Â ¿¹¾à¾î´Â ´ÜÁö ·Îº¿ÀÌ ½ÇÇàÇØ¾ß ÇÏ´Â ±âº» ¸í·É¾îµéÀÌ ³¡³µÀ½À» ³ªÅ¸³»±â¸¸ ÇÑ´Ù. ¸¸¾à¿¡ ·Îº¿ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇϴµ¥ turnoff °¡ ³ª¿À±â Àü¿¡ END-OF-EXECUTION ¿¡ µµ´ÞÇÏ¸é ·Îº¿Àº À߸ø ¼öÇàµÇ¾ú´Â ÁÙ ¾Ë°í ¿¡·¯¸¦ Ãâ·ÂÇÑ´Ù.
ÀÌÁ¦ ·Îº¿ÀÇ ¾ð¾î¿¡¼ ½ê¹ÌÄÝ·Ð (;) ¿¡ °üÇÑ ±ÔÄ¢¿¡ ´ëÇÏ¿© ÀÚ¼¼È÷ »ìÆìº¸ÀÚ. ½ê¹ÌÄÝ·ÐÀº ¿¬¼ÓµÇ´Â ±âº» ¸í·É¾îµéÀ» ºÒ¸®Çϱâ À§Çؼ »ç¿ëÇÑ´Ù. ½ê¹ÌÄÝ·ÐÀÇ »ç¿ë ±ÔÄ¢Àº "°¢°¢ÀÇ ¸í·ÉÀº ´ÙÀ½ ¸í·É°ú ¹Ýµå½Ã ½ê¹ÌÄÝ·ÐÀ¸·Î ºÐ¸®µÇ¾î¾ß ÇÑ´Ù" ÀÌ´Ù. Áï, µÎ °³ÀÇ ±âº» ¸í·É¾î Áß Ã¹ ¹øÂ° ±âº» ¸í·É¾î ¹Ù·Î ´ÙÀ½¿¡ ½ê¹ÌÄÝ·ÐÀ» ¾´´Ù. ÀÌó·³ °£´ÜÇÑ ±ÔÄ¢Àε¥µµ ¸¹Àº »ç¶÷µéÀÌ "¸í·É¾î µÚ¿¡´Â ¹Ýµå½Ã ½ê¹ÌÄÝ·ÐÀ» ¾´´Ù" ¶ó°í À߸ø ÀÌÇØÇÏ´Â °æ¿ì°¡ Á¾Á¾ ÀÖ´Ù. ÀÌ µÎ ¹®ÀåÀÇ Â÷ÀÌÁ¡Àº ÀÌ ÇÁ·Î±×·¥ÀÇ turnoff ¸í·É¾î¸¦ »ìÆìº½À¸·Î½á ¾Ë ¼ö ÀÖ´Ù. turnoff ¸í·É¾î µÚ¿¡´Â ½ê¹ÌÄÝ·ÐÀÌ ¾ø¾î¾ß Á¤»óÀÌ´Ù. ¿Ö³ÄÇϸé turnoff ´ÙÀ½¿¡ ±âº» ¸í·É¾î°¡ ¾Æ´Ñ ¿¹¾à¾î Áï, END-OF-EXECUTION ÀÌ ³ª¿À±â ¶§¹®ÀÌ´Ù. ±âº» ¸í·É¾î¿Í ¿¹¾à¾î¸¦ ½ê¹ÌÄÝ·ÐÀ¸·Î ±¸º°ÇØ¾ß ÇÑ´Ù´Â ±ÔÄ¢Àº ¾ø´Ù. "±âº» ¸í·É¾î ´ÙÀ½¿¡ ½ê¹ÌÄÝ·Ð" À̶ó´Â ±ÔÄ¢Àº ½ÇÆÐÇϸç, "±âº» ¸í·É¾îµé »çÀÌ¿¡ ½ê¹ÌÄÝ·Ð" ÀÇ ±ÔÄ¢Àº ¼º°øÀûÀÌ´Ù. ¶ÇÇÑ BEGINNING-OF-PROGRAM °ú BEGINNING-OF-EXECUTION °ú °°ÀÌ ¿¬¼ÓµÇ´Â ¿¹¾à¾î ´ÙÀ½¿¡´Â ½ê¹ÌÄÝ·ÐÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù (BEGINNING-OF-PROGRAM µÚ¿¡ BEGINNIG-OF-EXECUTION ÀÌ ²À ¿¬´Þ¾Æ ³ª¿ÀÁö ¾Ê¾Æµµ µÈ´Ù. ´ÙÀ½ Àå¿¡¼ ÀÌ µÎ ¿¹¾à¾îµé »çÀÌ¿¡ ¹«¾ùÀÌ µé¾î°¥ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇØ ¾Ë¾Æº»´Ù).
ÀÌ ±ÔÄ¢Àº ¼öÇп¡¼ ÁýÇÕÀ» Ç¥½ÃÇÒ ¶§ »ç¿ëÇÏ´Â ¹æ¹ý°ú ºñ½ÁÇÏ´Ù. ¿¹¸¦ µé¾î 1, 4, 7 ÀÇ ¿ø¼Ò¸¦ °¡Áö°í ÀÖ´Â ÁýÇÕÀ» {1, 4, 7} °ú °°ÀÌ ¾µ ¶§ À¯ÃßÇØ º¸¸é, °ýÈ£´Â Áß¿äÇÑ ºÎºÐÀÇ ½ÃÀÛ°ú ³¡À» ¾Ë·ÁÁÖ´Â ±¸º° ¹®ÀÚÀ̰í, ¼ýÀÚ´Â ±âº» ¸í·É¾î¿Í °°°í, ÄÞ¸¶ (Comma) ´Â ½ê¹ÌÄݷаú °°´Ù. ¸¸¾à¿¡ {1, 4, 7} °ú °°ÀÌ ¾²¸é ²À ¼ýÀÚ Çϳª¸¦ Àؾî¹ö¸®°í ¾È ¾´ °Íó·³ º¸ÀÏ °ÍÀÌ´Ù. ºñ½ÁÇϰÔ, turnoff ´ÙÀ½¿¡ ½ê¹ÌÄÝ·ÐÀ» ¾²¸é ·Îº¿Àº ¶Ç ´Ù¸¥ ±âº» ¸í·É¾î°¡ ÀÖ´Ù°í »ý°¢ÇÑ´Ù. ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ ÀÌ¿Í °°Àº ±ÔÄ¢À» Á¶½ÉÇØ¾ß ÇÑ´Ù. ¿Ö³ÄÇÏ¸é ¸¹Àº ¹®¹ýÀûÀÎ ¿¡·¯ (Error) °¡ ½ê¹ÌÄÝ·ÐÀ» À߸ø »ç¿ëÇÏ¿© ¹ß»ýÇϱ⠶§¹®ÀÌ´Ù.
¸¶Áö¸·À¸·Î ÇÁ·Î±×·¥ Àüü°¡ º¸±â ÁÁ°Ô µé¿©¾²±â¸¦ Çß´Ù´Â °Í¿¡ ÁÖ¸ñÇØ º¸ÀÚ. Á¤¸®°¡ Àß µÇ¾ú±â ¶§¹®¿¡ ÀбⰡ ÆíÇÏ´Ù. ´ë¤ý¼Ò¹®ÀÚÀÇ »ç¿ë¹ý¿¡¼¿Í ¸¶Âù°¡Áö·Î ÀÌ µé¿©¾²±â´Â ¿ì¸®°¡ Æí¸®Çϱâ À§Çؼ ÇÏ´Â °ÍÀÌ´Ù. ·Îº¿Àº ´ë¤ý¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾ÊµíÀÌ, µé¿©¾²±âµµ »ó°üÇÏÁö ¾Ê´Â´Ù. ·Îº¿Àº ¾Æ·¡ÀÇ ÇÁ·Î±×·¥µµ ¾Õ¿¡¼ ¼³¸íÇÑ ÇÁ·Î±×·¥°ú ¶È°°ÀÌ Àд´Ù.
program ~~~~~ |
beginning-of-program beginning-of-execution move; move; pickbeeper; move; turnleft; move; move; putbeeper; move; turnoff end-of-execution end-of-program |
ÀÌ ¿¹°¡ º¸¿©ÁÖµíÀÌ ¿ì¸®°¡ ÀÐ±â ÆíÇÑ ÇÁ·Î±×·¡¹Ö ½ºÅ¸ÀÏÀ» »ç¿ëÇÏ´Â °ÍÀÌ ¸Å¿ì Áß¿äÇÏ´Ù. ±×·¡¾ß¸¸ ·Îº¿¿¡°Ô ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥À» ÁÖÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
·Îº¿Àº ±âº» ¸í·É¾îµéÀ» ¼º°øÀûÀ¸·Î ¼öÇàÇÒ ¼ö ¾ø°Ô µÇ¾úÀ» ¶§, ¾Õ¿¡¼ ¾ê±âÇÑ °Íó·³ ÀÚ½ÅÀÇ Àü¿øÀ» ²¨¹ö¸°´Ù. ÀÌ¿Í °°Àº ÇൿÀ» Error Shutoffs ¶ó°í Çϴµ¥ ±× È¿°ú´Â ·Îº¿ÀÌ turnoff ¸í·ÉÀ» ¼öÇàÇÏ´Â °Í°ú °°Àº °ÍÀÌ´Ù. Àü¿øÀ» ²ô´Â °ÍÀ» ¹Ù¶óÁö ¾ÊÀ» ¶§µµ ÀÖÁö¸¸ ±×·¸°Ô µÇ¸é ·Îº¿ÀÌ ¼º°øÀûÀ¸·Î ¼öÇàÇÒ ¼ö ¾ø´Â ¸í·ÉÀ» ¸¸³µÀ» ¶§, ±×°ÍÀ» ¹«½ÃÇÏ°í ±×³É ´Ù¸¥ ¸í·ÉÀ» ½ÇÇàÇÏ°Ô µÉ °ÍÀÌ´Ù. ÀÌ ¹æ¹ýÀ» ÀÌ¿ëÇÏ¸é ·Îº¿Àº ¸¶Ä¡ ºÒ¾ÈÁ¤ÇÑ ¸í·ÉÀ» ¹ÞÀº ÀûÀÌ ¾ø´Â µíÀÌ ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» °è¼ÓÇÑ´Ù.
ÇÏÁö¸¸ Error Shutoff ¸¦ »ç¿ëÇØ¾ß ÇÏ´Â ÀÌÀ¯¸¦ ¼³¸íÇØ º¸°Ú´Ù. ·Îº¿ÀÌ ¿¹»óÇÏÁö ¸øÇÑ ¾î¶°ÇÑ »óȲ Áï, ¸í·ÉÀÇ ¼º°øÀûÀÎ ½ÇÇàÀ» ¹æÇØÇÏ´Â »óȲÀÌ ÀÏ¾î³´Ù¸é ·Îº¿Àº ÀÓ¹« Àüü¸¦ ¿Ï¼öÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ »óȲ¿¡¼ °è¼ÓÀûÀ¸·Î ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§ ´ç½ÅÀÌ ·Îº¿¿¡°Ô ³»·È´ø ÀÓ¹«¿Í ·Îº¿ÀÌ ½ÇÁ¦·Î ¼öÇàÇÑ °á°ú¿¡´Â Å« Â÷À̰¡ ³¯ °ÍÀÌ´Ù. ±×·¯¹Ç·Î °¡Àå ÁÁÀº ¹æ¹ýÀº ·Îº¿ÀÌ Ã³À½¿¡ ¹®Á¦¸¦ ¹ß°ßÇßÀ» ¶§ Àü¿øÀ» ²ôµµ·Ï ÇÏ´Â °ÍÀÌ´Ù.
Áö±Ý±îÁö ¿ì¸®´Â Error Shutoff ¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ´Â ¸í·É¾î ¼¼ °³ (move, pickbeeper, putbeeper) ¸¦ ¹è¿ü´Ù. Error Shutoff °¡ ÀϾÁö ¾Êµµ·Ï ´ÙÀ½ÀÇ Á¶°ÇµéÀÌ Ç×»ó ¸¸Á·µÇ°Ô ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ¾ß ÇÑ´Ù.
|
ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâ Àü¿¡ ·Îº¿ÀÌ ¾î¶°ÇÑ »óÅ¿¡ óÀ½ ³õ¿©Áö°Ô µÉÁö¸¦ ¹Ì¸® ¾Ë¸é À§ÀÇ Á¶°ÇµéÀ» ¸¸Á·½ÃŰ±â ½±´Ù.
turnoff ¶ó´Â ¸í·É¾î¸¦ ÇÁ·Î±×·¥¿¡¼ »©³õ°Ô µÇ¸é ·Îº¿Àº ¿¡·¯°¡ ¹ß»ýÇß´Ù°í »ý°¢ÇÑ´Ù. ±×·¸±â¿¡ ÇÁ·Î±×·¥ÀÇ ¸¶Áö¸·¿¡ ±âº» ¸í·É¾îÀÎ turnoff ¸¦ ²À ½á¾ß ÇÑ´Ù´Â °ÍÀ» ÀØÁö ¸»¾Æ¾ß ÇÑ´Ù.
ÀÌ Àý¿¡¼´Â ¸ðµç ÇÁ·Î±×·¡¹Ö ¿¡·¯µéÀ» ¾îÈÖ, ±¸¹®, ½ÇÇà ±×¸®°í ÇÔÀÇÀû ¿¡·¯¶ó´Â 4 °¡Áö Å« °üÁ¡¿¡¼ »ìÆìº¸°Ú´Ù. °¢ ¿¡·¯ÀÇ Æ¯¼ºÀ» È®½ÇÇÏ°Ô ÀÌÇØÇÒ ¼ö ÀÖ°Ô ¿¹¸¦ µé¾î À§ÀÇ ³× °¡Áö Ç׸ñ¿¡ ´ëÇØ¼ ¼³¸íÇϰڴÙ. ±×·¸´Ù¸é "¿Ö ÀϾÁöµµ ¾ÊÀ» ¼ö ÀÖ´Â ¿¡·¯¿¡ ÀÌ·¸°Ô ¸¹Àº ½Ã°£À» º¸³»¾ß¸¸ Çϴ°¡?" ¶ó°í ¹°¾îº¼ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ ÇÁ·Î±×·¡¹ÖÀ̶ó´Â °ÍÀº ±²ÀåÇÑ Á¤È®µµ°¡ ÇÊ¿äÇÒ »Ó¸¸ ¾Æ´Ï¶ó ÀÌ·ÐÀûÀ¸·Î´Â ÀüÇô ¹®Á¦°¡ ¾ø¾î ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Ê¾Æ¾ß ÇÏ´Â µ¥µµ ºÒ±¸Çϰí, ½ÇÁ¦·Î ½ÇÇà ´Ü°è¿¡¼´Â ¿¡·¯°¡ ÀÚÁÖ ¹ß»ýÇÑ´Ù. ±×·¯¹Ç·Î ½Ã¹Ä·¹À̼ÇÀ» ÅëÇØ¼ ¿¡·¯¸¦ »¡¸® ã¾Æ °íÄ¥ ¼ö ÀÖ¾î¾ß ÇÏ´Â °ÍÀÌ´Ù.
¸ÕÀú, ¾îÈÖ ¿¡·¯ (Lexical Error) ´Â ·Îº¿ÀÌ ÀÚ½ÅÀÇ ¾îÈÖ»çÀü¿¡ Æ÷ÇԵǾî ÀÖÁö ¾Ê´Â ´Ü¾î¸¦ º¼ ¶§¸¶´Ù ¹ß»ýÇÑ´Ù. ¿¹¸¦ µé¾î ¿ì¸®°¡ »÷ÇÁ¶õ½Ã½ºÄÚÀÇ ÇÑ °Å¸®¿¡ ¼ Àִµ¥ Áö³ª°¡´Â ¿îÀüÀÚ ÇÑ »ç¶÷ÀÌ "¿À·¹°Ç ÁÖ¿¡ ÀÖ´Â Æ÷Ʋ·£µå·Î °¡·Á¸é ¾î¶»°Ô ÇÏÁÒ?" ¶ó´Â Áú¹®À» ÇßÀ» ¶§, ¿ì¸®°¡ "ÇÁÁ¬Æ® µ¥½ºÆ® Á«ÇÇ À̶õ¼Â ÇÇÁþ¼î ¹Ì³ªŽ“ÀÚ" ¶ó´Â ½ÄÀ¸·Î ´ë´äÀ» ÇÑ´Ù¸é ¿ì¸®´Â ¾îÈÖ ¿¡·¯¸¦ ÀÏÀ¸Å² °ÍÀÌ´Ù. ±× ¿îÀüÀÚ´Â ¿ì¸®°¡ ÇÑ ¸» ÀÚü¸¦ ÀÌÇØÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ¿ì¸®°¡ °¡¸£ÃÄ ÁØ ±æÀÇ ¹æÇâÀ» ¾Ë ¼ö°¡ ¾ø´Ù. ÀÌó·³ ·Îº¿µµ ÇÁ·Î±×·¥ ³»¿¡ ÀÖ´Â °¢ ´Ü¾î¸¦ ÀÌÇØÇÒ ¼ö ÀÖ¾î¾ß¸¸ ÇÑ´Ù.
´ÙÀ½Àº ¾îÈÖ ¿¡·¯°¡ ÀÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù.
program ~~~~~ |
|
BEGINNING OF PROGRAM GEBINNING-OF-EXECUTION move; mvoe; pick; move; turnright; move; |
ÇÏÀÌÇÂÀÌ ¾ø´Ù. öÀÚ¹ýÀÌ Æ²·È°í ºó °ø°£ÀÌ ÀÖ´Ù.
öÀÚ¹ýÀÌ Æ²·È´Ù. ¸ð¸£´Â ´Ü¾îÀÌ´Ù.
¸ð¸£´Â ´Ü¾îÀÌ´Ù.
|
·Îº¿ÀÌ ÇÁ·Î±×·¥ÀÇ ¸ðµç ´Ü¾î¸¦ ¾È´Ù°í ÇØµµ, ±× ÇÁ·Î±×·¥Àº ¹®¹ý ¿¡·¯ (Syntactic Error) ¸¦ ÀÏÀ¸Å³ ¼öµµ ÀÖ´Ù. ÀÌ·¯ÇÑ ¿¡·¯´Â ¿ì¸®°¡ À߸øµÈ ¹®¹ýÀ̳ª ±¸µÎ¹ýÀ» »ç¿ëÇÒ ¶§ ¹ß»ýÇÑ´Ù. ´Ù½Ã ¾ÕÀÇ ¿îÀüÀÚÀÇ ¿¹·Î µ¹¾Æ°¡ º¸ÀÚ. ¿ì¸®°¡ ¸¸¾à "Âß ±×³É 800 Á¤µµ µÇ¿ä ¸¶ÀÏ ¾ÕÀ¸·Î" ¶ó°í ´ë´äÇÏ¸é ±× ¿îÀüÀÚ´Â °¢ ´Ü¾î´Â ÀÌÇØÇÒ ¼ö À־ Àüü ¹®ÀåÀº ÀÌÇØÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù. °¢ ´Ü¾î´Â ÀÌÇØ¸¦ ÇØµµ ¿ì¸®°¡ ±× ´Ü¾îµéÀ» ¹®¹ý¿¡ ¸ÂÁö ¾Ê°Ô Á¶ÇÕÇ߱⠶§¹®¿¡ ±× »ç¶÷Àº ¿©ÀüÈ÷ ÀÌÇØ¸¦ ÇÏÁö ¸øÇÏ°Ô µÈ´Ù (¾ÕÀÇ 2ÀÇ (4) Àý ·Îº¿ÇÁ·Î±×·¥ÀÇ Çü½Ä¿¡¼ ·Îº¿¿¡°Ô ¸Â´Â ¹®¹ýÀº ¹«¾ùÀÎÁö¿¡ ´ëÇØ¼ °øºÎÇß¾ú´Ù.)
´ÙÀ½ÀÇ ÇÁ·Î±×·¥Àº ¾îÈÖÀû ¿¡·¯´Â ¾øÁö¸¸ ¹®¹ýÀû ¿¡·¯°¡ ÀÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù.
program ~~~~~ |
|
BEGINNING-OF-EXECUTION BEGINNING-OF-PROGRAM
move; move; pickbeeper; move; turnleft; move; move; putbeeper; END-OF-EXECUTION
move; turnoff END-OF-PROGRAM |
¹®¹ýÀû ¿¡·¯ - ÀÌ ¸í·É¾î´Â ÇÁ·Î±×·¥ÀÇ µÎ¹øÂ° ÁÙ¿¡ ÀÖ¾î¾ß ÇÑ´Ù. ¹®¹ýÀû ¿¡·¯ - ÀÌ ¸í·É¾î´Â ÇÁ·Î±×·¥ÀÇ Ã¹¹øÂ° ÁÙ¿¡ ÀÖ¾î¾ß ÇÑ´Ù.
±¸µÎÁ¡ ¿¡·¯ - ';' ÀÌ ¾ø´Ù.
¹®¹ýÀû ¿¡·¯ - ¿©±â¿¡ ÀÖ¾î¾ß ÇÒ ¹®ÀåÀÌ ¾Æ´Ï´Ù.
|
ÇÁ·Î±×·¥¿¡ ¾îÈÖ ¶Ç´Â ¹®¹ýÀû ¿¡·¯°¡ ÀÖ´Ù¸é ·Îº¿Àº ÇÁ·Î±×·¥À» ÀÐÀ¸¸é¼ ¿¡·¯µéÀ» ¹ß°ßÇÒ °ÍÀÌ´Ù. ÀÌ µÎ ¿¡·¯¿¡ ´ëÇÏ¿© ·Îº¿Àº ¿ì¸®°¡ ¹«½¼ ¸»À» ÇÏ·Á°í Çß´ÂÁö¸¦ ¸ð¸£±â ¶§¹®¿¡ ¿¡·¯¸¦ °íÄ¥ »ý°¢À» ÇÏÁö ¾Ê´Â´Ù. ´ë½Å¿¡ ·Îº¿Àº ¿ì¸®¿¡°Ô ¿¡·¯°¡ ÀÖ´Ù°í º¸°íÇϰí, ÀÚ½ÅÀÌ ÃæºÐÈ÷ ÀÌÇØÇÏÁö ¸øÇÏ´Â ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ÀÚ½ÅÀÇ Àü¿øÀ» ²¨¹ö¸°´Ù. À̰ÍÀº Error Shutoff ´Â ¾Æ´Ï´Ù. ¿Ö³ÄÇÏ¸é ·Îº¿ÀÌ ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ½ÃÀÛÁ¶Â÷ ÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù. ´ÙÀ½À¸·Î´Â ³²Àº µÎ °¡ÁöÀÇ ¿¡·¯¸¦ ´Ù·ê ¶§´Â ·Îº¿ÀÌ ¾îÈÖ³ª ¹®¹ýÀû ¿¡·¯¸¦ ¹ß°ßÇÒ ¼ö ¾ø´Â ÇÁ·Î±×·¥À̰í, ½ÇÇàÀ» ½ÃÀÛÇß´Ù°í °¡Á¤ÇÑ´Ù.
¼¼ ¹øÂ° ¿¡·¯´Â ½ÇÇà ¿¡·¯ (Execution Error) ÀÌ´Ù. ¾îÈÖ ¹× ¹®¹ýÀû ¿¡·¯¿Í °°ÀÌ ·Îº¿Àº ÀÌ ¿¡·¯µµ °¨ÁöÇØ ³¾ ¼ö°¡ ÀÖ´Ù. ·Îº¿ÀÌ ÇϳªÀÇ ¸í·ÉÀ» ¿Ïº®ÇÏ°Ô ¼öÇàÇÏÁö ¸øÇϰí Error Shutoff ¸¦ ÇØ¾ß ÇÒ ¶§ ½ÇÇà ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. ´Ù½Ã »÷ÇÁ¶õ½Ã½ºÄÚ¿¡¼ Æ÷Ʋ·£µå±îÁö °¡·Á´Â ¿îÀüÀÚÀÇ ¿¹·Î µ¹¾Æ°¡¼, ¿ì¸®°¡ "¿À´ø ±æ·Î Âß 800 ¸¶Àϸ¸ °¡¼¼¿ä" ¶ó°í ÇßÀ» ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ ±× »óȲ¿¡¼ ¿îÀüÀÚ°¡ ¼ÂÊÀ» ÇâÇϰí ÀÖ¾ú°í ¿ì¸®°¡ ÁØ ¸í·ÉÀ» ¸» ±×´ë·Î ÀÌÇØ¸¦ ÇÏ°í ½ÇÇàÀ» Çß´Ù¸é ±×´Â ¸î ¸¶ÀÏ °¡Áö ¾Ê¾Æ¼ ÅÂÆò¾çÀ» ¹Ù¶óº¸°í ÀÖÀ» °ÍÀÌ´Ù. ÀÌ »óȲ¿¡¼ ±× ¿îÀüÀÚ´Â ¿ì¸®ÀÇ ¸í·ÉÀÌ ½ÇÇàµÉ ¼ö ¾ø´Ù´Â »ç½ÇÀ» ±ú´Ý°í ¸ØÃâ °ÍÀÌ´Ù.
ºñ½ÁÇϰÔ, ·Îº¿Àº ÀÚ½ÅÀÌ ¿Ïº®ÇÏ°Ô ¼öÇàÇÒ ¼ö ¾ø´Â ±âº» ¸í·ÉÀ» ¹Þ¾ÒÀ» ¶§ Error Shutoff ¸¦ ½ÇÇàÇÑ´Ù. ¾ÕÀÌ ¸·ÇôÀִµ¥ ·Îº¿¿¡°Ô move ¶ó´Â ¸í·ÉÀ» ³»¸°´Ù°Å³ª, ºñÆÛ°¡ ¾ø´Âµ¥ pickbeeper ¶ó´Â ¸í·ÉÀ» Çϰųª, ºñÆÛ¹éÀÌ ºñ¾îÀִµ¥ putbeeper ¶ó´Â ¸í·ÉÀ» ³»¸± ¶§ µî ¸ðµÎ°¡ ´Ù ½ÇÇà ¿¡·¯ (Execution Error) ÀÇ ÇÑ Á¾·ù°¡ µÈ´Ù. ÀÌ ¸ðµç »óȲ¿¡¼ ·Îº¿Àº Error Shutoff ¸¦ ½ÇÇàÇÏ°Ô µÈ´Ù.
¸¶Áö¸· ¿¡·¯°¡ °¡Àå ¾î·Æ´Ù. ¿Ö³ÄÇÏ¸é ·Îº¿ÀÌ ÀÌ·± Á¾·ùÀÇ ¿¡·¯´Â °¨ÁöÇÏÁö ¸øÇϱ⠶§¹®ÀÌ´Ù. À̰ÍÀ» ÇÔÀÇÀû ¿¡·¯ (Intent Error) ¶ó°í ºÎ¸¥´Ù. ·Îº¿ÀÌ ´ç½ÅÀÌ ÁØ ÇÁ·Î±×·¥Àº ³¡±îÁö ¿Ïº®ÇÏ°Ô ½ÇÇàÀ» Çߴµ¥, ´ç½ÅÀÌ ÀǵµÇÑ ÀÓ¹«´Â ¿Ïº®ÇÏ°Ô ¼öÇàÇÏÁö ¸øÇÏ¿´À» ¶§ ÇÔÀÇÀû ¿¡·¯°¡ ¹ß»ýÇÏ¿´´Ù°í ÇÑ´Ù. ¿¹¸¦ µé¾î ±× ¿îÀüÀÚ°¡ ³²ÂÊÀ» ÇâÇϰí Àִµ¥, ¿ì¸®°¡ "¿À´ø ±æ·Î Âß 800 ¸¶Àϸ¸ °¡¼¼¿ä" ¶ó°í Çß´Ù°í °¡Á¤ÇØ º¸ÀÚ. ÀÌ ¸í·ÉÀ» ±× ¿îÀüÀÚ°¡ Á¦´ë·Î ³¡±îÁö ½ÇÇàÀ» ÇÒ ¼ö´Â ÀÖ´Ù. ÇÏÁö¸¸ ½ÇÇà ÈÄ¿¡ ±×´Â Æ÷Ʋ·£µå°¡ ¾Æ´Ñ ¸ß½ÃÄÚ ¾îµò°¡¿¡ À§Ä¡ÇÏ°Ô µÉ °ÍÀÌ´Ù (À§ÀÇ ½ÇÇà ¿¡·¯¿Í ´Ù¸¥ ÀÌÀ¯´Â ½ÇÇà ¿¡·¯¿¡¼´Â ´õ ÀÌ»ó À°Áö°¡ ¾ø±â ¶§¹®¿¡ 800 ¸¶ÀÏÀ» °¡¶ó´Â ¿ì¸®ÀÇ ¾ê±â¸¦ ±× ¿îÀüÀÚ°¡ ½ÇÇàÇÒ ¼ö ¾ø´Â °ÍÀ̰í, ÇÔÀÇÀû ¿¡·¯´Â ±× ¿îÀüÀÚ°¡ 800 ¸¶ÀÏÀ» °¥ ¼ö´Â ÀÖÁö¸¸ ¿ì¸®°¡ Æ÷Ʋ·£µå·Î °¡°Ô ÇÏ·Á´Â Àǵµ¿Í´Â ´Þ¸® ¾û¶×ÇÑ °÷¿¡ °¡ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù).
´ÙÀ½Àº ÇÁ·Î±×·¥¿¡¼ÀÇ ÇÔÀÇÀû ¿¡·¯¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù. ·Îº¿Àº ºñÆÛ¸¦ ÁÖ¿ö ºÏÂÊÀ¸·Î 1 Ä À̵¿ÇÑ ÈÄ, ºñÆÛ¸¦ ³»·Á³õ°í, 1 Ä ´õ ºÏÂÊÀ¸·Î À̵¿Çϰí turnoff ÇØ¾ß ÇÑ´Ù ([±×¸² 4] ¸¦ Âü°íÇ϶ó).
program ~~~~~ |
BEGINNING-OF-PROGRAM BEGINNING-OF-EXECUTION move; pickbeeper; move; turnleft; putbeeper; move; turnoff END-OF-EXECUTION END-OF-PROGRAM |
ÀÌ ÇÁ·Î±×·¥¿¡´Â ¾îÈÖ, ¹®¹ý, ½ÇÇà ¿¡·¯´Â ¾ø´Ù. ·Îº¿ÀÇ ÀÔÀå¿¡¼ º¸¾ÒÀ» ¶§, ±×°¡ turnoff ¸¦ ½ÇÇàÇϴµ¥ À־îÁö ¾Æ¹«·± ¿¡·¯µµ ¾øÀÌ ¸ðµç °ÍÀº ¿Ïº®ÇÏ´Ù. ÇÏÁö¸¸ ÀÓ¹«¿Í ÇÁ·Î±×·¥À» »ìÆìº¸¾Æ¶ó. ¹«¾ùÀÌ ¹®Á¦ÀÎÁö ¾Ë°Ú´Â°¡? ÀÓ¹«´Â ·Îº¿ÀÌ ºñÆÛ¸¦ ºÏÂÊÀ¸·Î 1 Ä ¿Å±âµµ·Ï ÇÏ´Â °ÍÀ̾ú´Âµ¥, ·Îº¿Àº ºñÆÛ¸¦ µ¿ÂÊÀ¸·Î 1 Ä ¿Å°Ü³õ¾Ò´Ù. ¿ì¸®°¡ ÀǵµÇÑ °ÍÀº ºÏÂÊÀ¸·Î À̵¿ÇÏ´Â °ÍÀ̾ú´Âµ¥, ¸¶Áö¸· °á°ú´Â µ¿ÂÊÀ¸·Î À̵¿µÈ ºñÆÛ¿´´Ù. ÀÌ ÇÁ·Î±×·¥Àº ¿ì¸®°¡ Á¦½ÃÇØ ³õÀº ÀÓ¹«¸¦ Ãæ½ÇÈ÷ ¼öÇàÇÏÁö ¸øÇß´Ù. ±×·¯¹Ç·Î ÀÌ ÇÁ·Î±×·¥¿¡´Â ÇÔÀÇÀû ¿¡·¯°¡ ÀÖ´Â °ÍÀÌ´Ù.
±×¸² 4 ·Îº¿ÀÇ Ãʱ⠻óȲ
·Îº¿Àº ¿ì¸®°¡ ¾î¶°ÇÑ ÀÓ¹«¸¦ ¼öÇàÇϵµ·Ï ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ¿´´Ù´Â »ç½ÇÀ» ¸ð¸£°í ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. ·Îº¿ÀÌ ÇÒ ¼ö ÀÖ´Â °ÍÀº ÇÁ·Î±×·¥¿¡ ÀûÈù ¸í·É¾îµéÀ» ±×´ë·Î ½ÇÇàÇÒ ¼ö ÀÖ´Â ÀÏ»ÓÀÌ´Ù. ±×·¯¹Ç·Î ¿ì¸®°¡ ¿øÇß´ø ÀÏÀ» ·Îº¿ÀÌ ¼öÇàÇÏÁö ¸øÇß´Ù´Â »ç½ÇÀ» ¾Ë ¸®°¡ ¾ø´Ù.
Á¾Á¾ ÇÔÀÇÀû ¿¡·¯´Â ÇÁ·Î±×·¥ÀÇ Ã³À½ ºÎºÐ¿¡¼ ¹ß»ýÇÏ¿© ÈĹݿ¡ °¡¼´Â ½ÇÇà ¿¡·¯·Î ¹ßÀüÇØ ³ª°£´Ù. ·Îº¿ÀÌ ÇÑ ¹ø ¹æÇâÀ» À߸ø Ʋ°Å³ª, ¾û¶×ÇÏ°Ô ¿òÁ÷À̸é, ·Îº¿ÀÌ º®À» ¶Õ°í °¡·Á´Â ¿òÁ÷ÀÓÀ» ÇÑ´ÙµçÁö, ºñÆÛ°¡ ¾ø´Âµ¥ pickbeeper ¸í·ÉÀ» ¼öÇàÇÏ·Á°í ÇÏ´Â °ÍÀº ½Ã°£ ¹®Á¦ÀÌ´Ù. ±×·¸±â ¶§¹®¿¡ Error Shutoff °¡ ¹ß»ýÇß´Ù°í ÇØ¼ ±× ¼ø°£¿¡ ½ÇÇàµÇ¾ú´ø ¸í·É¸¸ À߸øµÇ¾ú´Ù°í »ý°¢Çؼ´Â ¾È µÈ´Ù. ±× Àü¿¡ ½ÇÇàµÇ¾ú´ø ¸í·ÉµéÀÌ ÀÌÁ¦¼¾ß ¹®Á¦¸¦ ÀÏÀ¸Å² °ÍÀÏ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ÀÌ¿Í °°Àº °æ¿ì¿¡´Â ·Îº¿ÀÌ Error Shutoff ¸¦ ÇÑ ¼ø°£¿¡¼ºÎÅÍ À߸øÀÌ ¾îµð¿¡ ÀÖ´ÂÁö, ¾î¶² ¸í·ÉÀ¸·ÎºÎÅÍ À߸øµÈ ±æ¿¡ Á¢¾îµé¾ú´ÂÁö ¿ªÃßÀûÇØ ³ª°¡¾ß ÇÑ´Ù. ÀÌ¿Í °°Àº »óȲÀ» ÇØ°áÇÒ ¼ö ÀÖµµ·Ï ¿¬½À ¹®Á¦ 1 ¹ø¿¡ ÇÔÀÇÀû ¿¡·¯¿Í ½ÇÇà ¿¡·¯°¡ È¥ÇÕµÈ ¹®Á¦¸¦ ½Ç¾ú´Ù.
¨ç ¹ö±× (Bugs) ¿Í µð¹ö±ë (Debugging)
ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ¸ðµç Á¾·ùÀÇ ¿¡·¯¸¦ ¹ö±× (Bug) ¶ó°í ÇÑ´Ù. ÀÌ ¿ë¾îÀÇ ±â¿øÀ¸·Î´Â ¿©·¯ °¡Áö°¡ ÀÖ´Ù. ÇÑ À̾߱⿡¼´Â ¹ö±×¶ó´Â ´Ü¾î°¡ ÀüÈ È¸»ç ¿£Áö´Ï¾îµé·ÎºÎÅÍ À¯·¡µÇ¾ú´Ù°í ÇÑ´Ù. ±×µéÀº Àü±âȸ·Î »ó¿¡¼ ¹ß»ýÇÏ´Â ¿©·¯ °¡Áö ¼Ò¸®¸¦ ÁöĪÇϴµ¥ ¹ö±×¶ó´Â ´Ü¾î¸¦ »ç¿ëÇÏ¿´°í "ȸ·Î ¾È¿¡ ¹ú·¹°¡ ÀÖ´Ù" ´Â ÇüÅ·ΠǥÇöÀ» Çß´Ù°í ÇÑ´Ù. ¶Ç ´Ù¸¥ À̾߱â´Â Admirla Grace Murray Hopper ¿Í Harvard Mark I Computer ·ÎºÎÅÍ À¯·¡µÇ¾ú´Ù´Â °ÍÀÌ´Ù. Mark I Computer °¡ À߸øµÈ ´ä¾ÈÀ» ³»³õÀÚ, ±â¼úÀÚµéÀº ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ÄÄÇ»Å͸¦ ºÐÇØÇØ º¸¾Ò´Ù. ¸±·¹ÀÌÀÇ Á¢¼Ó ºÎºÐ¿¡ Á×Àº ³ª¹æÀÌ ¹®Á¦¸¦ ¹ß»ý½ÃŰ´Â °ÍÀ» ¾Ë°Ô µÇ¾ú°í, À̰ÍÀÌ ¹Ù·Î ¼¼°è ÃÖÃÊÀÇ ÄÄÇ»ÅÍ ¹ö±×¶ó°í ºÒ¸°´Ù. ´Ù¸¥ ¿©·¯ À̾߱âµéµµ ¸¹±â ¶§¹®¿¡ ÀÌ ´Ü¾îÀÇ ½ÇÁúÀûÀÎ ±â¿øÀ» ¾Ë±â´Â ½±Áö ¾ÊÀ» °Í °°´Ù.
¹ö±×¶ó´Â ¿ë¾î´Â ÇÁ·Î±×·¡¸ÓµéÀÌ ÀÚ½ÅÀÇ ÇÁ·Î±×·¥¿¡ ¸¹Àº ¿¡·¯°¡ ÀÖ´Ù´Â »ç½ÇÀ» ½ÇÅäÇϱ⠽ȾîÇÏ´Â ÀÚÁ¸½É ¶§¹®¿¡ ´õ ³Î¸® ÆÛÁ® »ç¿ëµÇ°í ÀÖ´Ù°í ÇÑ´Ù. Áï, ±×µéÀº ÀÚ½ÅÀÇ ÇÁ·Î±×·¥¿¡ ¹ö±×°¡ ÀÖ´Ù°í ¸»ÇÏ´Â °ÍÀ» ´õ Áñ°å´Ù. ¹ö±×¸¦ ¹ß°ßÇϱâ´Â ½±Áö ¾ÊÁö¸¸ ¹ß°ßµÈ ¹ö±×´Â ó¸®ÇϱⰡ ½±±â ¶§¹®¿¡ ÀÌ·± ºñÀ¯´Â ¸Å¿ì ÀûÀýÇÏ´Ù°í º¼ ¼ö ÀÖ´Ù. ±×·¸Áö¸¸ ±× ÇÁ·Î±×·¥¿¡¼ ¸ðµç ¹ö±×µéÀÌ ¹ß°ßµÇ¾î Á¦°ÅµÇ¾ú´Ù°í º¸ÀåÇϱâ´Â ½¬¿î ÀÏÀÌ ¾Æ´Ï´Ù. µð¹ö±ë (Debugging) À̶õ ÇÁ·Î±×·¡¸Ó°¡ ÀڽŵéÀÇ ÇÁ·Î±×·¥¿¡¼ ¿¡·¯¸¦ ¾ø¾Ö´Â °úÁ¤À» ¸»ÇÑ´Ù.
>> ±âº»¸í·É¾î <<
1) move 2) turnleft 3) pickbeeper 4) putbeeper 5) turnoff |
ÇÑ Ä ¾ÕÀ¸·Î ÀüÁøÇÑ´Ù. 90 µµ ÁÂÃøÀ¸·Î ȸÀüÇÑ´Ù. ºñÆÛ¸¦ Áý¾î¼ ºñÆÛ¹é¿¡ ³Ö´Â´Ù. ºñÆÛ¸¦ À§Ä¡ÇÑ ÀÚ¸®¿¡ ³õ´Â´Ù. Àü¿øÀ» ²ö´Ù. |
>> ºí·Ï ±¸Á¶ ¸í·É¾î <<
6) BEGIN <instruction>; <instruction>;
<instruction>; <instruction> END |
|
>> Á¶°ÇºÎ ¸í·É¾îµé <<
7) IF <test> THEN <instruction> 8) IF <test> THEN <instruction> ELSE <instruction> |
|
>> ¹Ýº¹ ¸í·É¾îµé <<
9) ITERATE <positive-number> TIMES <instruction> 10) WHILE <test> DO <instruction> |
|
>> »õ·Î¿î ¸í·É¾î¸¦ Á¤ÀÇÇÏ´Â ¹æ¹ý <<
11) DEFINE-NEW-INSTRUCTION <new-name> AS <instruction> |
|
>> ¿ÏÀüÇÑ ÇÁ·Î±×·¥ <<
12) BEGINNING-OF-PROGRAM DEFINE-NEW-INSTRUCTION <new-name> AS <instruction>; . . . DEFINE-NEW-INSTRUCTION <new-name> AS <instruction>;
BEGINNINGOF-EXECUTION <instruction>; . . . <instruction> END-OF-EXECUTION END-OF-PROGRAM |
|
>> ´Ü¾î ¿ä¾à <<
1) <instruction> 2) <new-name> 3) <positive-number> 4) <test> |
·Îº¿ ¸í·É¾î ¸ðµç ´Ü¾î°¡ ¿Ã ¼ö ÀÖÀ½ (¼Ò¹®ÀÚ, ¼ýÀÚ, '-') ¾ç¼ö ´ÙÀ½ÀÇ ´Ü¾îµé front-is-clear, front-is-blocked left-is-clear, left-is-blocked, right-is-clear, right-isb-blocked, next-to-a-beeper, not-next-to-a-beeper, facing-north, not-facing-north, facing-south, not-facing-south, facing-east, not-facing-east, facing-west, not-facing-west, any-beepers-in-beeper-bag, no-beepers-in-beeper-bag |