
ããã«ã¡ã¯ãHabrïŒ
Edsger Dijkstraã«ããèšäº
Substitution Processes ïŒ1962ïŒã®ç¿»èš³ã玹ä»ããŸãã ãã©ã°ã©ããžã®åå²ã¯ãªãªãžãã«ã§ã¯ãããŸããã
ã¯ããã«
ãã·ã³ã¯ïŒãã®æ§é ã«ãã£ãŠïŒèšèªã決å®ããŸããã€ãŸããç¬èªã®å
¥åèšèªã§ããéã«ãèšèªã®ã»ãã³ãã£ãã¯å®çŸ©ã¯ããããçè§£ã§ãããã·ã³ãå®çŸ©ããŸãã èšãæããã°ãæ©æ¢°ãšèšèªã¯åãã³ã€ã³ã®äž¡é¢ã§ãã ãã®ãããªã¡ãã«ã«ã€ããŠèª¬æããŸãã ç§ã¯ããªãã®æèŠã§ã¯ãç§ã®äŒè©±ã®äž»é¡ã®ãããã®2ã€ã®åŽé¢ã®ã©ã¡ããæãéèŠã§ãããã«ã€ããŠããªãã«æ±ºå®ãä»»ããŸãã ç§ãããªãã«ã¢ãŠãã©ã€ã³ãäžããã€ããã®èšèªã¯ã人ã«ãšã£ãŠå®¹èªã§ããªãã»ã©é£ããã§ãããããŠãç§ã説æããããšããŠããæ©æ¢°ã¯ãã²ã©ãéå¹ççã§ãã
ãããã£ãŠãç§ã®ç²Ÿç¥æ§é ãååšããæš©å©ãæã£ãŠããå Žåããã®æ£åœæ§ã¯ä»ã®æ§è³ªã«èŠåºãå¿
èŠããããŸãã ããªãã¯ç§ã®è»ãç§ã®æèŠãšå€æãå°ãªããšããã®äžŠå€ããã·ã³ãã«ããšåªé
ããããããŸã£ããç°ãªãïŒäžèŠããïŒåäœãå®è¡ããæ¹æ³ã®åäžæ§ã«ããããèŠã€ããããšãã§ããŸãã ç§ã®èšèªã®æ£åœåã¯ãæç¢ºã§äžè²«ããè§£éãšå®è¡ãããæäœã®ããã°ã©ã ã§ã®æç€ºçãªæç€ºã«èµ·å ããããã®æç¢ºããšç°åžžã«é«ããããŸããã§ããéåžžããã¹ãŠã®æäœãæç€ºãããŸãïŒãããŠãããããããã€ãã®èª€è§£ãçããŸãïŒã 誰ããæãã°ã圌ã¯ç§ã®è»ãšèšèªãæè²ç®çã§çºæããããšèããããšãã§ããŸãã
説æãå§ããåã«ã2ã€ã®æå³çãªçç¥ã«ã€ããŠèŠåããããšæããŸãã ç§ã玹ä»ããã·ã¹ãã ã¯ãå€ãã®ã飿¥ããå¯èœæ§ãã®äžããæ
éã«éžæããçµæã§ãã ç§ã¯èªåã®éžæã説æããŸãããèšåãããŠããªãéžæè¢ãæèçã«æ®ããŸãã èšãæããã°ãå°ãªããšãããæå³ã§ã¯ãã·ã¹ãã ããããŒã«ã«æé©ããšããŠå°å
¥ããããšã¯æ§ããŸãã ããã¯ç§ã®èŠè§£ã®ä¿¡é Œæ§ãäœäžãããã®ã§ãç§ã¯å人çã«ãã®çç¥ãåŸæããŠããŸãããç°¡æœã«ããããã«ãã®ãããªèª¬æãã¹ãããããå¿
èŠããããŸãã
æ°ã«ããªããã1ã€ã®è³ªåã¯ãåŸæ¥ã®ãã·ã³ã䜿çšããŠãã®ã·ã¹ãã ãå®è£
ããæ¹æ³ã®è³ªåã§ãã ã©ããªã«å€±ç€Œã§ãã£ãŠãããããå®çŸã§ãããã©ãããšãã質åãããããšãã§ããŸãïŒãããŠãç§ããã£ãŠããããšãæãã§ã¯ãªãããšã確èªããããã«ãç§ã¯èªåã§ãã£ãïŒã ãããå¯èœã ãšããããšãç§ã®èšèã§äŒããŠãã ããã ãã®å¯èœæ§ãæãçããããªã¹ããŒã«çŽåŸãããããšãã§ããçšåºŠãŸã§ãå®è£
æ¹æ³ãéçºããŸããã ãããããã®å®è£
ã«é¢ããè©³çŽ°ãªæ
å ±ã衚瀺ããã€ããã¯ãããŸããããªããªããèšåãããå Žåãåºæ¬ããæ³šæãããããããªarbitraryæçãªæ±ºå®ãå€ãå«ããå¿
èŠããã£ãããã§ãã ç¹ã«ãã¡ã¢ãªå²ãåœãŠã®åé¡ã¯å€æŽãããŸããã
æ°åãšç®è¡
ç§ã®æ©æ¢°ã¯ãç§ãèšèãšåŒã¶æ
å ±ã®åäœãå¶åŸ¡ããŸãïŒãããŠå¶åŸ¡å¯èœã§ãïŒã äžè¬æ§ã倱ãããšãªããæéã®æ°ã®ç°ãªãåèªã«å¶éããããšãã§ããååèªã¯åããããæ°ã§è¡šãããŸãã
ãã·ã³ã¯ãæ°åãæŒç®åã倿°ãåºåãæåãªã©ãããŸããŸãªçš®é¡ã®åèªãåºå¥ããŸãã ããã§ãæåã®ãåèªçªå·ããšãåèªæŒç®åãã«æ³šç®ããŸãã
2ã€ã®æ°å€ã®å ç®ãä¹ç®ãªã©ã®éåžžã®ç®è¡æŒç®ã«ã¯ãå
¥åãšããŠ2ã€ã®æ°å€ã¯ãŒããå«ãŸããåºåãšããŠ1ã€ã®ã¯ãŒãïŒæ°å€ïŒãå«ãŸããŸãã æ°å€ãšæ°å€ã¯ãŒãïŒããšãã°ããããããååŸïŒãäžèŽãããã«ãŒã«ã¯ãç®è¡ããã€ã¹ã®æäœã§å
·äœåãããŸããããã¯ãå
¥åãšåºåã®äž¡æ¹ã«åãã«ãŒã«ãé©çšãããéåžžã®ããããã£ãæã¡ãŸãïŒç®è¡ããã€ã¹ã®åºåãåå
¥åã§ããŸãä»äºã®æ¬¡ã®æ®µéã§åœŒã ç®è¡ããã€ã¹ã®ç¹æ§ã¯æéçã«äžå®ã§ãããšæ³å®ããŠãããããæ°å€èªã«ã¯ãåºå®ãããæå³ãããããšèšããŸãã æ°å€ã¯ãŒãã®åºå®è§£éã¯ãç®è¡ããã€ã¹ã®å®æ°ããããã£ã«é¢é£ä»ããããŠãããããæŒç®åã¯ãŒãïŒã
+
ããã
-
ããã
*
ããã
/
ããªã©ïŒã«ãã£ãŠåºæ¬çãªç®è¡æŒç®ã瀺ãããšã¯é©ãããšã§ã¯ãããŸãããä¿®æ£æžã¿ãšã¿ãªãããšãã§ããŸãã
ãã·ã³ã¯ãäž»ã«äžé£ã®åèªã§æ§æãããããã°ã©ã ãå®è¡ããŠããŸãã çŸåšãç§ã¯ç®è¡åŒã®èšç®ãå¿
èŠãšããããã°ã©ã ã®éšåã«èªåèªèº«ãå¶éããŸãã
éåžžãæ¬¡ã®ããã«èšè¿°ãããåŒãèããŸãã
5 + 39 / (7 + 2 * 3) - 6
éåžžã®æ¥å°ŸèŸè¡šèšïŒãéããŒã©ã³ã衚èšããšãåŒã°ããïŒã§ã¯ãããã«ãããæ¬¡ã®æ°åãšæŒç®åã®ã·ãŒã±ã³ã¹ãçæãããŸãïŒãã®ã·ãŒã±ã³ã¹ã®é£æ¥ããèŠçŽ ã¯ãçŽã§èªã¿ãããããã«ã¹ããŒã¹ã§åºåãããŸãïŒ
5 39 7 2 3 * + / + 6 -
ãã®ãããªåŒãé çªã«èšç®ããããã«ç¹å¥ã«èšèšãããããç¥ãããã¡ã«ããºã ããããŸã-ããã¯ç§ããã¹ã¿ãã¯ããšåŒã¶ããšã奜ããã®ã§ãã ïŒãã®ããã€ã¹ã¯å€ãã®äººã
ã«ãã£ãŠç¬ç«ããŠçºæãããäžè¬åãããããããããã·ã¥ããŠã³ãªã¹ãããããã¹ãã¹ãã¢ãããã»ã©ãŒãããåŸå
¥ãå
åºãããªã©ãããŸããŸãªååã§ç¥ãããããã«ãªããŸããããªã©ïŒäžèšã®æ°åãšæŒç®åã®ã·ãŒã±ã³ã¹ãããã°ã©ã ã®äžéšã衚ãåèªã®è¡ãšèŠãªãå Žåããã·ã³ã¯ãã®è¡ãåèªããšã«å·Šããå³ã«èªã¿åããŸãã æ°åã®åèªãèŠã€ãã£ãå Žåããã®æ°åïŒã€ãŸãããã®æ°åã®åèªã®ã³ããŒïŒãã¹ã¿ãã¯ã®äžçªäžã«è¿œå ãããæŒç®åã®åèªãšäžèŽããå Žåã察å¿ããæäœãã¹ã¿ãã¯ã®äžçªäžã§å®è¡ãããŸãã æ¬¡ã®å³ã§ã¯ãç·ã¯ã¹ã¿ãã¯ã®æäžéšã®é£ç¶ããç¶æ
ã瀺ããŠãããé ç¹èªäœã¯ç·ã®å³åŽã«ãããŸãã
... 5 ... 5 39 ... 5 39 7 ... 5 39 7 2 ... 5 39 7 2 3 ... 5 39 7 6 ... 5 39 13 ... 5 3 ... 8 ... 8 6 ... 2
ããã°ã©ã ã®ãã®å°ããªéšåãå®è¡ããæçµçãªçµæã¯ãåŒã®å€ãã¹ã¿ãã¯ã«è¿œå ãããããšã§ãã
èšç®ãšçœ®æ
äžèšã®äŸãæç¢ºã«ç€ºãããã«ããã·ã³ã¯ããã°ã©ã ããã¹ããåèªããšã«ã¹ã¿ãã¯ã®æäžéšã«ã³ããŒããããšããéå§ããŸãã é
ããæ©ããããããäžæããå¿
èŠããããŸããããããªããšããã·ã³ã¯åãªãã³ããŒæ©ã«ãªããŸãã åè¿°ã®ã·ã¹ãã ã§ã¯ãã³ããŒåŠçã¯ããã°ã©ã ããã¹ãå
ã®ä»»æã®æŒç®åã®åºçŸã«ãã£ãŠäžæãããŸãã ãããã£ãŠãæŒç®åã®æ©èœã¯2ã€ãããŸãããŸããæäœãå®è¡ããå¿
èŠããããããã³ããŒãäžæããå¿
èŠãããããšã瀺ããæ¬¡ã«ããã®æäœãå®çŸ©ããŸãã ããã2ã€ã®å®å
šã«ç°ãªã颿°ãåé¢ããããšãææ¡ããŸãããã以éãç®è¡æŒç®åã¯åºæ¬çã«æ°å€ã®åŠçãšåãæ¹æ³ã§åŠçãããŸããã€ãŸããæŒç®åèªãã¹ã¿ãã¯ã«ã³ããŒãããŸãã ã³ããŒããã»ã¹ãäžæããããã³ã«ããã®ç¬éããå°å
¥ãããã
E
ãã§ç€ºãããç¹å¥ãªåèªãæ¿å
¥ããããšã«ãããããã°ã©ã ã§ãããæç€ºçã«ç€ºããŸãïŒãè©äŸ¡ããã-èšç®ïŒã ããã§ç§ã®ãã·ã³ã¯æ¬¡ã®ããã«ãªããŸãïŒããã°ã©ã ããã¹ããåèªããšã«å·Šããå³ã«èªã¿åããŸãããèªã¿åãããšã¯æ¬¡ã®ããšãæå³ããŸããèªã¿åã£ãåèªãã
E
ãã«çãããªãå Žåããã®ã³ããŒã¯ã¹ã¿ãã¯ã«è¿œå ãããŸãããã³ããŒããã代ããã«ãïŒæåã«ïŒã¹ã¿ãã¯ã®æäžäœã¯ãŒãã§ç€ºãããæäœãå®è¡ãããŸãã
ãããã®èŠåã«åŸã£ãŠãåã®äŸã®åŒã®èšç®ãåŠæ¹ããããã°ã©ã ã¯ã次ã®åèªã®è¡ã§æ§æãããŸãã
5 39 7 2 3 * E + E / E + E 6 - E
ããã°ã©ã ããã¹ãã®ãã®éšåã®å¶åŸ¡äžã§ïŒã€ãŸãããã®åèªã®è¡ãããã·ã³ã§èªã¿åãããããšãïŒãã¹ã¿ãã¯ã®æäžéšã¯æ¬¡ã®è¡ã«ç€ºãããã«é æ¬¡å€æŽãããŸãã
... 5 ... 5 39 ... 5 39 7 ... 5 39 7 2 ... 5 39 7 2 3 ... 5 39 7 2 3 * ... 5 39 7 6 ... 5 39 7 6 + ... 5 39 13 ... 5 39 13 / ... 5 3 ... 5 3 + ... 8 ... 8 6 ... 8 6 â ... 2
äžèšã®ããã«ããã·ã³ã¯ããã°ã©ã ããã¹ãå
ã®åèªã
E
ããèªã¿åããšãã¹ã¿ãã¯ã®ãããã¯ãŒãã§ç€ºãããæäœãå®è¡ããŸãã ã
E
ããšããåèªãèªãã çŽåŸã«ãã¹ã¿ãã¯ã®æäžäœã®åèªãå®éã«ã¯æŒç®åã®åèªã§ãããããªããã°ã©ã ã«éå®ããŸãïŒããšãã°ãæ°å€ã®åèªã§ã¯ãããŸããïŒã ããã«ãæŒç®åã®ããåŸãã«ããåèªããã®æŒç®åã«ãã£ãŠæç€ºãããèŠä»¶ã«å¯Ÿå¿ããå Žåã«éå®ããŸãã ïŒããšãã°ãäžèšã®2é
ç®è¡æŒç®ã®å ŽåãæŒç®åã®çŽåŸã®2ã€ã®åèªã¯æ°åã§ãªããã°ãªããŸãããïŒ
ã€ãŸããç®è¡æŒç®ã®ãªãã©ã³ããåŒã§ããå ŽåãæŒç®ãå®è¡ããåã«ãã®åŒã®ä»£ããã«æ°å€ã代å
¥ããŸãã ããã¯ãæ¬è³ªçã«ç®è¡æŒç®ãæ°å€ãªãã©ã³ãã§ã®ã¿å®çŸ©ããããšããæ¡ä»¶ãæºãããã®ã§ãã
倿°ã䜿çšããèšç®
åŒãŸãã¯éšååŒãã眮æããšããŠãã®æ°å€ã§çœ®ãæããããšãæ€èšãããããã®çœ®æããã€å®è¡ããããæç€ºçã«ç€ºããŸãããããã¯äžèŠã§ã-ã
3 + 4
ãã¯ãã€å®è¡ãããã«é¢ä¿ãªããåžžã«ã
7
ãã«çãããªããŸã远å ã
ãã ãã倿°ãïŒå®æ°ãšã¯å¯Ÿç
§çã«ïŒäœçšããããã«ãªããšãç¶æ³ã¯æ¥æ¿ã«å€åããŸãã ïŒä»¥äžã§ã¯ã倿°ãå°ããæåã§æå®ããã
ããªã©ã®ãç¹å¥ãªåèªããªã©ã®å€§æåãäºçŽããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸããïŒåŒã®å€ãèšç®ããå¿
èŠããããšããŸãã
x + 4
倿°
å€ã3ã®ç¬éãããã¯ãäžèšã®åŒã§ã¯ãèšç®æã®æ°å€ãã
ãã®ä»£ããã«çœ®ãæããå¿
èŠãããããšãæå³ããŸãã ãã®åŸã®ã¿ãç®è¡çœ®æãå®è¡ã§ããŸãïŒã
3 + 4
ããã
7
ãã«çœ®ãæããŸãïŒã ã
x
ãã«äŸåãããã®ïŒã€ãŸãã衚çŸã
x + 4
ãïŒãããã
x
ããžã®å°æ¥ã®å€æŽã«äŸåããªãçµæïŒã€ãŸããã
7
ãïŒãååŸããŸãã
x
眮æãå®è¡ãããšãã®å€ã«ã 倿°ã
x
ãã®ãã¹ãããã·ã§ããããäœæããŸããã æããã«ã倿°ã
x
ãïŒæéãšãšãã«å€åããŸãïŒïŒã®ã¹ãããã·ã§ããããã€äœæããããæç€ºçã«ç€ºãããšã«åºå·ããŸãã
ãã®æç€ºçãªæç€ºã®ã¡ã«ããºã ããã§ã«å°å
¥ãããŠããã®ã§ãä»ãç§ãã¡ã¯åŽåã®æåã®ææãåç©«ããŸãã åŒãè©äŸ¡ããããã®ããã°ã©ã ã®äžéšïŒ
x + 4
çŸåšã次ã®åœ¢åŒããããŸãã
x E 4 + E
ãŸããäžèšã®ä»®å®ã«åŸã£ãŠãã¹ã¿ãã¯ã®ç¶æ
ã®ã·ãŒã±ã³ã¹ã¯æ¬¡ã®ãšããã§ãã
... x ... 3 ... 3 4 ... 3 4 + ... 7
ç§ãã¡ã®ãã·ã³ã¯ãä»ã®ããã€ãã®å®åŒåã§ã倿°
x
å€ã
3
ã§ããããšããäºå®ã説æããããã«æäŸããŸããããªãã¡ãããã°ã©ã å®è¡ããã»ã¹ã®ç¶æ
ã¯ãã¹ã¿ãã¯ã®æäžäœã¯ãŒããã
x
ãã®ç¬éã«ã
E
ãã®äžäœã¯ãŒããæ°å€ã¯ãŒãã
3
ãã«çœ®ãæããŸãã ãããã£ãŠãã¹ã¿ãã¯ã®æäžäœã«ãã倿°ã¯ãã®å€æ°ã®æŒç®åãšèŠãªãããèšç®ããã»ã¹ã§ã¯ããã®æç¹ã§ã®ããã°ã©ã å®è¡ããã»ã¹ã®ç¶æ
ã«äŸåããäœãã«çœ®ãæããããŸãã ãã®ãããªãæŒç®å倿°ãã¯ããã®çŽåŸã®ã¹ã¿ãã¯ã®ã¯ãŒãã«ç¹å¥ãªèŠä»¶ãèšå®ããã«å®è¡ãããŸãã ïŒæŒç®åãšå€æ°ã®é¡äŒŒæ§ã¯ã次ã®äŸã§ããã«åŒ·èª¿ãããŸããïŒ
äžéã³ã³ãã¥ãŒãã£ã³ã°
ããã°ã©ã ã®ããã¹ãã§èªã¿åããããã¹ãŠã®åèªãã¹ã¿ãã¯ã«è¿œå ãããŸãããåèªã
E
ãã¯äŸå€ã§ããããã¯ããã·ã³ã«åŒ·å¶çã«çœ®æãå®è¡ãããŸãã 以äžã§èª¬æããçç±ã«ãããã
E
ããšããåèªãã¹ã¿ãã¯ã«è¿œå ã§ããããã«ããããšèããŠããŸãã ãã ãããã®æ¡åŒµæ©èœã®ãã¬ãŒã ã¯ãŒã¯ã¯æ¢ã«ååšããŸãã åèªã
P
ãïŒãå»¶æãããå»¶æïŒã§ç€ºãããç¹å¥ãªæŒç®åãå°å
¥ããŸããããã¯ãåºå®çœ®æã«ããèšç®ã®éçšã§å®è¡ãããŸããã€ãŸããåèªã
ãã«çœ®ãæããããŸãã æ¬¡ã®äŸã§ã
P
ãæŒç®åã®äœ¿ç𿹿³ã説æããŸãã
ãã®äŸã§ã¯ãã
x
ããã
y
ããããã³ã
plinus
ããšããååã®3ã€ã®å€æ°ããããŸãïŒããã©ã¹-ãã€ãã¹ã-ãã©ã¹ãŸãã¯ãã€ãã¹ããïŒã ããã°ã©ã å®è¡ããã»ã¹ã®ç¶æ
ã¯ãã
plinus E
ããèªã¿åããšã¹ã¿ãã¯ã®å
é ã«ã
+
ããšããåèªãçæããããšä»®å®ããŸãã ããã¹ããèªããšãïŒ
x PE y PE plinus EPE
ã¹ã¿ãã¯ã®æäžéšã«ã¯äžé£ã®ç¶æ
ããããŸãã
... x ... x P ... x E ... x E y ... x E y P ... x E y E ... x E y E plinus ... x E y E + ... x E y E + P ... x E y E + E
ãããã£ãŠãã¹ã¿ãã¯ã®æäžéšã«ã¯ãããã°ã©ã ã®äžéšãšããŠèªã¿åããããšãã«åŒã
x + y
ããè©äŸ¡ããåèªã®æååãå«ãŸããŸãã 倿°ã
plinus
ãã®å€ãã
-
ãã®å ŽåãåŒã
x - y
ãïŒã€ãŸããããã°ã©ã ã®äžéšãšããŠãã®åŒãè©äŸ¡ããåèªã®æååïŒãçæããŸãã
æã
ãè¡ã£ãã®ã¯ãåŒã
x plinus y
ãã®äžéè©äŸ¡ã§ããããã®çµæããŸãåŒã§ãã åã®äŸã§ã¯ãæåŸã®ã¹ã¿ãã¯ã¢ã¯ã·ã§ã³ã¯åžžã«1ã€ã®æ°å€ãæ®ããŠããŸããã æ°å€ã¯åŒã®äºçްãªäŸã§ãããããã£ãŠãæ°å€ã ãã§ãªããäžéçµæã®åœ¢åŒã§ã®ããäžè¬çãªåŒã®çæã¯ãéåžžã®æ
£è¡ã®æãããªç¶ç¶ã§ãã
倿°ã®å€æŽ
ãããŸã§ãã¹ã¿ãã¯ã®æäžéšã§ã®åèªã®çæã«ã€ããŠèª¬æããŸãããããããã®åèªã䜿çšããŠäœããããã«ã€ããŠã¯èª¬æããŠããŸããã ããã«ããã®å€æ°ã«é¢ããŠãããã°ã©ã å®è¡ããã»ã¹ã¯ããã®å€æ°ã®èšç®ã以åã«å®çŸ©ããã眮æããããããããªç¶æ
ã«ããå¯èœæ§ãããããšã瀺åããŸãããããã®çœ®æèªäœã®å®çŸ©ã«ã€ããŠã¯ä»¥åã«èšåããŠããŸããã ãããã®2ã€ã®ã¹ããŒã¹ã¯ã代å
¥æŒç®åãå°å
¥ããããšã§åããããŸãã
ã
x := 3
ãã®ããã«1ã€ã®åèªã«æå³ãå²ãåœãŠãã«ã¯ãããã°ã©ã ã«æ¬¡ã®ããã«èšè¿°ã§ããŸãã
3 x := E
ã¹ã¿ãã¯ç¶æ
ã®ãããã«ãªããŸãïŒ
... 3 ... 3 x ... 3 x :=
å²ãåœãŠæŒç®åã
:=
ãã®å®è¡äžããã·ã³ã¯ãã®çŽåŸã®åèªã調ã¹ãŸãã å²ãåœãŠãé©çšããå¿
èŠããã倿°ã§ãªããã°ãªããŸããã æ¬¡ã®åèªããã®å€æ°ã«å²ãåœãŠããïŒããã«ã€ããŠã¯ä»¥äžã§è©³ãã説æããŸãïŒãã¹ã¿ãã¯ã®æäžéšã«ãã3ã€ã®åèªïŒçŸåšåŠçäžïŒãã¹ã¿ãã¯ããåé€ãããŸãã æ¬¡ã®å²ãåœãŠïŒã€ãŸãã倿° "
x
"ã®æ°ããå²ãåœãŠïŒãŸã§ããã®å€æ°ãèšç®ãããšãã¹ã¿ãã¯ã®ãããã¯ãŒããã¯ãŒã "
3
"ã«çœ®ãæããããŸãã
æååã®å²ãåœãŠ
ããã¯ãå·ŠåŽãšå³åŽã®äœçœ®ãŸã§ã
ALGOL 60
䜿çšãããå²ãåœãŠã¹ããŒãã¡ã³ãã«è¿ããã®ã§ãã ãã ãã1ã€ã®åèªã®ã¿ããå€ãå²ãåœãŠãã ãã§ã¯ååã§ã¯ãªããããåèªã®æååããå€ãå²ãåœãŠãå¿
èŠããããããå²ãåœãŠãããå€ãã¹ã¿ãã¯ã«åŒã蟌ãŸããæ·±ãã瀺ãããšãã§ããã¯ãã§ãã ãããè¡ãæãç°¡åãªæ¹æ³ã¯ãã¹ã¿ãã¯ã«ããŒã«ãŒãæ¿å
¥ããããšã§ããããšãã°ãå²ãåœãŠãããå€ã®æåŸã®åèªã®åŸã«ç¹å¥ãªåèªã
ãïŒãTerminalããã-endïŒãæ¿å
¥ããŸãã ããã«ãå¥ã®å²ãåœãŠæŒç®åã
:-
ããå°å
¥ããŸãïŒåã®æ®µèœã§ç€ºãããåèªå²ãåœãŠããšã¯å¯Ÿç
§çã«ããè¡å²ãåœãŠããšåŒã°ããŸãïŒã ãã®ã¹ããŒãã¡ã³ãã®å®è¡äžã«ããã·ã³ã¯ã¹ã¿ãã¯ã®äžéšãäžæ¹åã«èª¿ã¹ãŸãã æåã®åèªïŒã
:-
ãæŒç®åã®ããäžïŒã¯ãå€ãå²ãåœãŠãå¿
èŠããã倿°ã§ãªããã°ãªããŸããã ãã®åŸããã·ã³ã¯ãç¹å¥ãªããŒã«ãŒã
ãã«ééãããŸã§åèªããšã®èª¿æ»ãç¶ããŸãããã®æ¹æ³ã§éä¿¡ãããåèªã¯ãå²ãåœãŠãããå€ãšããŠèªèãããè¡ãäžç·ã«åœ¢æããŸãã
ã
ããã¹ã¿ãã¯ã«è¿œå ããæãç°¡åãªæ¹æ³ã¯ãã
ããšããåèªããã¹ã¿ãã¯ãèªã¿èŸŒãŸããããã°ã©ã å
ã®ç®çã®å Žæã«åã«æ¿å
¥ããããšã§ãã ãã ããããã¯è¡ããŸããã åŸã§èª¬æããçç±ã«ããããã®åèªãå«ãŸãªãããã°ã©ã ã®å¶åŸ¡äžã§ãã¹ã¿ãã¯ã®äžçªäžã«ã
ããçæããæ©èœãå¿
èŠã§ãã ã¹ã¿ãã¯ã®äžéšã«ã
E
ããäœæã§ããã®ãšåãããªãã¯ã§ãããè¡ãããšãã§ããŸãã åèªã
S
ãã§ç€ºãããæ°ããæŒç®åãå°å
¥ããŸãïŒããšãã°ããã»ãã¬ãŒã¿ããã-ã»ãã¬ãŒã¿ããŸãã¯åã«ã
S
ããã¢ã«ãã¡ãããã®ã
T
ãã«å
è¡ããããïŒãå®è¡äžã«åèªã
T
ãã«çœ®ãæããããã«ãŒã«ã確ç«ããŸãããããåèªã
ããã¹ã¿ãã¯ã«è¿œå ããå¯äžã®æ¹æ³ã§ããããšã
ããããã¹ãŠã䜿çšããŠã代å
¥æŒç®åã
x := 3
ãã®ä»£æ¿è¡šèšæ³ãã€ãŸãïŒ
SE 3 x :- E
ã¹ã¿ãã¯ã®äžéšã®ç¶æ
ã®ã·ãŒã±ã³ã¹ãäžããïŒ
... S ... T ... T 3 ... T 3 x ... T 3 x :-
ãã®çµæã¯ãåèªã
:=
ãã®å²ãåœãŠã䜿çšãã以åã®ãã©ãŒã ãšåçã§ãã
äžéã³ã³ãã¥ãŒãã£ã³ã°ãè¡ã«ä¿åãã
ãã®äŸã§ã¯ããã匷åãªä»£å
¥ã䜿çšããŸããããããã¯ã以åã®ä»£å
¥ã®1ã€ãæ¡åŒµãããã®ã§ããã€ãŸããåŒã
x plinus y
ãã®äžéè©äŸ¡ãèšè¿°ãã
x plinus y
ã§ãã ãã®äžéèšç®ã®çµæã¯ã倿°ã
x
ãããã³ã
y
ãã«äŸåããåŒã§ããããã®åŒãã
z
ããšåŒã³ãããšããŸãã ãããè¡ãã«ã¯ãããã°ã©ã ã«æžã蟌ã¿ãŸãã
SE x PE y PE plinus EPE z :- E
ãã®è¡ã®æåŸã®ã
E
ãã¹ããŒãã¡ã³ããå®è¡ããããšãã¹ã¿ãã¯ã®æäžéšã¯æ¬¡ã®ããã«ãªããŸãïŒã
plinus
ãã®å€ã«é¢ããåãä»®å®ã®äžïŒã
... T x E y E + E z :-
ãã®ã¹ããŒãã¡ã³ãã®å®è¡åŸãäžèšã®åèªã¯ã¹ã¿ãã¯ããåé€ãããåèªã
T
ããå«ãŸããŸãã åŸç¶ã®å²ãåœãŠã®åã«ã倿°ã
z
ãã®èšç®ã¯ãããã«å²ãåœãŠãããæååã®å®è¡ïŒãèªã¿åããïŒãæå³ããŸãã 倿°ã
z
ãã®èšç®äžããã·ã³ã¯ãã®è¡ã®æåã®ã¯ãŒãã«ã¢ã¯ã»ã¹ã§ããå¿
èŠããããŸãã ãã ãããã®è¡ãèªã¿å§ãããšãã«ã¯ããã®è¡ã®æåŸã®åèªãã©ãã«ããããç¥ãå¿
èŠããããŸãã å²ãåœãŠæŒç®åã¯ããšã³ãããŒã«ãŒãå床远å ããããšã§ãããèæ
®ãããã®ç®çã®ããã«åãåèªã
ãã䜿çšã§ãããšä»®å®ããŸãã 倿°ã
z
ãã®èšç®äžãããã°ã©ã ã«å²ãåœãŠãããè¡ã¯ãçµäºããŒã«ãŒã
T
ããèŠã€ãããŸã§ããã°ã©ã ã®äžéšã«ãã£ãŠå·Šããå³ã«èªã¿åãããŸãã ææ°ã®å²ãåœãŠã«é¢ããæ°ããç¶æ³ãç°¡åã«æç€ºã§ããŸãã
z â x E y E + ET
åæ§ã«ã以åã®å²ãåœãŠïŒ
3 x := E
SE 3 x :- E
次ã®ããã«æç€ºãããç¶æ³ã«è²¢ç®ããŸãã
x â 3 T
ãã®é
çœ®ã®æãé¡èãªåŽé¢ã®1ã€ã¯ããæ°åããšãæç€ºãã®éåžžã®åºå¥ãå®å
šã«ãªããªã£ãããšã§ãã 倿°ã®å€ã¯ããã°ã©ã ã®äžéšãšããŠå®çŸ©ããããã®å€æ°ã®èšç®ã¯ããã°ã©ã ã®ãã®éšåã®å®è¡ãæå³ããŸãã
çŸåšã®éçºã«é¢ããæ³šèš
課é¡ãšæž¬å®å€ã®äºéæ§ã«ã€ããŠ
ããã«ãå²ãåœãŠãšäžæ¹ã§ããã¹ããèªãããšãšã®éã®ç¹å®ã®åœ¢åŒã®äºéæ§ã«æ³šæãåèµ·ããããšæããŸãã ãã·ã³ãããã°ã©ã ããã¹ããèªã¿åããšãã¹ã¿ãã¯ã®æäžéšã¯ãã®ããã°ã©ã ããã¹ãã®å¶åŸ¡äžã§åããããŸãã å²ãåœãŠã§ã¯ãã¹ã¿ãã¯ã®ã³ã³ãã³ãã®å¶åŸ¡äžã§ãèªã¿åãå¯èœãªããã¹ãããäœæãããŸãã äºéæ§ã¯ãã¢ã¯ã»ã·ããªãã£èŠä»¶ã®èгç¹ããã説æã§ããŸãã ã¹ã¿ãã¯äžã®åèªã¯ããããããŠã³æ¹åã§ã®ã¿ã¢ã¯ã»ã¹å¯èœã«ããå¿
èŠããããŸãã ãã ããå²ãåœãŠæŒç®åãã¹ã¿ãã¯ã®å
é ãèªã¿åãå¯èœãªããã¹ãã«å€æããå ŽåãåŸç¶ã®åèªã¯ä»ã®æ¹åã§äœ¿çšå¯èœã«ãªããŸãã
æåŸã«ãã¹ã¿ãã¯ã¯ãå¿åã®äžéçµæãçšã«äºçŽãããŠããŸãããèªã¿åãããããã¹ãã¯ãååãšããŠãå°ãªããšãåžžã«ãååä»ããã§ãã倿°ã«å²ãåœãŠãããšã§äœæããããã§ãã
ååž°ã«ã€ããŠ
æ°é
ãã®ããèªè
ã¯ã倿°ã®å€ã®è¡šç€ºã«å ããŠããã·ã³ã«ããã«2ã€ã®å€æŽãæé»çã«å°å
¥ããããšã«æ°ä»ããŸããã
1ã€ç®ã¯ãããã°ã©ã ããã¹ãå
ã®åèªã
ãã®åºçŸãšãããã«å¯Ÿããæ©æ¢°ã®ã峿åå¿ãã§ããããã¯æ¯èŒçåçŽã§ãã ç§ãã¡ã®çè§£ã§ã¯ãããã¹ãã§èªãŸããåèªã
ãã¯ã¹ã¿ãã¯ã®äžçªäžã«ã³ããŒãããŸããïŒ ä»£ããã«ãåé¡ã®å€æ°ã®ãã®èšç®ãåŒãèµ·ãããã
E
ãã¹ããŒãã¡ã³ãã®çŽåã®å€æ°ã¯ãŒããŸã§ããã·ã³ã«èªã¿åããç¶è¡ãããŸãã èšãæããã°ãããã¯éããããã«ãŒãã³ã®çµããã§ã
return
ãã®ããã«æ¯ãèããŸãã
ãããã倿°ã®èšç®ã«ã¯ä»ã®å€æ°ïŒããèªäœãå«ãïŒã®èšç®ãå¿
èŠãªå ŽåããããŸãã倿°ã®èšç®ã®å®éçãªå®çŸ©ã¯åºæ¬çã«ååž°çã§ãããååž°çå®çŸ©ã«å¿
èŠãªã¡ã«ããºã ã¯...å¥ã®ã¹ã¿ãã¯ã§ãïŒ ãã®2çªç®ã®ã¹ã¿ãã¯ã¯ãå¿åã¹ã¿ãã¯ãšåŒã°ããæåã®ã¹ã¿ãã¯ãšã¯å¯Ÿç
§çã«ããã¢ã¯ãã£ããŒã·ã§ã³ã¹ã¿ãã¯ããšåŒã°ããŸãã ã¢ã¯ãã£ããŒã·ã§ã³ã¹ã¿ãã¯ã®æ©èœã®1ã€ã¯ãèªã¿åãããã»ã¹ãå¶åŸ¡ããããšã§ãã 倿°ã®èšç®ãéå§ããããšãã¢ã¯ãã£ããŒã·ã§ã³ã¹ã¿ãã¯ããã£ã±ãã«ãªãã察å¿ããåèªã
ããèªã¿åããããšã以åã®ãµã€ãºãŸã§æžå°ããŸãã ïŒãã·ã³æ§é ã®éåžžã®çšèªã§ã¯ãã¢ã¯ãã£ããŒã·ã§ã³ã¹ã¿ãã¯ã«ã¯ãªãŒããŒã«ãŠã³ã¿ãŒå€ã®ã¹ã¿ãã¯ãå«ãŸãããã®æäžäœèŠçŽ ã¯å®çŸ©äžçŸåšã®ãªãŒããŒã«ãŠã³ã¿ãŒã§ããåãçšèªã§ã¯ãå€ãèŠçŽ ã¯æ»ãã¢ãã¬ã¹ãå«ãã¹ã¿ãã¯ã®ããã«æ©èœããŸãïŒ
çºèšã 2ã€ã®ã¹ã¿ãã¯ã1ã€ã«ãŸãšããããšãã§ããŸãã , . , , , .
, , : . («
x
», «
y
», «
plinus
» . .) , «». «» , . «»,
ALGOL 60
, , .
, , , . , , . .
« », : ( ). : , .
, , , .
(: , ) . (, «», ,
ALGOL 60
.) «
L0
», «
L1
», «
L2
» . .
, . , .
«
E
» , - (, «
L2
»), . , ( ) . . , , .
. «
x
», «
y
» «
complus
» ( «complex-plus» â ) :
x â 10 23 T
y â 5 -2 T
complus â L0 E := E L1 E := E L2 E := E L1 EE + E L1 EE L0 EE + E T
:
SE x E y E complus E z :- E
, «
z
»:
z â 15 21 T
, , .
ALGOL
: «complus» â , . . , « », , , .
. , «
plus
» «
+
». :
SE + PE plus :- E
:
plus â + ET
:
x E y E plus E
x E y E + E
. , .
ãããã«
, . «
goto
», . , . -, , -, : , .
. , , â , , , , .
, , , , . â ,
ALGOL 60
. , , , , . , , , (
ALGOL 60
) . : ( ) , , . , .
, , , . ; « ». , , , , , .
, , ( , ), . «
ALGOL 60
» , , , , , .
, . ,
, ,
: ( ) .