Up Next

3.1  ¥¤¥ó¥¿¥×¥ê¥¿¤È¤Ï

¥¤¥ó¥¿¥×¥ê¥¿(interpreter)¤Ï¡¤Ê¸»úÎó¤ò¼õ¤±¼è¤Ã¤Æ¡¤¤½¤ì¤òÆÃÄê¤Î ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î¥×¥í¥°¥é¥à¤È¤·¤Æ²ò¼á¤·¤Æ¡¤¼Â¹Ô·ë²Ì¤ò·×»»¤¹¤ë·×»»µ¡ ¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡¥¤è¤Ã¤Æ¥¤¥ó¥¿¥×¥ê¥¿¤Ï¡¤²ò¼á¤¹¤ë¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î ¥·¥ó¥¿¥Ã¥¯¥¹(syntax)¡¤¤Ä¤Þ¤ê¡¤¤É¤Î¤è¤¦¤Êʸ»úÎó¤¬¥×¥í¥°¥é¥à¤ò¤Ê ¤¹¤«¡¤¤È¡¤¥»¥Þ¥ó¥Æ¥£¥¯¥¹(semantics)¡¤¤Ä¤Þ¤ê¡¤¥×¥í¥°¥é¥à¤¬¤É¤Î ¤è¤¦¤Ë¼Â¹Ô¤µ¤ì¤ë¤«¡¤¤Î¤Õ¤¿¤Ä¤ò´ÖÀÜŪ¤ËÄêµÁ¤·¤Æ¤¤¤ë¤È¤¤¤¨¤ë¡¥¥³¥ó¥Ñ¥¤¥é ¤â¤Þ¤¿¡¤¤¢¤ë¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î¹½Ê¸¤È°ÕÌ£¤òµ¬Äꤷ¤Æ¤¤¤ë¤¬¡¤ÆþÎÏ¥×¥í¥° ¥é¥à¤«¤é¡¤¤½¤Î¼Â¹Ô·ë²Ì¤ò·×»»¤¹¤ë¤«¤ï¤ê¤Ë¡¤Ê̤Î(¿¤¯¤Î¾ì¹ç¡¤¥¢¥»¥ó¥Ö¥ê ¸À¸ì¤Ê¤É¤è¤êÄãµé¤Ê)¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤ËËÝÌõ¤·¤¿·ë²Ì¤ò½ÐÎϤȤ¹¤ë¥×¥í¥° ¥é¥à¤Ç¤¢¤ë¡¥¤½¤Î°ÕÌ£¤Ç¤Ï¡¤¥¤¥ó¥¿¥×¥ê¥¿¤È¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Î Í¿¤¨Êý¤¬°ã¤Ã¤Æ¤¤¤ë¤È¤¤¤¨¤ë¡¥

¤µ¤Æ¡¤¥¤¥ó¥¿¥×¥ê¥¿¼«ÂΤâ¥×¥í¥°¥é¥à¤Ç¤¢¤ë¤«¤é¡¤¤Ê¤ó¤é¤«¤Î¥×¥í¥°¥é¥ß¥ó¥° ¸À¸ì¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¡¥¤³¤Î¤È¤­¡¤¡Ö¥¤¥ó¥¿¥×¥ê¥¿¼«ÂΤ¬½ñ¤«¤ì¤Æ¤¤¤ë¥×¥í¥°¥é ¥ß¥ó¥°¸À¸ì¡×¤òÄêµÁ¤¹¤ë¸À¸ì(defining language)¤È¤¤¤¤¡¤¡Ö¥¤¥ó¥¿ ¥×¥ê¥¿¤¬ÆþÎϤȤ·¤Æ¼õ¤±¼è¤ë¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¡×¤òÄêµÁ¤µ¤ì¤ë¸À¸ì(defined language)¤È¤¤¤¦¡¥ Ëܼ¸³¤Ç¤Ï¡¤

ÄêµÁ¤¹¤ë¸À¸ì=Objective Caml 
ÄêµÁ¤µ¤ì¤ë¸À¸ì=ML (Objective Caml¤Î¥µ¥Ö¥»¥Ã¥È)

¤Ç¤¢¤ë¡¥°ìÈ̤ˤϡ¤ÄêµÁ¤¹¤ë¸À¸ì¤ÈÄêµÁ¤µ¤ì¤ë¸À¸ì¤Ï°Û¤Ê¤ë¤¬¡¤ º£²ó¤Î¤è¤¦¤Ëξ¼Ô¤¬°ìÃפ¹¤ë¾ì¹ç¡¤¤½¤Î¥¤¥ó¥¿¥×¥ê¥¿¤òÆäˡ¤¥á¥¿¡¦ ¥µ¡¼¥­¥å¥é¡¦¥¤¥ó¥¿¥×¥ê¥¿(meta circular interpreter)¤È¤¤¤¦¡¥ °Ê²¼¤Ç¤Ï¡¤ÄêµÁ¤¹¤ë¸À¸ì¤Ç¤Î¥×¥í¥°¥é¥à¤Îµ­½Ò¤Ë¤Ï¥¿¥¤¥×¥é¥¤¥¿ÂÎ (abcde)¤ò¡¤ÄêµÁ¤µ¤ì¤ë¸À¸ì¤Î¥×¥í¥°¥é¥à¤Ë¤Ï¥µ¥ó¡¦¥»¥ê¥ÕÂÎ (abcde)¤òÍѤ¤¤Æ¡¤Î¾¼Ô¤ò¶èÊ̤¹¤ë¡¥

ŵ·¿Åª¤Ê¥¤¥ó¥¿¥×¥ê¥¿¤Ï¡¤»ú¶ç²òÀÏ¡¦¹½Ê¸²òÀÏ¡¦²ò¼áÉô¤«¤é¹½À®¤µ¤ì¤ë¡¥ »ú¶ç²òÀÏ¡¦¹½Ê¸²òÀϤϥ³¥ó¥Ñ¥¤¥é¤ÈƱÍͤˡ¤Ê¸»úÎ󤫤é¥×¥í¥°¥é¥à¤ÎÃê¾Ý¹½Ê¸ ÌÚ¤òÀ¸À®¤¹¤ë²áÄø¤Ç¡¤ÄêµÁ¤µ¤ì¤ë¸À¸ì¤Î¥·¥ó¥¿¥Ã¥¯¥¹¤òµ¬Äꤷ¤Æ¤¤¤ë¡¥²ò¼áÉô ʬ¤Ï¡¤¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤òÄêµÁ¤·¤Æ¤¤¤Æ¡¤Ãê¾Ý¹½Ê¸ÌÚ¤òÆþÎϤȤ·¤Æ¥×¥í¥°¥é¥à¤Î ¼Â¹Ô·ë²Ì¤ò·×»»¤¹¤ëÉôʬ¤Ç¡¤¥¤¥ó¥¿¥×¥ê¥¿¤Î³Ë¤È¤Ê¤ë¡¥


Up Next