ðŸ Archived View for schinkel.bevuta.com ⺠articles ⺠forth.jp.txt captured on 2024-08-31 at 11:40:22.
â¬ ïž Previous capture (2023-11-04)
-=-=-=-=-=-=-
------------------------------------------------------------------ 以äžã®ç¿»èš³æã¯ãFelix Winkelmann ã® Thoughts on Forth Programming (http://call-with-current-continuation.org/articles/forth.txt) 㮠翻蚳ã§ãããåèè ã®èš±å¯ãåŸãŠå ¬éãããã®ã§ãã 2021-09-01 Nobuhiko FUNATO (nfunato @ acm . org) æŽæ°å±¥æŽ: 2021-09-02(rev10): Shiro Kawaiããã«ãææããã ãã誀蚳èšæ£/æ¹åãåæ 2021-09-02(rev09): å ¬éåç ------------------------------------------------------------------ ãã®ææžã¯ãç§ã®Forthã®å²åŠã«é¢ããç解ãšããããç¹ã«èå³æ·±ããã®ã«ããŠãã ããã€ãã®å±æ§ããForthãšãã®äœ¿ãæ¹ã«ã€ããŠç§ãéèŠãšæãããšãšäžç·ã«èšè¿°ã ãè©Šã¿ã§ãããããã¯ãã¹ãŠç§ã®å人çæèŠã§ããããã°ããšèŠãªãã¹ãã§ã¯ãã㟠ãããç§ã¯ãããŸã§æ§ã ãªããã°ã©ãã³ã°èšèªã䜿ã£ãŠããŸãããããã®ã»ãšãã©ã 奜ãã§ã¯ãããŸããã§ãããSchemeãPrologã®ããã«éåžžã«ãšã¬ã¬ã³ãã§åŒ·åãªèšèª ããããšæããŸãããForthã®ããã«ããã°ã©ãã³ã°ã®åèãæ±ããèšèªã¯ãããŸããã Forthã¯ãäžäººã®äººéãå°äººæ°ã®ããã°ã©ãã®ã°ã«ãŒãã«åãããŠäœããããéåžžã« ãå人䞻矩çããªãã®ã§ãããã®çç±ã®ã»ãšãã©ã¯ãForthã·ã¹ãã ãèªåã§å®è£ ã ãããšãèªç¶ã§æ¯èŒçç°¡åã§ããããš(ãããŠãããã¹ãã§ããããš)ãšãèšèªã«æ¬è³ª çã«å¯éæ§ããããå人ã®ããŒãºã«é©å¿ããããšã«ãããŸãããããã£ãŠãç§ãæžã㊠ããããšã¯ãããã°ã©ãã³ã°èšèªã§ãããšåæã«ãšã³ãžãã¢ãªã³ã°å²åŠã§ããã Forthã®äžã€ã®èŠæ¹ã«éããŸããã ç§ã®èªèã§ã¯ãForthããã°ã©ãã«ã¯2ã€ã®èãæ¹ã®æµæŽŸãååšããŸããäžæ¹ã¯ã極端 ãªã·ã³ãã«ããããããªãºã ãçãå®çŸ©ããããŠå¯èœãªéãããŒããŠã§ã¢ã«è¿ããšãã ãŸã§éããŠããããšã奜ããå€å žæŽŸãã§ãã ããäžæ¹ã¯ãä»ã®èšèªã«èŠãããæ©èœã§å€å žçãªForthã¢ãã«ãæ¡åŒµããäžè¬çã« æ©èœãããŒã«ãè¿œå ããããšã§ãããã³ã³ãã¥ãŒãã£ã³ã°ã®äž»æµã«ã¢ã¯ã»ã¹ããããèšèª ã«ããããšåªåãããçŸä»£æŽŸãã§ããåŸè ã¯ãæŠããŠã¹ã¿ãã¯ãéããŒã©ã³ãèšæ³ãéã ãªãã¡ã¯ã¿ãªã³ã°ãšãã£ãã¢ã€ãã¢ããäžè¬çã«çŸä»£ã®ããã°ã©ãã³ã°èšèªã«äžå¯æ¬ 㧠æãŸãããšèããããŠãããã®ãšæ··ãåãããããšããŠããŸãããçµæãšããŠå€ãªèšæ³ã åããLispã®ãããªãã®ã«ãªã£ãŠããŸããç§ã¯å人çã«ã¯åè ã®é£å¶ã«å±ããŠããŸããã ããã¯åŸã«ç¶ãæç« ã§ããæããã«ãªãã§ãããã ãŸã第äžã«ãForthã¯ããªã颚å€ããã§ãšã£ãŽã«èŠããããã€ãã®åºæ¬çãªç¹æ§ãåå°ãš ããŠããŸããããã¯Forthããã€ã¯ãã³ã³ãã¥ãŒã¿æ代ã«(ä»æ¥ã®åºæºã§ã¯)éåžžã«éããã 容éãæäŸãããã·ã³äžã§èªçããããšãããã·ã³ãã«ããšã³ã³ãã¯ããã«æ ¹ãããŠãã ããšã«ãããŸãããããããããã®å±æ§ã¯ãããçš®ã®ç¬ç¹ã®å©ç¹ããããããŸãã ãã®ãããªç¹æ§ã®1ã€ã¯ãéããŒã©ã³ãèšæ³ã®äœ¿çšãšããŒã«ã«å€æ°ã®æ¬ åŠãããã¯çç¥ã§ãã ãµãã«ãŒãã³ãããªããã£ããžã®åŒæ°æž¡ãã¯ã¹ã¿ãã¯äžã§è¡ããããããã³ãŒãã®ãã¡ã¯ã¿ ãªã³ã°(å解)ã¯ãšãã«è¶³ããªããã®ã«ãªããŸããåŒã¯ãé¢æ°åããã°ã©ãã³ã°ã®ããã€ã³ã ããªãŒãã¹ã¿ã€ã«ã®ããã«ãæèããåãåºããŠæ°ããå®çŸ©ã«ç§»åããããšãã§ããŸãã çãå®çŸ©ãš(éåžžã¯)äœããµãã«ãŒãã³åŒã³åºããªãŒããŒãããã匷調ããããšã¯ãå ±éã® ã³ãŒãã·ãŒã±ã³ã¹ãåé¢ããããšãããã«ç€ºåããŠããŸããããŒã«ã«å€æ°ã®äœ¿çšã¯ããã é£ããããããšããããŒã«ã«å€æ°ã®æ©èœãé¿ããã¹ãçç±ã§ãã ããäžã€ã®äŸ¿å©ãªæ©èœã¯ãåŸãã(ã¯ãŒãã®)å€ãåå®çŸ©ããŠã以åã®äœ¿çšç®æã®æå³ã« 圱é¿ãäžããªãè¶ éçãªç°å¢ã§ããããã«ãããæ¢ã«ã³ã³ãã€ã«ãããã³ãŒãã®å®å®æ§ã å€§å¹ ã«åäžããæ¢åã®ã¯ãŒããã·ã£ããŠã€ã³ã°ããããšãåŸããã³ãŒããå®çŸ©ãããã㧠åé¡ãšãªããªãéããæ¢åã®å®çŸ©ã«å¯Ÿãã代æ¿ã®ååãèŠã€ãããã¬ãã·ã£ãŒã軜æžãããŸãã Forthã¯ããã£ãã©ãªãŒã䜿ã£ãéåžžã«åŒ·åãªåå空éã·ã¹ãã ãæäŸããŠããŸããã ã·ã£ããŠã€ã³ã°ãåé¡ã«ãªããªãéããç°å¢ãæ±æããªãããã«åå空éãåé¢ããããšã¯ å³å¯ã«ã¯å¿ èŠã§ã¯ãããŸããã Forthã¯éåžžã察話çã«åäœããŸããåºæ¬ç㪠read-eval-print-loop ã¯éåžžã«ã·ã³ãã« ãªã®ã§ããã¹ãŠã®æ©èœã察話çãªæ¹æ³ã§ãã¹ãã§ããŸããForthãå®è£ ããéã«æåã«è¡ã ããšã®äžã€ã¯ããããã¬ãã«ã€ã³ã¿ããªã¿ãåãããã«ããããšã§ããããã€ã¹ãã©ã€ãã察話çã« ãããã°ã§ããããšãæ³åããŠã¿ãŠãã ãã(ããããé«ã¬ãã«èšèªã§ãããã°ã§ããããã« ãªãåã«èšå€§ãªéã®ã³ãŒãããã§ã«ååšããŠåäœããªããã°ãªããªãLispãã·ã³ã®å㫠座ããã«)ãçµèŸŒã¿ã·ã¹ãã ã®ããã°ã©ãã³ã°ããã¹ãã調æ»ãã©ãã ãç°¡åã«ã§ãããã å£éèŠãããšãã§ããŸãã éåžžã«åæã®æ®µéã§ã®å¯Ÿè©±çãªãããã°ã¯ãããã ã¢ãããForthã§ã®èšèšãå®è£ ã®ãã€ãã® ããæ¹ã§ããããšãã»ã®ããããŠããŸããããã¯ãå³èããããã³ã°ã®åããããŸããã ç§ãã¡ã®å¿ã¯ããããããŠã³ã®æ¹æ³è«ãäºåã®èšèšãã¬ã€ã€åãããã¢ãŒããã¯ãã£ã æåã«èšç»ãç«ãŠãŠããæ§ç¯ãè¡ããšããçæ³ã«çžãããŠããŠã解決ããããšããŠãã åé¡ãå®å šã«ææ¡ããŠããããšã¯ãã£ãã«ãªããèŠä»¶ãæåŸ ãåºç€ãšãªãã·ã¹ãã ã®ç¥èã äºåã«å®å šã«ããã£ãŠããããšã¯åã«çå®ã§ã¯ç¡ãããšããäºå®ãç¡èŠããŠããã ããªã®ã§ãã Forthã«ã¯ã¡ã¢ãªãããããŸãããã¡ã¢ãªå ã®ã¹ãã¬ãŒãžã®ã¯ãŒããµã€ãºãšãã€ããµã€ãºã® ã»ã«ããããŠã¹ã¿ãã¯ã§ããã¢ã»ã³ããªèšèªã®ã¬ãã«ã«ã¹ãããããŠã³ããã®ã¯é¢åã« èããããããããŸããããã¡ã¢ãªã¬ã€ã¢ãŠãã®ããããåŽé¢ãå®å šã«å¶åŸ¡ããããšã ã§ããŸããããªããšãã·ã³ã®ã¢ãŒããã¯ãã£ã®éã«ã¯äººå·¥çãªéå£ã¯ãããŸãããã ãã©ã³ã»ãã€ãã³ã»ãã·ã³ã«ä¹ã£ãŠããªããšæãããããšããæœè±¡åããããŸããã å®éããã©ã³ã»ãã€ãã³ã»ãã·ã³ã®äžã«ä¹ã£ãŠããã®ã§ãããã ãããŠãããèªããããšã§ãæçµçã«çã®å ¬éããããã·ã³ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ã æã«å ¥ãã®ã§ããããã¯è¯ãããšã§ããã¹ãŠã®Cèšèªããã°ã©ã㯠ãã®ã¬ãã«ã®ã¢ã¯ã»ã¹ãå¯èœ(ãããŠãããå¿ èŠãšããŠãã)ã§ãããForthããã°ã©ãã¯ã ã³ã³ãã€ã©ã®ééæ§ã®ç¡ãæäœããäžæ確ãªæ§é ã¬ã€ã¢ãŠããå®çŸ©ãããŠããªãåäœã® ãããªãéªéã«ãªãèãæœè±¡åã«ã¯é©ããããªãã§ããããèšèªæšæºã«åããŠããã°ã©ã ããå Žåãåžžã«ããã解éãã人ãã¡ã«ç¿»åŒãããããšã«ãªããŸãããå®è£ ã«åã㊠ããã°ã©ã ããå Žåã¯ãç¹ã«èªåã§å®è£ ãäœã£ãå Žåã¯ãäžæçãªç¹ã¯äœããããŸããã Forthã«ã¯ãyak-shavingãã¯ãããŸãã: èªåãšãŽãŒã«ãšã®éã«ãããã®ã¯ãã¹ãŠ ããã«èªåã§çœ®ãããŠãããã®ã§ããããã¯ãããã°ã©ãã³ã°ã®ä»äºã®å€ãã¯ä»äººã®ä»äºã äœã«äœ¿ãããããäºæ³ããŠåœŒãã®å€±æãåé¿ããããš(ããã¯å®éã¯äžå¯èœã§ãã)ã§ãããš æããŠãããèå³æ·±ãçµéšã§ãã ããã¯ããã·ã³ã«çŽæ¥ã¢ã¯ã»ã¹ã§ããããã«ããããšããŠããã«ãããããã誀ã£ãå®å šæ§ã æããããéªéã«ãªã£ããšãã«åé¿çãå¿ èŠãšããããããçš®é¡ã®å¶éãæäŸãããã ç¿åŸã«äžçããããããªããªãé£ããå®å šæ§ã®ã¢ãã«ã課ããŠããèšèªã§ã¯ããã«æªåããŸãã ãã·ã³ãžã®äœã¬ãã«ã®çŽæ¥ã¢ã¯ã»ã¹ãæäŸããåæã«èªåã¡ã¢ãªç®¡çã®ãããªé«ã¬ãã«ç°å¢ã® ãã¹ãŠã®å©ç¹ãæäŸããäžã€ã®èšèªãæã«ããããšã¯ã§ããŸãããã©ããã«ãããå€ãã®ã³ãŒãã ããå€ãã®å®åæãããè匱ã§äººå·¥çãªæœè±¡åãå¿ èŠãšããã ãã®ç®ç«ã£ãã®ã£ãããããããš ã§ããããç§ãã¡ã¯äž¡æ¹ã®æ¹æ³ãæã¡ãããšæã£ãŠããŸããããã®äºåæ³ãèŠçã§ãªãããããšã çŽæãã人ã¯èª°ã§ãä¿¡ããŸãããããã¯ãã¹ãŠå€±æããŠããŸãããã·ã³ããé¢ããããŠã èšèªãã³ã³ãã€ã©ããŸãã¯ããã©ãã€ã ããåã°ããããã ãã«äœããããŠããŸãããã§ãã ããã§æ§èœã®è©±ãæã¡åºã人ãããããšã§ããããã¢ãã³ã§è€éãªèšèªã¯åçŽãªã€ã³ã¿ããªã¿å èšèªã«ã¯ã§ããªããããŒãªæé©åãæäŸããŠããã®ã ãš(ãšã¯ãããForthã€ã³ã¿ããªã¿ã¯éåžžã« äœã¬ãã«ã§ãã³ã³ãã€ã«ãããã³ãŒããšè§£éãããã³ãŒãã®å¢çã¯éåžžã«èããå€ãã®CPU㧠ã€ã³ã¿ããªã¿ã¯2ã€ã3ã€ã®ãã·ã³åœä»€ã§æ§æãããŠããŸãã)ãããã¯æè¡çã«ã¯æ£ããã®ã§ããã ãã®ãããªéãæé©åäœæ¥ãå¿ èŠãã©ããã¯è°è«ã®äœå°ããããŸããããªãã®ã³ãŒãã® ã»ãšãã©ã¯ãæè¿äœãåºãããŠãããããŒããŠã§ã¢(bloatware)ã®äžã§å®è¡ãããããšã¯ ãã£ãã«(ãããã¯æ±ºããŠ)ãªãã§ãããããå®è¡æããã©ãŒãã³ã¹ã®èª¿æ»ã¯ãããå®æç㪠æå³åããæã£ãŠããŸããç§ãã¡ã¯ããããããµã€ã¯ã«ã®é床ãç¶æãã€ã€ãã¡ã¢ãª ãã©ãã£ãã¯ããã£ãã·ã¥ãã¹ãå¢å ãããèšå€§ãªéã®ã³ãŒããæ°ã«ããããšã¯ãããŸããã ãã€ãã£ãã³ãŒãã³ã³ãã€ã©ãæäŸããå€ãã®Forthã·ã¹ãã ããããŸãã(äžã«ã¯éåžžã« æŽç·Žããããã®ããããŸã)ãå€ãã®å Žåããã¯å¿ èŠãªããã¡ã¢ãªãšè€éãã®ç¹ã§ã³ã¹ãã ãããã ãã§ããé«åºŠã«æé©åãããã³ã³ãã€ã©ãæ瀺ããã»ãã¥ãªãã£ãžã®åœ±é¿ãç¡èŠ ãããšããŠãããœãŒã¹ããçæãããã³ãŒããå®å šã«ç解ã§ããããšã¯ãæºè¶³æãããã å¿åŒ·ããã®ã§ãã ããã¯ãæ§æã¬ãã«ã ãã§ãªããæœè±¡åã¬ãã«ã§ã®ã³ã³ãã¯ããã«ã€ãªãããŸãããœãã ãŠã§ã¢ãç解ã§ããªãããšããããã°ã©ããç¥ãã¹ãã§ã¯ãªã詳现ããããã°ã©ããå®ãã ãšããã¬ã€ã€ãŒã®å¢æ®ã«ã€ãªãã£ãŠããŸãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã (ããèªèº«ã®æœè±¡åã åéãããã®)ã¯ã©ã³ã¿ã€ã ã©ã€ãã©ãªã®äžã«ãããã©ã³ã¿ã€ã ã©ã€ãã©ãªã¯ã¢ããªã±ãŒã·ã§ã³ ã¬ãã«ã®ã©ã€ãã©ãªã®ããŒã¹ãšãªããèšèªã¬ãã«ã®æœè±¡åã®åºç€ãšãªã£ãŠããŸãã æœè±¡åã®ããããããã¯ãã以äžã®æœè±¡åã®ããã«ãå¢ãç¶ããæœè±¡åã®å¡ã¯ãå®éã« å®è¡ããŠããããšã«ã€ããŠã®ç¥èã®äžè¶³ãèªããããšã§ããããã¯ä»æ¥ã§ã¯è¯ãããšã ãš èããããŠããŸãã(ãç¡ç¥ã¯åãªãã)ãå®éã«ã¯ãã¡ãªãã以å€ã®äœç©ã§ããããŸããã ããããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æ©èœããã€ããªãã¡ã€ã«ãã©ãŒããããããŒã ãŠã§ã¢ãžã®çŽæ¥ã¢ã¯ã»ã¹ãªã©ã®äœã¬ãã«ã®ã€ã³ã¿ãã§ãŒã¹ã¯ãäžè¬çã«èŠããããã㪠é£è§£ã§çŠãããããã®ã§ã¯ãããŸããããããã®ã€ã³ã¿ãã§ãŒã¹ã¯ã(ããšããããšããŠã) ã²ã©ãææžåãããŠããããç¹å®ã®ã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³ã«ç¹æã®ææžåãããŠããªã æ¡åŒµæ©èœãå«ãŸããŠããã ãã§ãããããã¯ãã€ã³ã¿ãã§ãŒã¹ã®ãè¯ããéšåã¯ãœãããŠã§ã¢ æ åœè ã«ä»»ãããšæ±ºããããŒããŠã§ã¢ãšã³ãžãã¢ãç²éã«èšèšããã ããããããŸããã Forthã§ã¯ãçæ³çã«ã¯2ã€ã®å±€ãæã€ããšã«ãªããŸã: æå ã®åé¡ã«å¯Ÿããããã°ã©ãã³ã° ã€ã³ã¿ãã§ãŒã¹ãæäŸããã¢ããªã±ãŒã·ã§ã³å±€ãšãå€éšããã€ã¹ã«ã¢ã¯ã»ã¹ããããã® ããªããã£ããæäŸããããŒããŠã§ã¢å±€ã§ããæ¬åœã®èžè¡ã¯ããã®2ã€ã®å±€ãçµ±åããããšã§ãã ããããèžè¡ãšã¯åŠã¶ãã®ã§ã¯ãªããä»ã®æ¹æ³ - çŽç²ãªçµéšãå ç - ã«ãã£ãŠèº«ã«ã€ãã ãã®ã§ãã ãã£ãã¯ã»ã ãŒã¢ã®ãããªForthããã°ã©ãã³ã°ã®äžå±€éšã«ãã人ãã¡ã¯ãèªåãã¡ã§ããŒã ãŠã§ã¢ãèšèšããŠForthãã䜿ããããã€ã³ã¿ãã§ãŒã¹ãäœãããã«ããŠããŸãããããŒã«ã èšèªãæšæºããã©ãã€ã ãšãã£ãé¢ã§ããèªäœã®è² è·ãçããŸãããããã¹ãŠã®äººã®ããã® ãã®ã§ã¯ãããŸããã ã ãŒã¢æ°ãšããã°ã圌ã¯Forthããã°ã©ãã³ã°ã®ããã«ãäžèŠèªæã®ããšã®ããã«èŠããŠãã ãããå®è¡ããããã«ç©æ¥µçãªåªåãããªããšç©ºèãªèšèã«ãªã£ãŠããŸãè³¢æãªã«ãŒã«ã ããã€ã瀺ããŠãããŸããã 倧ååã¯ãã·ã³ãã«ã«ãã§ãã確ãã«ãç§ãã¡ã¯çãããæãã§ããŸãããããããªã ããã»ã©å€ãã®ã²ã©ãè€éãªãããã³ã«ãã¢ãŒããã¯ãã£ãååšããã®ã§ãããã? ããã¯ã誰ããã®ã¢ããã€ã¹ãçå£ã«åãæ¢ããŠããªãããã§ããçµå±ã®ãšãããè€éã ãšã¯ããã°ã©ããŒã®ééå³ããããã¯ãããã極ãããšããæ觊ãªã®ã§ããããããå®éã« è€éããè¿œæ±ããããã«å¿ èŠãªè¬èãã¯ãç§ãã¡ã®è·æ¥ã®äžã§ã¯æ» å€ã«èŠãããªããã®ã§ãã ã·ã³ãã«ããšã¯ãã·ã³ãã«ãªã³ãŒããæå³ããã ãã§ãªããèŠä»¶ãç¹åŸŽãå šäœã®æ©èœã ã·ã³ãã«ã«ããããšãæå³ããŸãããã«ããã€ãã¹ã«ãçŽ æµãªãŠãŒã¶ãŒã€ã³ã¿ãã§ãŒã¹ã ç®ã®ä¿é€ãç¡é§ãªã€ã³ã¿ãã§ãŒã¹ããããã³ã«ãã¬ã¬ã·ãŒãµããŒãããã®ä»ãå¿ èŠäžå¯æ¬ ãš ãããŠãããã¹ãŠã®ãã®(å®éã«ã¯æ¬åœã®å質ã®åãåããã«éããªãã®ã§ãã)ãèœãšã ããšãæå³ããã®ã§ãã ç©äºãã·ã³ãã«ã«ä¿ã€ããã®ååã«ã¯ã2ã€ã®éèŠãªã³ãã©ãªãŒããããŸãã第äžã«ã ãæ¶æž¬ãããªãããšããããšãã€ãŸããå°æ¥ã®äœ¿çšãæ³å®ããã³ãŒããæžããããæœè±¡å ãããããªãããšã§ãã確信ãæãŠãªãããšãèšç»ããã®ã§ã¯ãªããä»æã£ãŠããèŠä»¶ã æºãããŠãã ããã 2ã€ç®ã®ã³ãã©ãªãŒã¯ãèªåã§ãããã§ãããã®ã¢ããã€ã¹ãçé¢ç®ã«åãæ¢ããå Žåã ããã¯æ·±å»ãªåœ±é¿ãåãŒããŸããããã¯ãŸãããœãããŠã§ã¢éçºè ã決ããŠæããã¹ã ã§ã¯ãªããå®éã«æ¥œããã¹ããã®ã§ãããåŠã¶ããšã®å¿ èŠæ§ã匷調ããŠããŸãããã¹ãŠã èªåã§è¡ãããšã§ãå¹³å¡ãªæœè±¡åãã圹ã«ç«ããªããã®ã§ãã£ã±ãã®è¥å€§åããã©ã€ãã©ãªãã ãã®ã³ãŒãã䜿ã£ãŠãããããããªãã¢ããªã±ãŒã·ã§ã³ã®æ®éæ§ã説æã§ããªã人ã«ãã æ®éçãªäœ¿çšãç®çãšããŠæžãããã³ãŒãã«ã¯ã³ãããã°ãªã©ãç解ããå¿ èŠãã解æŸãããŸãã åå©çšã¯ããããæ éã«çãããŠãããšããæåã®å åãããã«ããããããããã°ã㫠ᅵᅵᅵã£ãŠããŸããåå©çšã匷調ãããšããããšã¯ãè³ç£ãçç£ããæ°žç¶çãªäŸ¡å€(ã³ãŒãããŒã¹ ãç¥ç財ç£ãšåŒãã§ããŸã)ãåµé ããããšããç£æ¥çã®åãã瀺ããŠããã«ãããŸããã ããã¯ããœãããŠã§ã¢ãè ã£ãŠãããšããäºå®ãåŠå®ããå¹»æ³ã§ããããªããã©ã€ãã©ãªã åå©çšããŠããã®ã¯ãéåžžã¯ã»ãã®äžéšã«éããŸããããããªãã¯äœ¿ãããŠããªãæ©èœã ç¡æå³ãªæ©èœãç¹ã«ããªãã®ãã®ã§ã¯ãªããã°ã®ããã«ãéãæã£ãŠããã®ã§ãã ãããŠãããã¯éèŠãªãã€ã³ãã§ã: ãã¹ãŠãèªåã§è¡ãããšã§ãèªåãå¶äœãããœãã ãŠã§ã¢ãããããç解ããããšãã§ããŸããèªåã®ããŒãºã«åãããŠãããããã¬ãã«ã§ ä¿®æ£ããããšãã§ããŸãããã€ããªã®ãã¹ãŠã®ãã€ãã(æ£ããè¡ãã°)èšç®ã§ããããã« ãªããŸããæåŸã«ãããªããšãã§ããã®ã¯ãã€ã§ãã? ã€ãŸããForthã§ããã°ã©ãã³ã° ãããšããããšã¯ãåžžã«èªåã§å®è£ ãããæšæºããæ°ã«ããªããšããããšã§ããæãã èšãããŠããããã« "If you have seen one Forth - then you have seen one Forth. "ãšããå€ãããšããããããŸãããããŠãããã¯å šãåé¡ãããŸããã äžäººã®ããã°ã©ããã¢ããªã±ãŒã·ã§ã³å šäœã®è²¬ä»»ãè² ãæ代ã¯çµãã£ããšèšãããŠããŸãã ç§ãã¡ã¯ããŒã ã§èããåŸããæ¥ã人ãã¡ã責任ãåŒãç¶ãããšãèããã¹ãã ãšèšãã㊠ããŸãããã«ãã¡ã¬ãã€ãã®ã¢ããªã±ãŒã·ã§ã³ãããŠã§ãã¹ã±ãŒã«ã®èªå€§åŠæ³ã®èŠ³ç¹ãã èãããªãããã®èãæ¹ã¯é©åãããããŸãããããœãããŠã§ã¢ã¯åããé³è åããè æãã æçµçã«ã¯è ã£ãŠããŸããšããããšãåã³åŠå®ããŠããŸãããã®èãæ¹ã¯ããœãããŠã§ã¢ éçºã«èª¿æŽãããçæ³äž»çŸ©çã¢ãã«ããçãŸãããã®ã§ãéçºè ã¯ã¬ãŽã®ããŒã¹ãã€ãªã åããã倧ããªæ©æ¢°ã®äžã®å°ããªæ¯è»ã§ãããã®èãæ¹ã¯ãåºæ¬çãªåææ¡ä»¶ãå€ããããšã èŠä»¶ãå€ããããšããããŠã倧éã®æ©èœã倧éã®ã³ãŒãã§å€æŽããªããã°ãªããªããšãã«ã ã©ã®ããã°ã©ãã³ã°èšèªãçŸå®ã®åé¡ã«é©åã«å¯ŸåŠã§ããªãããšãåŠå®ããèãæ¹ã§ãã ç§ãã¡ã¯ãå°ãã®åèšèšã1ã€ã2ã€ã®æ°ããã¬ã€ã€ãŒãããããã®ãŠããããã¹ãã§åå㧠ããããã€ãç§ãã¡ã¯ãã®ãã¹ãŠããããã«ããã ãããšãããã¯ãã»ã©æªããªããµãã ããŠããŸãã倧ããªãæžãæããã¯ããªã«ãèããããªããèšèã«ã§ããªãã匱ãã倱æã èªããããšã§ããããã¯ãŸã£ãããã³ã»ã³ã¹ããããã¯ãããã¬ã³ãã§ããããã¹ã ãã©ã¯ãã£ã¹ãã«åŸãããšã¯ãçŽæãç¡èŠããæ°ããã¢ãããŒãã§ã®å®éšãé¿ããŠã ä»ã®ã¿ããªãšåãééããç¹°ãè¿ãããšãæå³ããŸãã ããã§é¢ä¿ããŠããã®ã¯æšæºã®åé¡ã§ããForthã®æšæºããããŸããããããããŸãæ·±å»ã« åãæ¢ããã¹ãã§ã¯ãããŸãããæšæºã¯ãããªããäœæ¥ãããã©ãããã©ãŒã äžã§ã¯æé©ã§ã¯ ãªããããããªãã€ã³ã¿ãã§ãŒã¹ãã¶ã€ã³ã課ããŠããŸããããã¯äžå¯èœãªããšãããã ãšããè©Šã¿ã§ããã€ãŸããããèšèªã®äœ¿çšã«é¢ããææ§ããããã¹ãŠã®å¯èœãªç¶æ³ã§ã ãã¹ãŠã®å¯èœãªãã©ãããã©ãŒã ã§ããã¹ãŠã®å¯èœãªã¢ããªã±ãŒã·ã§ã³ã§è§£æ±ºããããš ããããšã§ãããã®æå³ã¯ãã¡ãããåå©çšãç°¡åã«ãã移æ€ã容æã«ããããšã§ãã ããããããã«ã€ããŠã¯ãã§ã«è©±ããŸãããæšæºã¯åœ¹ã«ç«ã€ããšããããŸãããæºæ ãã ããšèªäœãç®çã§ã¯ãããŸãããããã«ãæ®éçãªæšæºã¯å®çŸ©äžãéåžžã«ææ§ã§ãªããã° ãªããŸããã察象ãšãªããã©ãããã©ãŒã ãå¢ããã°å¢ããã»ã©ããã¹ãŠã®å¯èœæ§ã®ãã å®è£ ãã«ããŒããããã«ãããææ§ã«ãªããããåŸãŸããããããªããšãC(ãŸãã¯C++)èšèªã® æšæºã§èŠããããåŒè·å£«ããã®ããã«èãã人ã«ããç解ã§ããªãä¿¡ããããªãã»ã©è€é㪠åäœèšè¿°ã«çµããããšã«ãªããŸãã 誰ãã³ãŒããå ±æããããšãã§ããªããšã¯èšã£ãŠããŸããããä»äººã®ã³ãŒããç解ããããšã åŠã¶ã¹ãã§ã¯ãªããšãèšã£ãŠããŸãããããã¶ã€ã³ã¯äžå¹çŒã«ãã蟌ãŸããã¹ãã ãšã èšã£ãŠããŸãããããããå€ãã®å Žåãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãã³ã³ããŒãã³ãã®äž»èŠãª èšèšãšå®è£ ã®äœæ¥ãè¡ãã®ã¯ãäžäººã®ããã°ã©ããŒãéåžžã«å°ããªããŒã ã§ããããšã ç解ãã¹ãã§ãããªããªããããã°ã©ã ã«ã¯(åçŽãªãã®ã§ãã£ãŠã)ãäž»é¡ã圢åŒçãŸã㯠éå ¬åŒãªèŠä»¶ãç°ãªãèšèšæ±ºå®ã®çµæã®å¯èœæ§ãªã©ã®äž¡æ¹ã«ç¥çã«æ·±ãé¢äžããããš(äžæ ããªãããã«ãé¡ãããŸã!)ãèŠæ±ãããããã§ãã倧èŠæš¡ãªèšèšäŒè°ã®ããã«ã誰ãã ãã€ã§ãäœãããŠããã®ããæ£ç¢ºã«ææ¡ããŠãããããªå€§èŠæš¡ãªããŒã ã§è¡ãããã®ã¯ç¥è©±ã§ãã ãã°ã®ä¿®æ£ãã¡ã³ããã³ã¹ã®ããã«ããã倧ããªããŒã ã«ä»äºãåæ£ãããããšã¯å¯èœãã ãããŸãããããã®æ®µéã§ã¯ããœãããŠã§ã¢ã¯ãã§ã«ãå€ããå°ãªããæ»ã«ãããŠããŸãã äœå幎ãããããããããŸããããäžäººã®äººéããŒãããã³ã¢æ©èœãæžãæããããšã äžå¯èœã«ãªã£ããããœãããŠã§ã¢ã¯æ»ãã§ããŸããããããçæ³çãªã®ã¯ãã 㪠ããã ãããæžããŠããããç解ãããããç¶æããå€æŽããå¿ èŠã«å¿ããŠäœåºŠã§ãæžãçŽã (ã³ã³ãã¯ãããèŠããŠããŸãã?)ããããæ£ãŠãŠå¥ã®ããšããããšããããšã§ãã Forthã¯å®çšçãªåé¡ã解決ããããã®èšèªã§ããLEDãON/OFFããããã®èšèªã§ããã ã¢ãŒã¿ãŒãåããããã®èšèªã§ããããã¯ã»ã«ããã¬ãŒã ãããã¡ã«æžã蟌ãããã®èšèªã§ããã ããã€ã¹ãã©ã€ããæžãããã®èšèªã§ãããã·ã³ã°ã«ããŒãã³ã³ãã¥ãŒã¿äžã§å®è¡å¯èœãªãã®ã ç«ã¡äžããããã®èšèªã§ãããŸããããŒã¿ãæ€çŽ¢ãããããœãŒãããããæäœãããããããã® èšèªã§ããããå¿ ãã©ãã«ãããŠãã®ãããªä»äºã«ãªã£ãŠããŸãå調ã§ã€ããä»äºãå®è£ ãã ããã®èšèªã§ããããŸããXMLãJSONãããŒã¹ãããã®ã§ããã°ã確ãã«å¯èœã§ãããããã ã ã§ã¯å¹žãã«ã¯ãªããŸãããããã¯ãä»ã®ç¡æå³ãªæœè±¡åã®äžã«ç¡æå³ãªæœè±¡åãæžãããã® èšèªã§ã¯ãããŸããããç¹å®ã®åé¡ãä»æ¥ã®æµè¡ãã®ã¢ã«ãŽãªãºã ãããŒã¿ãã©ãŒãããã 䜿ã£ãŠå¯èœãªéãäžè¬çãªæ¹æ³ã§è§£æ±ºããã©ã€ãã©ãªãæžãããã®èšèªã§ããããŸããã ä»®æ³ãã·ã³ãã¢ã»ã³ãã©ãã«ã¹ã¿ã ããŒã¿ãã©ãŒããããæžãããã«ã¯åªããããŒã«ã§ãã åé¡ãForthã§å®è£ ããã®ãåœããåã«ãªãã»ã©åçŽåããåæã«æå³ããç®æšãéæãã ããšãã§ããã°ãããªãã¯æ£ããéãæ©ãã§ããããšã«ãªããŸããæ¢ææŠå¿µã«ãšããããªã æèãšå€ãã®æ玢ãå¿ èŠãšããŸããããã®ä»£ããã«ãåãã®ããã£ãšã§ãããã«è ã£ãŠããŸã ã³ãŒãããä»ãŸã§æžããŠããããšãåŸæããæžãæãã眮ãæããé£ãããªãã»ã©æé·ãã è² åµãšãªãã³ãŒãã®å±±ãšãªããªãã§ãããäœããåŸãããšãã§ããŸãã ãè¯ããForthã®ã³ãŒããæžãã®ã¯éåžžã«é£ããããšã§ãããããã¯ãå°ãªããšãç§ãèãã è¯ã Forth ã®ã³ãŒãã¯ãä»ã®äººãèããè¯ãã³ãŒããšã¯ç°ãªããããããŸãããForth㯠ãæžãã ãã®èšèªããšåŒã°ããŠããŸããããããã¯ããã¹ãŠãæããã«ãªããšãããŸã§ã³ãŒãã åçŽåããããã®è¿œå ã®åªåãå¿ èŠã ããã«ä»ãªããŸãããããã¯èžè¡ã§ãããè¶ è¶ã®ç¬éã§ããã ç§ãå°éããããšããããšã¯èšããŸããããæã ããã®ç¬éãå£éèŠãããšããããããç§ã ããã«äžçæžåœåãçµãã°ãããã¯ãšãŠãã·ã³ãã«ã«ãªããååã«å解ãããæçœã§æ確㪠ååã䜿ã£ãŠããã¹ãŠã®ãã®ãããŸãåãŸããšããäºå®ã®æ瀺ãæããŸããããã°ã©ããŒã ããŸã«çµéšãããã®ç¬éã§ããçããŠã·ã³ãã«ãªã³ãŒãããäœèšãªè·ç©ãæããã«ãç°¡åã« ç解ã§ããããã«ãããã¹ãããšããã£ãŠãããã®ã§ããForthã§ãããå®çŸããã®ã¯ãã£ãš é£ãããããå€ãã®æéãšå€ãã®æžãæããå¿ èŠã«ãªããããããŸãããããã®çµæã¯ããã å°ãããã¯ããã«ã·ã³ãã«ã§ãå®å šã«èªå·±å®çµããŠããŠãä¿¡é Œã§ããªãã³ãŒãã«ããè² æ ã ãªãã®ã§ãããã«æºè¶³æãåŸãããŸããããªãããåäŸãã¡ã人身埡äŸã«ããMolochç¥ã« ãªã£ãŠãããçç£æ§ãã«å¯Ÿããè¡åãå¿ãããšããå質ãåªé ããèžè¡ãšåŒã°ããç¹å¥ã® ãã®ãéæããããšãã§ãããããããŸãããããã¯äžçããããããããªããããããŸã§ å°éããããšã¯ãªããããããªãããããã§ãããªãã¯ããã®ããã«åªåãã¹ãã§ãã ãããªããã°ãããªãã¯æ©æ¢°ã®æ¯è»ã®ãŸãŸã§ãä¿¡ããããªãã»ã©è€éãªããœãããŠã§ã¢ã¹ã¿ãã¯ã ã§éçºããäžååã§èãèšèªã䜿ãããããããŠäžèŽããã€ã³ã¿ãã§ãŒã¹ãããŸãã«ãè¥å€§åãã ã©ã€ãã©ãªã®ããäžéšã«æ¥ç¶ããç解ã§ããªãã»ã©ã®è€éãã®æŽèœã«ãªããªãããŒã«ã䜿ã£ãŠã ãªããã¹ãŠãã¯ãœãªã®ãããªãå®éã«ããã°ã©ãã³ã°ã楜ããã§ãèªåãéæããããšãå¿ãã èªãã«æãããšãã§ããæåŸã®æéã¯ãããªããåäŸã®é ã ã£ãã®ãããšèªåèªèº«ã«åããã㊠ããããšã§ããã...