FORTHªºÁI«ä
-- ¤H¾÷¦X¤@ªºµL¤W¤ßªk --
²Å¦¡¦p¹D ¦æ¤§¥²®Ä
¬X¥H§Jè ²¼ä¬°°ª
ª÷«°(·R·sıù․ÂvÌÌ) ½sµÛ
ª©ÅvÁn©ú
¥»¹q¤l®Ñªº¥X²{¤D¬O¬°¤F±À¼sFORTH¡AÅwªï¦U¬É¤H¤h«þ¨©¶Ç¾\¡A¥»®Ñ©Ò¦³ª©ÅvÂkÄÝ©óìµÛ§@ªÌ©Ò¦³¡AY»ÝÂ^¨ú¤å³¹¤ù¬q¡A½ÐµÛ¦W¸Ó¤ù¬qªºì©l¥X³B¡C
Âà½ZÁn©ú
º¥ý·PÁª÷«°¦Ñ®vÄ@·N±N¨äµÛ§@±ÂÅv§@¦¨¹q¤l®Ñ¡A¦A«h·PÁ¼ï¼w³ß¥ý¥ÍÁÃ¥´±Nì®ÑÂର¹q¤l½Z¡A¥Ñ¤ý«B¹AÂରPDFÀÉ¡C
Y»Ý¥»®Ñ¤¤©Ò¥Î¤§F-PC³nÅé¡A¥i¦Ü¤¤µØ¥Á°ê²Å¦¡¨ó·|ºô¯¸download
¤¤µØ¥Á°ê²Å¦¡»y¨¥¨ó·|
Y¦³ÅªªÌ·Q»Pª÷«°¦Ñ®v¥æ¬y¡A½ÐE-Mial¦Ücchin@pu.edu.tw
µ¹ÅªªÌªº¸Ü
¡y¼g¤@¥»®Ñ¡AÁ`¬O¯Ó¶O¤ß¯«ªº¨Æ¨à¡I¤×¨ä¬O¼g¤@¥» Forth ªº®Ñ§ó¬O¶Ë¯«¡C²Ä¤@ª©ÁÙ¬O
¼ï¼w³ßµw¿iµÛ§Ú¼g§¹ªº¡A¦p¤µ FPC ¦¦¨¤F¬Q¤é¶Àªá¡AWin32Forth ¤]¶i¤J¤F 4.2 ª©
¤F¡C¥Ñ AppleII ªº Forth79 ¨ì Windows ¤Wªº Win32Forth ¤@Â಴ Forth ±À¼s¦Ü¥xÆW
¤]±Nªñ¤Ü¦~¤F¡A¦ý¥xÆWªº Forth ¤H¤f«o¤´µMµ}¤ÖªºÃþ¦ü§Y±N·Àµ´ªº¥v«e°Êª«¡A¦³´îµL
¼W¡A¥O¤HÕØ¼N¤£¤w¡I
³o¨â¦~¦£µÛ»P¤B³¯¦Ñ®v¡B³¯²n¤j®v¥S¡A©Mªü¦¿¡]³¯©÷¦¿¡^¦¨¥ß¡y©ö²Å´¼¼z¬ì§Þ¡z¡A·Q§â
Forth SoC »P ©ö²Å¤j¾Ç¡A·í¦¨¬O¤H¥Í¤¤ªº³Ì«á¤@Ó§Ó·~¨Ó«÷³Õ¡A²¦³º¤Q¦~«e¦Û¤v·í¹L
FigTaiwan ªº¤@¥ô·|ªø¡AÁÙ¥h¤F¤@½ë¤W®ü¥æ¤j¶}¦~·|¡A¦V¤H§j¼N¤F±Nªñ¥b½ú¤l Forth
ªº¦n³B¡AY¤£¯à¥H¨³\¹Dªº§ë¤J¨®a¨Ó·d¤@¦¸¯uªº¨Æ·~¡A¦¹¥Í°Z¤£¬O¥O¤H°S¯º¡C
¤B³¯¦Ñ®vn§Ú±N¡yForth ªºÁI«ä¡z¡A¨Ï¥Î Win32Forth ·í½d¨Ò¤u¨ã¡A¦A«¼g¤@ª©¡C»¡¹ê
¸Ü§Ú¯uªº¦³ÂI¯h³n¤F¡AForth ¦b Windows Programming ¤Wµ´¤£¬O¤@ӳ̦nªº¿ï¾Ü¡A·Q
·Q Windows ªº§@·~Àô¹Ò¦³¤W¦Ê Mega ªº°O¾ÐÅé¡A¨Ì¿àµÛ WDM ¨Ó°µ©³¼hªº IO ºÞ²z¡A³o
¼Ë¤£¦b¥G¨t²Î¸ê·½ªº PC ¦¤w¤£¬O Forth ³oÓ¤u¨ãªº¾Ô³õ¤F¡CForth ªº¥æ½Í¶}µo¹L
µ{¡AÁÙ¬On¦b embedded System ¤W¤~¬Ýªº¨ìÀu²§©Ê¡A¦b SoC ªºµ}¦³¸ê·½¸Ì·|§ó¦³§l¤Þ
¤O¡A³o¤~¬O¬Ý Forth Áy¦â¦Y¬ïªº©Ò¦b°Ú¡I
¤£´±¦b³o¸ÌÀH«Kªº¤¹¿Õ¡yForth ªºÁI«ä¡C²Ä¤Gª©¡zªº¥Xª©¤º®e»Pµo§G®É¶¡¡C²¦³º°£¤F°Ê
¾÷¤§¥~¡AÁÙ¦³®É¶¡»P¤ß±¡³£n«ê·í¤~¬O¼g§@ªº¦n·í¤U¡A¥´§¤×¦æ¦h¦~¤F¡A§Ú·Q³o¤@¤ÁÁÙ
¬OÀH½t§a¡I
«B¹A¦Ñ§Ì±Nª©ªº Forth ªºÁI«ä°µ¦¨ PDF ¹q¤l®Ñ¡A§Ú·Q³o¬O¦n¨Æ±¡¡A¤@¨Ó§K±o¦Ñ¦³¤H
¼g«Hµ¹§Ú¡A°Ý§Ún³o¥»Â®ѡA§Ú¦Û¤v¦¨S¦³¦s³f¤F¡F¤G¨Ó®Ñ¦b¤¤°ê¤Hªº¦Ñ¬£·Qªk¤¤¡A¥»
¨Ó´N¬O¦Û¤v¼g§¹«á¦L¨Ó°eªB¤Í·í¬ö©Àªº¡C©Ò¥H¨S¦³©Ò¿×¶R½æªºª©Åv°ÝÃD¡I¦A»¡½æ Forth
ªº®Ñ¬O¥´¦º¤£·|µo°]ªº¡A³oÂI¦h¦~¨Ó¦¦³Å鮩¤F¡A¤@¯º¡C¦p¤µ¦³¤H©ñ¦bºô¸ô¤W¬y¶Ç¡A³Õ
Óµê¦W¡A¤]ºâ¹L¤F½ë°®Å}¡A´N¦¹ª¾¨¬¤F¡IY¨Ó¤é¯u¦³¤ß«ä¤]³\«·s¥H¡yºë²ªºµwÅé¬[ºc
¢w¢w Forth ¦h°ïÅ|ªº¶ø¯µ¡z¬°¥D·F¡A¨Ó¼g¤@¥»¡yForth ¬z¶e¡z¡A³o´X¦~¶V¨Ó¶Vı±o
Forth ¹³¬O¹q¸£¤¤ªº¤å¨¥¤å¡A¸U¤@¯uªº·Qn¼g¤@¥» Forth ªº·s®Ñ¡A¤Ï¥¿¤£·|½æ¿úªº¡A
°®¯Ü¥ÑµÛ¦Û¤vªº©Ê¤l¡A¤@¤£°µ¤G¤£¥ðªº¼g¤@¥»¡y¤å¨¥¥jÅé¡zªº Forth ®ÑÄy¡A¤@¨Ó½æ§Ë
½æ§Ë¦ÛӨ઺¤å¾Ç©³¤l¡A¤G¨Ó¦ÒÅç¦ÒÅçŪªÌªº¥j¤åµ{«×¡A¦Ü¤ÖÁÙ¦³¨Ç³¥½ì§a¡I
·R·sıù ÂvÌÌ ¨¯¤x¦~ ¥ò®L¡z
¥Ø ¿ý
¦Û §Ç(¤@) ---------------------------------------- 01
¦Û §Ç(¤G) ---------------------------------------- 02
»x ÁÂ -------------------------------------------- 03
²Ä¹s½g µL¤W¤ßªk
FORTH »PÁI ----------------------------------------- 0-1 ¡ã 0-6
µL¤W¤ßªk²Ä¤@½g ----- ¤@§â¥¤Zªºµæ¤M --------------- 1-1 ¡ã 1-3
µL¤W¤ßªk²Ä¤G½g ----- ¦p¦ó¦b¤ß¤¤«Ø¤@Ó¹q¸£ --------- 2-1 ¡ã 2-3
µL¤W¤ßªk²Ä¤T½g ----- µ{¦¡³]p¤§¹D ----------------- 3-1 ¡ã 3-17
²Ä³ü½g ¤Jªù½g
²Ä¢¯½Ò FORTH ¾É½×
¤@¡B¦w¸Ë F-PC ----------------------------------- ¤J0-01
¤G¡B¾Ç²ß½Ò¤å ------------------------------------ ¤J0-02
¤T¡B½m²ß ---------------------------------------- ¤J0-03
¥|¡Bµ{¦¡®æ¦¡©Mµ{¦¡§U¤â -------------------------- ¤J0-05
²Ä¤@½Ò ¦L¥X¦r¦ê
¨ÒÃD¤@¡B´¶³qªº°ÝÔ ------------------------------ ¤J1-01
¨ÒÃD¤G¡B¤j F ------------------------------------ ¤J1-02
¨ÒÃD¤T¡B§Úªº¦W¦r -------------------------------- ¤J1-03
¨ÒÃD¥|¡B¦b¿Ã¹õ¤WÅã¥Ü¤jªº¦r¤¸ -------------------- ¤J1-04
¨ÒÃD¤¡B«ÂЪº¹Ï¼Ë ------------------------------ ¤J1-08
¨ÒÃD¤»¡Bµe®Ø®Ø ---------------------------------- ¤J1-10
²Ä¤G½Ò ¤GÓ¤å¦r¹CÀ¸
¨ÒÃD¤@ ------------------------------------------ ¤J2-01
¨ÒÃD¤G ------------------------------------------ ¤J2-06
²Ä¤T½Ò ¼Æ¦r
¨ÒÃD¤@ ------------------------------------------ ¤J3-01
¨ÒÃD¤G¡B·Å«×´«ºâ -------------------------------- ¤J3-03
¨ÒÃD¤T¡Bªø¤è§Î ---------------------------------- ¤J3-06
¨ÒÃD¥|¡B¤Ñ®ð³ø§i -------------------------------- ¤J3-09
¨ÒÃD¤¡B¦L¥X¼ªkªí ------------------------------ ¤J3-10
²Ä¥|½Ò ¼Æªº¨âÓ½d¨Ò
¨ÒÃD¤@¡B¤é¾ä ------------------------------------ ¤J4-01
¨ÒÃD¤G¡B¥Í©Rªº¹CÀ¸ ------------------------------ ¤J4-06
²Ä¤½Ò ¼Æ¦rªº§Þ¥©
¨ÒÃD¤@¡B¥¿©¶©M¾l©¶ ------------------------------ ¤J5-01
¨ÒÃD¤G¡B¶Ã¼Æ ------------------------------------ ¤J5-03
¨ÒÃD¤T¡B¥¤è®Ú ---------------------------------- ¤J5-04
¨ÒÃD¥|¡B³Ì¤j¤½¦]¼Æ(GCD) ------------------------- ¤J5-06
¨ÒÃD¤¡B¶OÃ伯¦C -------------------------------- ¤J5-08
²Ä¤»½Ò ²×ºÝ¾÷¿é¤J©M¿é¥X
¨ÒÃD¤@¡B¹q¸Ü¸¹½X -------------------------------- ¤J6-02
¨ÒÃD¤G¡B®É¶¡¿é¥X -------------------------------- ¤J6-03
¨ÒÃD¤T¡B¨¤«× ------------------------------------ ¤J6-05
¨ÒÃD¥|¡B¼Æ¦rÂà´«¤§°ò¼Æ -------------------------- ¤J6-05
¨ÒÃD¤¡B¹q³ø½X ---------------------------------- ¤J6-06
¨ÒÃD¤»¡BASCII ¦r¤¸ªí ---------------------------- ¤J6-08
¨ÒÃD¤C¡B¤@«Ê±¡®Ñ -------------------------------- ¤J6-09
¨ÒÃD¤C¡B¼Æ¦r¿é¤J -------------------------------- ¤J6-11
²Ä¶L½g °ò¦½g
²Ä¤@½Ò FORTH ºü½×
1.1 FORTH ·§»¡ -------------------------------- °ò1-01
1.2 FORTH ºâ³N¹Bºâ ---------------------------- °ò1-02
1.3 FORTH ºâ³N¹Bºâ«ü¥O ------------------------ °ò1-04
1.4 °ïÅ|(STACK)¾Þ§@«ü¥O ----------------------- °ò1-06
1.5 ¨ä¥Lªº¤@¨Ç FORTH ±`¥Î¦r ------------------- °ò1-10
1.6 «_¸¹ªº©w¸q -------------------------------- °ò1-13
½m²ß -------------------------------------- °ò1-16
²Ä¤G½Ò ¨Ï¥Î F-PC
2.1 ¨Ï¥Î SED ¨Ó½s¿èÀÉ®× ----------------------- °ò2-01
2.2 ¸ü¤J¨Ã°õ¦æ§Aªºµ{¦¡ ------------------------ °ò2-03
2.3 °£¥h§Aµ{¦¡¤¤ªº¿ù»~(ÂÎ) -------------------- °ò2-04
½m²ß -------------------------------------- °ò2-06
²Ä¤T½Ò FORTH ¦p¦ó¹B§@
3.1 ÅÜ¼Æ -------------------------------------- °ò3-01
3.2 Åܼƪº§ì¨ú(FETCH)»PÀx¦s(STORE) ------------ °ò3-03
3.3 ±`¼Æ(CONSTANTS) --------------------------- °ò3-06
3.4 FORTH ªº°ª¶¥µ{§Ç -- ¡G ªº¨Ï¥Î ------------- °ò3-07
3.5 °}¦C(ARRAYS) ------------------------------ °ò3-09
3.6 ¦^ªð°ïÅ|(RETURN STACK) -------------------- °ò3-10
3.7 FORTH ªº§C¶¥µ{§Ç -- CODE ªº¨Ï¥Î ----------- °ò3-12
3.8 FORTH ªºµü¨å(DICTIONARY) ------------------ °ò3-14
3.9 ªí®æ(TABLES) ------------------------------ °ò3-15
3.10 ¦r¥À(CHARACTER)©Î¦ì¤¸¸ê®Æ ----------------- °ò3-16
3.11 µü¨åªº·j´M¤è¦¡ ---------------------------- °ò3-17
3.12 ¦WºÙ°Ïªº¸ê®Æµ²ºc -------------------------- °ò3-19
3.13 F-PC ¤º³¡ªº°õ¦æì²z ----------------------- °ò3-20
½m²ß -------------------------------------- °ò3-23
²Ä¥|½Ò FORTH §PÂ_»P°j¸ô
4.1 ¤À§Á«ü¥O¤Î°j¸ô ---------------------------- °ò4-01
4.2 ±ø¥ó¦r²Õ ---------------------------------- °ò4-02
4.3 FORTH ÅÞ¿è¹Bºâ«ü¥O ------------------------ °ò4-04
4.4 IF ±Ôz ----------------------------------- °ò4-05
4.5 DO °j¸ô ----------------------------------- °ò4-06
4.6 UNTIL °j¸ô -------------------------------- °ò4-11
4.7 WHILE °j¸ô -------------------------------- °ò4-13
½m²ß -------------------------------------- °ò4-14
²Ä¤½Ò ¼Æ¦r
5.1 Âù¿ºë±K«×ªº¼Æ¦r -------------------------- °ò5-01
5.2 Âù¿ºë±K«×ªº¤ñ¸û«ü¥O ---------------------- °ò5-04
5.3 ¼©M°£ ------------------------------------ °ò5-05
5.4 ©³¼Æªº°£ªk -------------------------------- °ò5-06
5.5 16-Bit ¹Bºâ«ü¥O --------------------------- °ò5-10
5.6 Âù¿ºë±K«×¼Æ¦rªº¼ªk ---------------------- °ò5-12
½m²ß -------------------------------------- °ò5-13
²Ä¤»½Ò ¦r¦ê
6.1 ¦r¦ê¿é¤J ---------------------------------- °ò6-01
6.2 ASCII--¤G¶i¦ì¦ì¤¸Âà´« --------------------- °ò6-04
6.3 ¼Æ¦r¿é¥XÂà´« ------------------------------ °ò6-05
6.4 ¿Ã¹õ¿é¥X ---------------------------------- °ò6-07
²Ä¤C½Ò §C¶¥(²Õ¦X)¦r»P DOS ªº¿é¤J/¿é¥X
7.1 §C¶¥(²Õ¦X)(CODE)¥Î¦r ---------------------- °ò7-01
7.2 §C¶¥(CODE)ªº±ø¥ó§P§O¥Î¦r ------------------ °ò7-06
7.3 ªø¶ZÂ÷ªº°O¾ÐÅé¦s¨ú¥Î¦r--¶W¹L 64k ¥~ªº¦s¨ú -- °ò7-07
7.4 DOSªº¤¶±¥Îµü ----------------------------- °ò7-08
7.5 °ò¥»ªºÀÉ®×Ū¡þ¼g -------------------------- °ò7-11
7.6 Ū¨ú¼Æ¦r©M¦r¦ê ---------------------------- °ò7-19
7.7 ¼g¤J¼Æ¦r©M¦r¦ê ---------------------------- °ò7-25
²Ä¤K½Ò ©w¸qµü
8.1 CREATE...DOES> ---------------------------- °ò8-01
8.2 ²©ö¸õÅDªí®æ ------------------------------ °ò8-05
8.3 ¥H°ïÅ|¤W¼ÆÈ¬°¯Á¤Þ¤§¸õÅDªí®æ -------------- °ò8-07
8.4 ¨Ï¥Î FORTH µü¤§¸õÅDªí®æ ------------------- °ò8-09
8.5 ¼u¥X¦¡¥\¯àªí ------------------------------ °ò8-11
8.6 ½m²ß -------------------------------------- °ò8-21
²Ä¤E½Ò ½s͵ü
9.1 ½sĶ(COMPILING) ©Mª½Ä¶(INTERPRETING) ------ °ò9-01
9.2 ¤@¯ëµü½sĶ©M¥ß§Yµü½sĶ -------------------- °ò9-03
9.3 ¸ü¤J¼Æ¦r ---------------------------------- °ò9-04
9.4 ±ø¥ó½s͵ü -------------------------------- °ò9-07
BEGIN...WHILE...REPEAT -------------------- °ò9-07
IF...ELSE...THEN -------------------------- °ò9-09
BEGIN...AGAIN ----------------------------- °ò9-01
BEGIN...UNTIL ----------------------------- °ò9-01
DO...LOOP --------------------------------- °ò9-01
9.5 ²ßÃD -------------------------------------- °ò9-17
²Ä¤Q½Ò FORTH ªº¸ê®Æµ²ºc
10.1 °}¦C(ARRAYS) ----------------------------- °ò10-01
10.2 Ãì¦ê¦C(LINKED LISTS) --------------------- °ò10-04
10.3 °O¿ý(RECORDS) ---------------------------- °ò10-15
²Ä¤Q¤@½Ò ¨Ï¥Î¤¤Â_³B²zªº²×ºÝ¾÷µ{¦¡
11.1 8086/8088 ¤¤Â_³B²z ----------------------- °ò11-01
11.2 8250 «D¦P¨B³q°T¥Î´¹¤ù -------------------- °ò11-03
11.3 ¦î¦Cªº¸ê®Æµ²ºc --------------------------- °ò11-05
11.4 ¿é¥X¤å¦r¨ì¿Ã¹õ©M(©Î)ºÏºÐ¾÷ --------------- °ò11-10
11.5 ¤U¸üÀÉ®× --------------------------------- °ò11-12
11.6 ²×ºÝ¾÷¤§¥Dµ{¦¡ --------------------------- °ò11-15
²Ä°Ñ½g ªþ ¿ý
A. µ{¦¡¤§½sĶ ----------------------------------- ªþ¿ý A
B. LANGUAGE DEFINITION OF FORTH ---------------- ªþ¿ý B
C. STANDARD INSTRUCTIONS ------------------------ ªþ¿ý C
D. USER INSTRUCTIONS ---------------------------- ªþ¿ý D
E. CREATING NEW DEFINING INSTRUCTIONS ----------- ªþ¿ý E
F. F83 ¨t²Î°O¾Ð¹Ï ------------------------------- ªþ¿ý F
G. F83 µêÀÀ°O¾ÐºÏºÐ½w½Ä°Ï¹Ï --------------------- ªþ¿ý G
H. FORTH ªº°j¸ô --------------------------------- ªþ¿ý H
I. Interpreter ªº°j¸ô --------------------------- ªþ¿ý I
J. Error ªº°j¸ô --------------------------------- ªþ¿ý J
K. EXPECT ªº°j¸ô -------------------------------- ªþ¿ý K
L. WORD ªº°j¸ô ---------------------------------- ªþ¿ý L
M. NUMBER ªº°j¸ô -------------------------------- ªþ¿ý M
N. BLOCK ªº°j¸ô --------------------------------- ªþ¿ý N
O. ¥H FORTH ªºÆ[ÂI¬Ý Intel80486 CPU ------------- ªþ¿ý O
P. FORTH ¸ê®Æ®wµ{¦¡³]p ------------------------- ªþ¿ý P
Q. ¤@¤E¤E¤@¦~ FORTH µ{§Çû¤ô¥¦Ò¸Õ¸Õ¨÷(¤j³°) ---- ªþ¿ý Q
R. CHARLES MOORT ¥ý¥ÍÁ¿¡@FORTH ¨Ó·½Ä¶¤å ------- ªþ¿ý R
S. FORTH °ÝÃD½m²ß ------------------------------- ªþ¿ý S
T. FORTH °Ñ¦Ò®Ñ¥Ø ------------------------------- ªþ¿ý T
¦Û §Ç
(¤@)
·í¤F¤@¦~ FORTH ¾Ç·|ªº·|ªø¡A¦b¥ô¤º¤~¤F¸Ñ FIG (Forth Interesting
Group )ªººë¯«¡CµLªáªG¡A¥u¨Dµ²ªG¤£¨D¶}ªá¡AÀqÀq¯Ñ¯Ðªº¥I¥X¡C¨Ã¤£´Á«ÝÀé
Äꪺ¦W»P§Q¡F¥u§Æ±æ¯à¨Ï§ó¦hªº¤H¤F¸Ñ Forth ¬O¤°»ò¡A¦Ó¯à¸g¥Ñ¾Ç²ß Forth
ªº¹Lµ{¡A¯uªº²`¤JÅé·|¹q¸£³oºØ¤u¨ãªº¼ç¯à»P·¥¡C F-PC ¬O Tom Zimer ¥ý¥Í
ªº¤ß¦å¡A¨ä¤¤¥]§t¤FForth ªº¦h¤u§@·~¨t²Î( Multitasking ) ¡A²Õ¦X»y¨¥ªº²Õ
͵{¦¡( Assembler ) »P¤Ï²Õ͵{¦¡(Dis-assembler )¡A¥þ¿Ã¹õªº½s»²¾¹
( Screen Editor ) Àɮ׺޲zµ{¦¡¡AForth °ª¡B§C¶¥»y¨¥ªº°£¿ù¾¹(Debugger)
¡Bª½Ä¶¾¹(Interpreter) »P³Ì¨Î¤Æªº½s;¹(Target compiler)¡A·íµMÁÙ¦³¯à¦Û
§Ú½sĶªº¤¶Åܽs;¹(Meta Compilor)¡C³o¤@¤Á§¡¦b¤@Ó±m¦âªº¾ã¦XÀô¹Ò¤¤¡A¥u
¦û¤@¦Ê¦hK¡C¤ñ Borlend C++ ¤p¦h¤F¡A¤]ÆF¬¡¦h¤F¡C¤@¦p Forth ªººë¯«¡AµL¨p
µL§Ú¡ATom Zimer ¤]±N¦¹®M F-PC ªº¥þ³¡ì©lµ{¦¡ªþ¦bºÏ¤ù¤¤¤½½Ñ©ó¥@¡C¤£¨D
ª÷¿úªºÀv³ø¥u§Æ±æ¯àÅý§ó¦hªº¤H¡A¯àÄy¥Ñ F-PC ¤Íµ½ªº½u¤W¨D§UÀô¹Ò( Online
Help «öF1 ) ¦Ó¦b³Ì¤pªºªý¤O¤U¾Ç²ß Forth ¡C¨Ï¥Î Forth ¡C§Úª¾¹D°ê¤º·Q¾Ç
Forth ªº¤H¦h¥b³£³Q^¤å¯à¤O©Ò§x¡C©Ò¥H¡Aªá¤F¤@¦~¦hªº®É¶¡¡A±N F-PC ªº¦Û
¾Ç¤â¥U¤Q¤@½Ò¤¤¤å¤Æ¡C§Æ±æ¯à¹ï^¤å¤£¦nªº¾Çû̦³©Ò§U¯q¡C¡@¡@¡@¡@
¡@¦Û¤v¤]ª¾¹D¡A¼g Forth ªº®Ñ¡A¤£¦p¼g C »y¨¥¡ABASIC ©Î DBASEªº®Ñ¨Ó±o»´
ÃP°Q¦n¡A¥B¦W§QÂù¦¬¡C¦ý¡A§Ú¤£¤J¦aº»¡A½Ö¤J¦aº»¡CÄ@¯à³z¹L¦¹®Ñ¡A´¶´ç²³¥Í¡C
»PŪªÌµ²Ó Forth ªº½t¡C
---------- 1992¦~11¤ë©óÀR©y¸ê°T¨t -----------
¦Û §Ç
(¤G)
·í²Ä¤@ª©©Ò¦³¤å½Z³£§¹¦¨ªº®É¨è¡A ´¿¼y¼æ¥S ¤S°e¨Ó¤F ¤B³¯º~»^³Õ¤hªº
·s®Ñ FORTH first course ªºìª©¡A§Æ±æ§Ú§ï¼g¦¨¤¤¤å¡A¨Ã¥[¨ì²Ä¤Gª©¤¤¡C³o
¤U¤lªÓÀYè¨ø¤Uªº«¾á¡A¤S«·s·f¤W¤FªÓÀY¡A¸g¹L¤F¤@µf²`«ä¼ô¼{¡A§Ú¨M©w¡A
«·s§ïÅÜ¥»®Ñ즳ªº·®æ¡A¤@¨Ó¡A§Ú²K¥[¤F³\¦h·sªº³¹¸`»P¸É¥R¤F¤@¨Ç¸g¹L¿z
¿ïªºªþ¿ý¡A¥Hº¡¨¬¾Çû¶i¤@¨Bªº¨Dª¾¼¤¡C¤G¨Ó¡A§Ú±N¦h¦~¦b FORTH ±Ð¾Ç¤Wªº
¤ß±o¡A¥H§ó¥¹êªºµ§ªk¼g¦¨¤@¬q¬qªºµù²¨¡A¥[¦b¦U³¹¸`ªº¬q¸¨¤§«á¡A¥Hµo´§¾É
Ūªº¥\¯à¡A¦Ó¹F¨ì¸Ñ´bªº¥Øªº¡C¤T¨Ó¡A§Ú¹Á¸Õ¦b¥»®Ñ¤¤¥[¤J¤@¨Ç¤H¤å¦â±m¡A¥H
¬ðÅã FORTH ªºõ¾Ç«ä·Q¡A¦ÓÅý¾Çû¯àÅé¨ü¨ì¡A¾Ç FORTH ªº¤ß¾ú¸ôµ{¡A¬Oºë¯«
«©ó«¬¦¡ªº¡C§_«h¦ó¥H¤F¸Ñ" FORTH ¦p¹D "¡C
¡@¡@¼g¤@¥»¦n®Ñ«ÜÃø¡A¼g¤@¥»¦nªº FORTH §óÃø¡A§Ú§Æ±æ³o¤@¥»ªá¶O¨â¦~§¹¦¨
ªº®Ñ¡A¯à¥´¯} FORTH ¤f¶Ç¤ß±Âªº¨î¡A¨Ï¨C¤@Ó¾Çû³£¯à¨N¯D¦b FORTH ªº¬K
·¸Ì¡C
---------- 1993¦~6¤ë©óÀR©y¸ê°T¨t -----------
¡@¡@¡@¡@¡@¡@¡@¡@»x Á¡G¡@
¡@¤@¡B§Ún·PÁ¤T¦ì¡A§Úªº±Ò»X®¦®v
Dr.Susan Marry ¡A¦pªG¤£¬O¦o³sÄò¼¹¤F¤¦¸§Úªºµ{¦¡§@·~¡A§Ú¤£·|ª¾
¹D¦Û§Ún¨D¬O¨}¦n«~½èªº°ß¤@«OÃÒ¡C¡@¡@¡@¡@¡@¡@
Dr.Tanenbaum ¡A¦pªG¤£¬O¥LÂI³q§Ú¡A§Ú¤£·|Åé»{¨ì¹q¸£ªºµwÅé»P³nÅé
¬O¤@Å骺¨â±¡A¦ÛÅÞ¿è½u¸ô¡A·Lµ{¦¡¨ì§@·~¨t²Î¤H¾÷¤¶±¡A¼h¼h³£¬O¤@
³e¬Û³q©¼¦¹©IÀ³ªº¡C
¡@¡@¡@¡@Dr.Goldenstein ¡A¦pªG¤£¬O¥L¹G§Ú¥Î Forth ¡A§Ú¤£·|Åé·|¥Xµ{¦¡³]
p»P¤ßÆF¦P¨Bªº¨º¤@¥÷¦ÛµM¿Ä«êªº¬ü¦n·P¨ü¡A§óµLªk¤F¸Ñ¡A°ß¦³¤H¾÷¦X
¤@¤~¬O»P¹q¸£¬Û³B¦@¥ÍªºµL¤W¤ßªk¡C
¤G¡B±µµÛ¡G§Ún·PÁ¤B³¯º~»^³Õ¤h¡F¦pªG¤£¬O¥LëÛëÙÄé³»ªºÄµ¥Ü§Ú " ¬°¾Ç¤é
¯q¡A¬°¹D¤é·l " ¡F§Ú¤£·|¥h¬ÝÄYÆF®p¥ý¥Íªº¡u¦Ñ¤l¶°¦¨¡v¡A¦Ó®©¥X "
ª«§§«h¦Ñ " ¬O FORTH Meta Compliler ªººëÅè©Ò¦b¡C¤]µL±q¹y®©¥X
Forth ¬O¤@ºØ¥Í¬¡ªººA«×¡A¤@ºØ¥R¥¸Å餺¡AµL©Ò¤£¦bªº«äºû¤è¦¡¡F©Ò¥H
¡A¤£¨ã§Î¤£µÛ¬Û¡C¨ä¤H¾÷¤@Åé¡A¥ô§Ú¿¬µ¾¡C
¤T¡B·íµM³o¤@¥»®Ñ¡AY¤£¬O¼ï¼w³ß¥ý¥Íªºµ¦¹º¡A±À°Ê¥´¦r¡B®Õ¥¿¡B±Æª©«hµ´
µL¾÷·|§¹¦¨¡C§Ú¦b¥Lªº¨¤W¬Ý¨ì¤F¨º¤@ªÑÄÝ©ó Forth ¿W¦³ªº°í¼Ý¤£©Þ¡C
§Ún±N¦¹®Ñªº½Ï¥Í»P¥L¤À¨É¡CY¦¹®Ñ¯àµ¹¥xÆWªº¹q¸£¾Ç²ßªÌ±a¨Ó¤@ÂI²M
·sªº´ÂÅS¡A«h§¹¥þ¬O¥Lªº¥\³Ò¡C
¥|¡B¦ü¥Gn·PÁªº¤H¤Ó¦h¤F¡C¦pÀ°§Ú®Õ¥¿ªº¹ùz©÷¡B¿àªNªv¦P¾Ç¡A±Æª©ªº
¶¾´É·×¥ý¥Í¡A¤Îµ¹§Ú¹ªÀyªº¤H¤hÌ ! Á Á !
²Ä¹s½g
µL¤W¤ßªk
FORTH »PÁI
«e¨¥
¦b¬Y¨Ç¨g¼öªÌªº²´¤¤¡A FORTH ¤£¥u¬O¤@ºØ¹q¸£»y¨¥¡A¦³®É¥¦§ó¹³¬O¤@ºØ©v
±Ð¡A¨ü¨ì¤ä«ùªÌªº±R«ô»P«H¥õ¡C¦b²³¦hªº©v±Ð¤¤¡A FORTH »PÁIªº¹Ò¬É³Ì±µªñ¡C
¦p¦P¤j®a©Òª¾¡AÁI¥NªíµÛºë²¡B¹m¥Ã¡B´¼¼z»P±Òµo¡A¦P¼Ëªº¡A³o¨ÇÄݩʤ]³£¥i
¥H¥Î¦b FORTH ªº¨¤W¡F°£¦¹¤§¥~¡A¥¦Ì³£¶H¼x¤F¹ï¶Ç²Îªº¤@ºØ¬D¾Ô¬Æ¦Ü¬O¤@³õ
²©R¡CFORTH »PÁI¤§¶¡ªºÃö«Y¡A¤@ª½µL¤H±N¥¦°µ¤@¦³¨t²Îªº¤¶²Ð¡A¦Ó³o¥¿¬O¥»
¤åªº¥Øªº¡C
FORTH »PÁIªº¤ñ¸û
ÁIªº¥Nªí¤Hª«¬O¤»¯ª¼z¯à¡A¥L¬O¤¤°êÁI©vªº²Ä¤»¥N¶Ç¤H¡F¥Ø«e·¦æªº¡u¤»
¯ª¾Â¸g¡v§Y¬O¥L»P¨ä§Ì¤lªº¹ï¸Ü¿ý¡C»P¦ò±Ð¸g¨å¬Û¤ñ¡A¤»¯ª¾Â¸gÅã±o¸û¬°ºë²
¡B©öÀ´¡B§t»W¡A©Ò¥H¤]§ó¬°@¤H´M¨ý¡C§^µ¥»{¬°¤ñ¸û FORTH »PÁI¤§¶¡Ãö«Y³Ì¦n
ªº¤èªk¡A´N¬O±N¤@¬q¾Â¸gì¤å»P¤@¬q FORTH ªºì©l½X¨Ã¦C¡A¥¦Ì¤§¶¡©Î³\¨S¦³
ª½±µ¬ÛÃö¡A¦ý¥un¥Î¤ßÅé·|¡A¤@©w¯à·Pı¥X©¼¦¹©Ò¦@¦P³zÅS¥Xªº¯«Ãý¡C
ÁI»P FORTH ªº¾ú¥v
ÁI¦b¥»½è¤W¿Ä¦X¤F¾§¡B¹D¡BÄÀ¤T®aªººëÅè¡C¤¤°ê¤Hªº¤ß¤¤±`·|¦s¦bµÛ¤@ºØ
¥Ù¬Þ¡G¦bÁc¿Èªº¾§®a¡BµêµLªº¹D®a©M¤@Ó¶i¤fªº©v±Ð¡u¦ò¡v¤§¶¡¡AÁ`¬O¤£ª¾¦p
¦ó¨ú±Ë¡C©ó¬O¸g¹L¤¥N¬Û¶Ç¡AÁI©v²×©ó¦b¤»¯ª¼z¯àªº¤â¤W¤j©ñ¥úªö¡AĄ̊ú¤F²³
¦h¤¤°ê¤Hªº¤ßÆF¡C¤é«á¡A³oªÑÁIªº¼ö¼é§ó±À¦V¤F¤é¥»¡BÁú°ê¡BªF«n¨È¡A¥H¦Ü©ó
¨ì¤µ¤éªº¦è¼Ú»P¬ü°ê¡C
¸òÁI©v¤ñ°_¨Ó¡A FORTH ªº¾ú¥v´X¥G·L¤£¨¬¹D¡C¥¦¬O¥Ñ¤@Ó©t¿Wªº¬ì¾Ç®a
Charles Moore ¦b¤»¤Q¦~¥N¥½´Áµo©úªº¡C»¡¥L©t¿W¬O¥Ñ©ó¥Lªº«ä·Q¡B¤èªk³£³Q
±Æ°£¦b·í®É¹q¸£¬ì¾Çªº¡u¥D¬y¡v¤§¥~¡C¦b³Ìªìªº¤Q¦~¡A FORTH ´X¥GµL¤Hª¾¾å¡A
¤@ª½¨ì¤F 1985¦~¤§«á¡A¥¦»yªkºë²¡Bµ²ºcÀu¶®¡B°O¾ÐÅé¨Ï¥Î¤Q¤À¸gÀÙ¡A½Ñ¦p¦¹
ÃþªºÀuÂI¤~º¥º¥¬°¤H©Òµo±¸¡A¶i¦Ó¼s¬°¤Hª¾¡C
¤f¶Ç¤ß±ÂªºÁI
¦ò±Ð¬OÄÀ{¦È¥§©Ò³Ð¡A¥L±j½Õ¤H¤H¥un¥h°£¨p¼¤¡A«h³£¯à°÷¦¨¦ò¡A¤G¦Ê¦~
«á¡A¦ò±Ð¤Àµõ¦¨¤G¬£¡G¤j¼»P¤p¼¡C¤j¼¦ò±Ð«á¨Ó¶Ç¤J¤F¤¤°ê¡BÁú°ê¤Î¤é¥»¡C
¦Ó¤p¼¦ò±Ð«h¶Ç¤J¤F¿üÄõ¡B®õ°ê»P½q¨l¡C¤j¼¦ò±Ð¦è¤¸¤G¦Ê¦~¶Ç¤J¤¤°ê«á¡A¨ü
¨ì¤H̪ºÅwªï¡A§ó¶Ç¤J¤F¤j¶qªº¦ò¸g¡C
ðÕ«h¬O¦b¦è¤¸ 527¦~¥Ñ¦L«×¹¬¤H¹F¼¯×îv®©¹Fªº¡C¶Ç»¡¥L¦b¤ÖªL¦x±¾À¤E
¦~¡A¤~®©¥X¤FðÕªº¹D²z¡C¦ý¬O¥L¬J¤£¤Þ¥Î¦ò¸g¡B¤]¤£¦Û¦æµÛ§@¡A¥u¥Î¤fÀY»¡©ú
¨Ó±Òµo¾Ç¥Í¡C©ó¬OðÕ´N¥H¤fzªº¤è¦¡¡A¥N¥N¬Û¶Ç¡F¬Û¹ï©ó¦ò±Ðªº¤j«Ø¼q¦x¡B¼s
͏s¸g¡AÁI«o¥H¤f¶Ç¤f¡B¤ß³q¤ßªº¤è¦¡¬y¶Ç¤U¥h¡C
¤f¶Ç¤ß±Âªº FORTH
FORTH ¬O¦b 1970¦~¥Ñ Charles Moore ©Òµo©úªº¡C FORTH ¬O FOURTH ªºÁY
¼g¡A§Y²Ä¥|¥N»y¨¥¡A¦³§O©ó·í®É¤w¤j©ñ²§±mªº²Ä¤T¥N»y¨¥¡CFORTH ªºµ{¦¡½X«D
±`ÃøÀ´¡A¦]¬°¥¦ªº½s;¹¤]¬O¥Î FORTH ¼gªº¡Cn¤F¸Ñ FORTH¡A¥²¶·¥ý¤F¸Ñ¥¦ªº
½s;¹¡An¤F¸Ñ¥¦ªº½s;¹¡A«o¤S¥²¶·¥ý¤F¸Ñ FORTH¡CFORTH ³oºØ¡u©ö¾ÇÃøºë¡v
ªº¯S©Ê¡A¨Ï±o³\¦h¤H±æ¤§«o¨B¡C¦h¦~¨Ó¡A FORTH ¤]¥u¯à¥H¤f¶Ç¤f¡B¤ß³q¤ßªº¤è
¦¡¦b¬Y¨Ç¾ÖÅ@ªÌ¤§¶¡¬y¶Ç¡C¥¼¯à´¶¤Î¤j²³¡C
ÁIªºµo´
¤»×üz¯à¬OðÕ©vªºÃöÁä¤Hª«¡A³o¦ì¤£ÃѦrªº¤Ñ¤~¡A쥻¬OÓ¾ö¤Ò¡C«á¨Ó¥L
§ë¤J¤F¤×Ã¥°§Ôªºªù¤U¾Ç²ßÁI©v¡C¥°§Ô§Y±N¶ê±I¤§«e¡A¶°¦X¤Fªù¤U§Ì¤l¡An¥L
̦U¼g¤@ºÔU¡A¥°§Ô¦A®Ú¾Ú§Ì¤l̪º¼z®Ú¡A¨M©w±N¦ç²Ú¶Çµ¹½Ö¡C
·í®É¯«¨q(¥°§Ôªº±o·Nªù¥Í)¼g¤U¤F³oºÔU
¨¬OµÐ´£¾ð¡A¤ß¦p©úÃè»O¡C
´Â´Â¶Ô©Ø«ø¡A²ö¨Ï·S¹Ð®J¡C
¦Ó¼z¯à«h¤fz½Ð¤H¥N¼g¤F³oºÔU¡G
µÐ´£¥»µL¾ð¡A©úÃè¥ç«D»O¡C
¥»¨ÓµL¤@ª«¡A¦ó³B·S¹Ð®J¡S
®Ú¾ÚÔU¤¤ªº·N¹Ò»P±Òµo¡A¥°§Ô±N¦ç²Ú¶Çµ¹¤F¼z¯à¡C¼z¯à¦¨¬°©v®v«á¡A¥u°µ
¤fz¶Ç±Ð¦Ó¤£µÛ§@¸g¨å¡C¤j¬ù¦è¤¸¤»¦Ê¦~¡A¤@¦ì¨µ¼¾½Ð¼z¯àªº°ª¨¬ªk®ü¡A®Ú¾Ú
¼z¯àªº¨¥±Ð¡A¼g¤U¤F¤»¯ª¾Â¸g¤@®Ñ¡A®Ñ¤¤ªí¹F¤FðÕ¯u¥¿ªº·Qªk»P¹Ò¬É¡A§ó¨Ï¤@
¯ë¤H¯à»´©ö¦a¤F¸ÑðÕªº·N¹Ò¡F¤»¯ª¾Â¸gªº§¹¦¨¡A¨Ï±oðÕ¬°¤j®a©Ò¼ôª¾¡B·N·|¡A
¶i¦Ó¨ÏðÕµo´¥ú¤j¡C
FORTH ªºµo´
¥¿¦p«ezªººØºØ»Ùê¡A FORTH ©l²×¥u¬O¤Ö¼Æ¤Hªº¬y¶Ç¤§ª«¡Cª½¨ì 1978¦~
FORTH ±À¼s¾Ç·|(FORTH INTEREST GROUP)ªº¦¨¥ß¡A¥L̰w¹ï¥«±¤W³Ì·¦æªº¤»
ºØ·L³B²z¾÷¡A¥Î²Õ¦X»y¨¥¼¶¼g¤F FORTH ¨t²Î¡A¨Ï¤@¯ë¹q¸£¨Ï¥ÎªÌ¤]¯à¤F¸Ñ
FORTH ªºµ{¦¡½X¡A¶i¦Ó¨Ï¥Î¥¦¡C1980¦~¤§«á¡A§ó¥X²{¤F¤j¶qªº FORTH ¬ÛÃö®ÑÄy
¡A¦p LEO BRODIE ªº STARTING FORTH¡A¤B³¯º~»^³Õ¤hªº
SYSTEM GRUIDE TO FIGFORTH ¡A¤Î BYTE Âø»xªº FORTH ¯S§O³ø¾É¡F³o¨Ç³£§êºt
¤FÃþ¦ü¡u¤»¯ª¾Â¸g¡vªº¨¤¦â¡A¨Ï¤@¯ë¨Ï¥ÎªÌ³£¯à±µÄ² FORTH ¡A¨Ï¥Î FORTH ¡A
¶i¦Ó¤F¸Ñ¡uFORTH ¦p¦ó§¹¦¨¤u§@¡v¡A¦Ó«D¡uFORTH ¯à°µ¨º¨Ç¤u§@¡v¡C³o¨Ç§V¤O
¨Ï FORTH ¤£¦A¬O¤@Ó¯«¯µÃø¸Ñªº»y¨¥¡A FORTH Åܱo¤j²³¤Æ¡B¿Ë©M¤Æ¡B¤D¦Üµo
´¥ú¤j¡C
ðÕªº³æ¯Â©Ê
¸g¹Lªø¤[®É¶¡ªº¬y¶Ç¡A¦ò±ÐÅܱo«D±`½ÆÂø¡C¦³¤Ó¦hªº¦ò¸gµù¸Ñ¡B¦³¤Ó¦h°ª
¹¬ªºÔU¨¥¡A¦¹¥~¥¦§ó¿Ä¤J¤F¨ä¥L©v±Ðªº±Ð¸q(¦p¤Q¤K¼h¦aº»¡B½ü°jÆ[©À§Y¨Ó¦Û¦L
«×±Ð)¡C¤[¦Ó¤[¤§¡A«H®{Ì©¹©¹¥u¬B¨ú¥L̬۫Hªº³¡¥÷¡G¦p¯À¹¡B§G¬I¡B©ñ¥Íµ¥
¡C¬Û¹ïªº¡AðÕ´N³æ¯Â¤F«Ü¦h¡A¼z¯à¨Ã¤£¬Û«H¹ê¦æ³o¨Ç§@¬°´N¯u¯à¦¨¦ò¡C¥L»{¬°
¦ò¤w¦s¦b©ó¨CÓ¤Hªº¤ß¤¤¡A¥un¥h°£¨p¼¤Âø©À¡A´N¯à¦¨¦ò¡C©Ò¥HðÕ©v¤£«×¦æ
¡B¤£¨Ì¿à¦ò¸g¤Ï¦Ó«µøÓ¤Hªº¤ßÆF±Òµo¡A¤ñ¦ò±Ðn³æ¯Â¤F³\¦h¡C
FORTH ªº³æ¯Â©Ê
¬°¤F¬ðÅã FORTH ªº³æ¯Â¡A§ÚÌ¥i¥H§â«e±¯«¨q¡B¼z¯àªºÔU°µ¨Ç×§ï¡C·í¤µ
ªº¹q¸£Æ[©À¡F´N¦p¦P¯«¨qªºÔU¡G
µwÅéÂø¤SÃø¡A³nÅé¾Ç¤£§¹¡C
¤é©]®Iº·F¡A¤ß»Ä¤S¤ß·Ð¡C
¦Ó FORTH ©O¡S ´N¹³¡G
µwÅé¨ã¹êÆ[¡Aµ{¦¡¬°«ä¦ê¡A
²Å¦¡¥Ñ¤¤¬ï¡A¤H¾÷ì¤@³e¡C
²{¤µªº¹q¸£¬ì§Þ¡A³nµwÅé³£¬Û·í½ÆÂø¡C¥Dn¬O¥Ñ©ó¤H»P¾÷¾¹¤§¶¡¡A¹j¤F¤Ó
¦h³nÅé¡C¡u¥H³nÅé«OÅ@µwÅé¡v³oÆ[©À·½¦Û©ó¹L¥h¤j¹q¸£ªº®É¥N¡A·í®É¹q¸£·í¾÷
¬O³Ì¥i©Èªº¨aÃø¡A©Ò¥H±M®a̳]p¤F««Ãö¥d(¦p O.S LOADER DRIVER µ¥)¨Ó
¡uÀ°§U¡v¨Ï¥ÎªÌ¨Ï¥Î¹q¸£³]³Æ¡C¦Ó³o¨Ç½ÆÂøªº³nÅé¡A«o³y¦¨¤F¨Ï¥ÎªÌ¾Ç²ß¤W²ö
¤jªº§xÃø¡C(¦p¹Ï¤@)
¢z¢w¢w¢w¢w¢w¢{
¢x ¨Ï¥ÎªÌ ¢x
¢|¢w¢w¢s¢w¢w¢}
¢x
¢z¢w¢w¢w¢w¢w¢w¢r¢w¢w¢w¢w¢w¢w¢{
¢x Applications (À³¥Î³nÅé) ¢x
¢x ¢x
¢x Compilers (½s͵{¦¡) ¢x
¢x Editors (½s¿èµ{¦¡) ¢x
¢x Assembler (²Õ͵{¦¡) ¢x
¢x Linker (Ãìµ²µ{¦¡) ¢x
¢x Loader (¸ü¤Jµ{¦¡) ¢x
¢x ¢x
¢x Operating Systems ¢x
¢x (§@·~¨t²Î) ¢x
¢x ¢x
¢x Resource Managers ¢x
¢x (¸ê·½ºÞ²z¡A¦p°O¾ÐÅé ¢x
¢x ¡BCPUªº®É¬q¤À°t) ¢x
¢x ¢x
¢x Device Drivers ¢x
¢x (³]³Æ»P¸Ë¸mªºÅX°Ê¤¶±) ¢x
¢|¢w¢w¢w¢w¢w¢w¢s¢w¢w¢w¢w¢w¢w¢}
¢x
¢z¢w¢w¢r¢w¢w¢{
¢x ¹q¸£µwÅé ¢x
¢|¢w¢w¢w¢w¢w¢}
µM¦Ó²{¤µªº¹q¸£¤w¤£¦A¬O¨º»ò¦^¨Æ¡A«ö¤@¤U RESET §Y¥i¦A°_°Ê¡A§ó¦óªp¨Ï
¥ÎªÌ©¹©¹´N¬O¹q¸£ªº¾Ö¦³ªÌ¡A¥L·|¬°¥Lªº¦æ¬°t³d¡C©Ò¥H¹ê¦bµL»Ý¦A±N¤H¾÷¤§
¶¡¥[½ÑºØºØ¨î¡CFORTH §Y¿í´`³oÓÆ[©À¡G°ò¥»¤W¡A FORTH ¬O¤@Ó³æ¯Â¡B¾ã¦X
ªº¤¶±¡A³z¹L¥¦¨Ï¥ÎªÌ¯à°÷»´ÃP¦a¨ú¥Î¥ô¦óµwÅé¸ê·½¡A§ó¥Ñ©ó³æ¯Â¤Æ¡B³Ì¨Î¤Æ
¡A©Ò¥H³t«×§ó§Ö¡B°O¾ÐÅé§ó¬Ù¡B®Ä²v§ó°ª¡C(¦p¹Ï¤G)
¢z¢w¢w¢w¢w¢w¢{
¢x ¨Ï¥ÎªÌ ¢x
¢|¢w¢w¢s¢w¢w¢}
¢x
¢z¢w¢w¢w¢w¢r¢w¢w¢w¢w¢{
¢xOuter Interpreter ¢x
¢x (¤H¾÷¤¶±) ¢x
¢x ¢x
¢x Forth ¢x
¢x ¢x
¢xInner Interpreter ¢x
¢x (°õ¦æ¾÷ºc) ¢x
¢|¢w¢w¢w¢w¢s¢w¢w¢w¢w¢}
¢x
¢z¢w¢w¢r¢w¢w¢{
¢x ¹q¸£µwÅé ¢x
¢|¢w¢w¢w¢w¢w¢}
¦¹¥~ FORTH ÁÙ¦³´XÓ¯S©Ê¡A²{¤µ¹q¸£¤¤¹L¦hªº¼È¦s¾¹(Register) ©¹©¹³y
¦¨©I¥sµ{¦¡®É»Ýn«ÂЦs¨úªº§xÂZ¡C¦Ó FORTH ±Ä¥Î°ª®Ä²vªº°O¾ÐÅé¦s¨ú§Þ¥©¡A
¥B±N¤@¨Ç»Ý¼È¦s¸ê®Æ³£©ñ¤J°ïÅ|(Stack)¤¤¡A¤j¤j´£¤É¤F®Ä²v¡C¦Ó«á¸m¦¡ªº¹Bºâ
ªí¥Üªk¡AÁöµM·|³y¦¨¬Y¨Çªì¾ÇªÌªº¤£²ßºD¡A¦ý¨äºë²¥u»Ýn 1-pass ªº½sĶ¡A
¦Ó¶Ç²Îªº¤¤¸m¦¡«h³q±`»Ý 2-pass ªº½sĶ¡CFORTH ªººë²³æ¯Â¡A¥¿¬O³y¦¨¥¦®Ä
¯àÅå¤Hªº³Ì¤jì¦]¡C
ðÕªº±Òµo©Ê
¦p«e©Òz¡AðÕ»P¦ò±Ð¦b¬Y¨Ç¦a¤è¦³©Ò¤£¦P¡A¦ò±ÐÁ¿¨D¦Û¨ªº×¦æ»P¸g¨åªº
¬ã²ß¡C§ó¥Ñ©ó¸g¤å¤j¦h¥Ñ±ë¤å½Ķ¡A©Ò¥H§ó³y¦¨¤F²z¸Ñ¤Wªº§xÃø»P±Ð¸qªº²³»¡
¯É¤ª¡CðÕ©v«h¬O«µø¤ßÆFªº×¬°¡A¥¦»{¬°¯u¥¿ªº±Òµo¨M¤£¬O¨Ó¦Û®Ñ¤W¡A¦Ó¬O¨Ó
¦Û¤ßÆFªº¥æ¬y¡CðÕ¹ï©ó¤ßÆF±Òµoªº¤è¦¡¡A¤S¤À¬°¨â¬£¡A¯«¨q¥D±i¡uº¥®©¡v¡A¦Ó
¼z¯à«h¥D±i¡u¹y®©¡v¡C¦ý¥¿¦p¼z¯à©ÒÄÄzªº¡A±Òµoªº¤è¦¡¨Ã¤£«n¡A«nªº¬O
¦p¦ó°£¥h¥~¦bªºªýê¡A¥H¹F¨ì¤ßÆFªº±Òµo¡C
FORTH ªº±Òµo©Ê
½Í¨ì FORTH ªº±Òµo©Ê¡A«üªºÀ³¸Ó¬O¨Ï¥ÎªÌ¹ï¹q¸£µwÅ骺§¹¥þ¤F¸Ñ»P´x´¤¡C
·í¤µªº§@·~¨t²Î(O.S) »Pµ{¦¡»y¨¥(P.L) ¹ê»Ú¤W¨î¤F¨Ï¥ÎªÌ¡AÅý¥LÌ¥u¯à°µ
¨t²Î¤¹³\¥L̰µªº¨Æ¡C¦Ó¨Ï¥ÎªÌ¤@¥¹³z¹LFORTH ´x´¤¤F¹q¸£¡A¥LÌ·|µo²{¥LÌ
¤~¯u¥¿ªº¦¨¬°¹q¸£ªº¥D¤H¡A¦Ó¹q¸£¤£¹L¬OÓ¦³«Â¤O¡B«o«Ü·Å¶¶ªº¥£Áõ½}¤F¡C
FORTH ¤À¬°¨âÓ³¡¥÷¡G¤º³¡ªº°õ¦æ¾÷ºc(INNER INTERPRETER) »P¥~³¡ªº°õ
¦æ¾÷ºc(OUTER INTERPERTER) ¡A¤º³¡ªº°õ¦æ¾÷ºc(INNER INTERPERTER) ¥Î¨Ó¹ê
»Ú°õ¦æ FORTH ªº«ü¥O¸s¾r±sµwÅé¡A¦Ó¥~³¡ªº°õ¦æ¾÷ºc(OUTER INTERPERTER) «h
¯à§â¨Ï¥ÎªÌ¿é¤Jªº¤å¥yÂà´«¦¨ FORTH ½X¡C©Ò¥H¨Ï¥ÎªÌ¤@¥¹±N FORTH §Ë¼ô¤F¡A
´N¤£¥Î¦A¨ü¨ì§@·~¨t²Î(O.S)»Pµ{¦¡»y¨¥ªº¥ý¤Ñ¨î¦Ó¦¨¬°¹q¸£¯u¥¿ªº¥D¤H¡C
ª÷«° µù²¨¡G¡@
¦b 1993¦~ªº 9¤ë FORTH ¤w¦¨¬° IEEE ªº¶}©ñ¦¡¶}¾÷¶´Å骺°ß¤@
¼Ð·Ç¡C¦pªG§A¨Ï¥Î SUN ªº¤u§@¯¸©ó¥ô¦ó®É¶¡«ö STOP-A ´N¥i¶i¤J
FORTH ªºÀô¹Ò¤¤¥ô§A¾C¹C¡C
µL¤W¤ßªk²Ä¤@½g¡@
¡@¡@¡@¡@
¡@¡@¡@¡@¡@¡@¡@¡@¡@" ¤@§â¥¤Zªºµæ¤M "
¡@¡@°O±oè¥X°ê¨D¾Çªº®ÉÔ¡A¬Ý¨£¦Ñ¥~ªº¼p©ÐùصY²wº¡¥Ø¡A¦U¦¡¦U¼ËªºÁç¡B¸J
¡B½L¡B¬Ö¡B¤M¤e¿]ü¡Aı±o¤å©úªº°ê®a³s¼p©Ð³£¬O¨º»òªº¦hªö¦h«º¡A¤Þ¤H¤J³Ó
¡C¤×¨ä¬O¤M¬[¤W¡A¤C¡B¤KºØ¦U¦¡¦U¼Ëªº¤M¡A°{Ä£°Ê¤H¡A¦³¤Á¦×¤M¡B¤Á³½¤M¡B¤Á
ÄÑ¥]¤M¡B¤Á¤õÂû¤M¡B¤Á¬v½µ¤M¡B¤Á¤ôªG¤M¡B¤Á¸²µå¬c¤M¡A¬å°©ÀYªº¤M¡C¦³¥·Æ
¤M¡B¦³¿÷¾¦¤M.......¡C«z!À~¦º¤H¤F¡Cn°µ¤@À\¶º¡A»Ýn¥|¡B¤ºØ¬Ö¡A¤¡B¤»
ºØ¿÷¡A¤C¡B¤KºØ¤M¡C§Ë§¹¤@À\¶ºn¬~°ï¿n¦p¤sªº¦UºØ¥Î¨ã¡C³ÌÃø¹Lªº¬Oªá¤F¦p
¦¹¦hªº®É¶¡¡A¨Ï¥Î¤F¼Æ¤QºØ¤u¨ã¡C¦ý°µ¥X¨Óªº¦èÀ\¨Ã¤£¤@©wºë½o¡A¤]¤£¤@©w°Q
¤H³ßÅw¡C
¤ÏÆ[¡G§Ṳ́¤°ê¤j¼pªº¤â¤W¡A¥u¦³¤@§â¥¥¤Z¤Zªº¤jµæ¤M¡A¦ý¼ô¯à¥Í¥©¡A
¼A¡B¬å¡B¤Á¡B«d¡B¨ï¡B¤ù¡B©ç¡B«c........¡C¯à±NÂûÀn³½¦×²¨µæ¤ôªG³B²zªº¦³
±ø¤£¯¿¡A«ê¨ì¦n³B¡C¤@Ó¤S¶Â¤SÁ઺ª£µæÁç¡A¦b¤õÔ±±¨î¤U¯à·Î¡BµN¡Bª£¡B¬µ
¡B¿N¡B¯N¡BÖK....¼Ë¼Ë¯à·F¡A°µ¤@®àµæ¡A¤@¤M¤@Áç¤@Ãê¡A¦p¦¹¦Ó¨o¡I¤¤°êµæ¦W
»D¥|®ü¡C¾Ìªº¬O¤°»ò¡A¯µ±K¦b¨ºùØ¡I§Aª¾¹D¶Ü¡H¦Ñ¯ª©vªºµL¤W¤ßªk¥u¬O " ¤@§â
¥¤Zªºµæ¤M "¡C" ²³æ " ¤G¦r¦Ó¤w¡I¦]¬°¡I²³æªºµæ¤M¨Ï¼p®v¯à°÷¦b¤ÏÂШÏ
¥Îªº¼ô½m¤¤¡A±±¨î¦Û¦p¡F¥Ñ¼ô³z¤u¨ã¦Ó²£¥Í§Þ¥©¡C¦A¥Ñ¼ô±x¤F§Þ¥©¦Ó¯à±M¤ßªº
«ä¦Ò°µµæªº°ÝÃD¡C¯à·Q¨ì¤°»òµæ¦¡¡A´N¹B¥Î¼ô½mªº§Þ¥©±N¤§ªí²{¥X¨Ó¡A¦Ó¹F¨ì
¤H¤M¤@Å骺§¹¬ü¹Ò¬É¡C
¡@¡@¦A¦^ÀY¬Ý¦Ñ¥~ªº¼p¤l¡C¨º»ò¦hºØ¤u¨ã¡An¥Î¤@¥Íªº®É¶¡¥h¾Ç¥h°O¡C¬¡¨ì¦Ñ
¾Ç¨ì¦Ñ¡C¨º¦³®É¶¡¥h±M¤ßªº·Q°µµæªº°ÝÃD¡C¬Û¦Pªº¡A§Ų́Ӭݲ{¤µ¾Ç¹q¸£ªº°Ý
ÃD¤]¬O¥Ç¤F¦P¤@Ó¿ù»~¡F¨«¶i¹q¸£®Ñ©±¡A¦U¦¡¦U¼Ëªº®ÑÄy¡A³}³}¹q¤lµó¡A¦U¦¡
¦U¼Ëªº³nµwÅé¡A¥s¤H²´ªá¼º¶Ã¡A¤£ª¾©Ò±¹¡C DOS¡BUNIX¡BOS/2¡BWindow-NT
¡BDBASE¡BFOXBASE¡BClipper¡BLotus¡BExcel¡BC++¡BPASCAL¡BBASIC¡BCOBOL
¡BFORTRAN¡BAssembley¡AÀ~¦º¤H¤F¡C¦¨¤d¤W¸UªºªF¦èn¾Ç¡AÁÙ¨S¾Ç·|³o¤@ª©¡A
¤U¤@ª©¤S¥X¨Ó¤F¡C¨CÓ¤HªºµwºÐ¥Ñ¼Æ¤Q Mega¡A´«¦¨¤F¼Æ¦Ê Mega ¤´µM¤£°÷¥Î¡C
®Ñ¬[¤Wªº¤â¥U³¯¦C¤F¼Æ¤Q¥»¡A¦ý¨S¦³¤@¥»¬Ý§¹¡C¾Ç¤F¼Æ¦~ªº¹q¸£¡A¦ý¤´´M´M³V
³Vªº¦b§ä·sªº³nÅé©M·sªº®ÑÄy¡C¬¡¨ì¦Ñ¡A¾Ç¨ì¦Ñ¡A´N¬OµL¯à¤O¸Ñ¨M°ÝÃD¡C©Î¨C
¹J¨ì¤@Ó·s°ÝÃD¡A´Nn¾Ç¤@Ó·s¤u¨ã¡A¬Ý¤@¥»·s¯¦ÓD¡Cü¡I±E¤£ª¾½m©Û¤£½m¥\
¡A¨ìÀY¤@³õªÅ¡Cªá¤F¤j¶qªºª÷¿ú¡A¯Ó¤W¤F«C¬K·³¤ë¡C°ß¤@ªº¦¬Ã¬¡A¥u¬Oª¾¹D¤F
´XÓ¬y¦æ³nÅ骺¦W¦r¡A©M¤@¥x¥u¯Ó¹q¤£ÁÈ¿úªº¹q¸£¼Ð¥»¡C®Ñ¬[¤W¤@¥»¥»
" ¢æ¢æ¤Jªù " ¡A" ¢æ¢æ³t¦¨ " ¡A" ¢æ¢æ¤j¥þ "¡A" ¢æ¢æÄ_¨å "³£¦¨¤F¥á¤F¥i
±¤¡A¯dµÛ¨S¥Îªºt¾á¡C¥i¼¦¡I¥i¹Ä¡I¥i´d¨o¡I
¡@¡@¤ÏÆ[¡I¾Ç Forth ¡A¥Î Forth ªº¹q¸£±M®a(Computer Hacker)¡A½a¨ä¤@¥Í¡A
¥uÆp¬ã Forth ªº®ÑÄy¡A¥u¨Ï¥Î Forth ¤@®M³nÅé¡A(Forth ¤]¦³¦Û¤vªº CPU ©M
µwÅé)¡A·íµM®e©ö¼ô¯à¥Í¥©¡A¦Ó«á±M¤ß«ä¦Ò¤u§@¤Wªº°ÝÃD¡Cn°µ¸ê®Æ®w¡A´N«Ø¥ß
¤@¸s±Mªù·j´M¡B±Æ§Ç¡BŪ¼gÀɮסB°O¿ýªº«ü¥O¶°¡Cn°µ¹q¸£Ã¸¹Ï¡A´N«Ø¥ß´XÓ
µeÂI¡Bµe½u¡Bµe¶ê¡B¶î¦âªº«ü¥O¡Cn°µ¹q¸£µ¼Ö¡A´N¼g´XÓ±±¨î¡Bµ°ª¡Bµªø
¡Bµ±j¡Bµ¦âªº«ü¥O¡Cn°µ¦Û°Ê±±¨î´N«Ø¥ß´XӮɧǤ¤Â_ªº¿é¤J¿é¥X«ü¥O¡Cı
±o¥L¤Hªº¤å®Ñ½s¿è³nÅ餣¦n¥Î¡A´N¨Ì¦Û¤vªº³ß¦n¼g¤@Ó¦Û¤v¶¶¤âªº½s¿èµ{¦¡¡A
¤S¦n¥Î¡A¤S¤£»Ýn¬Ý¤â¥U¡A¤Ï¥¿¡A¨C¤@Ó¥\¯à³£¬O¦Û¤v©wªº¡I
¡@¡@¬Ý DOS ¤£¶¶²´¡F¤Sı±o UNIX ¤ÓÃe¤j¡A¨º´N¥Î Poly-Forth ¹À¡I¥u¦û 8K
ªº°O¾ÐÅé¡A¤S¬O¦h¤H¨Ï¥Îªº¦h¤u§Y®É§@·~¨t²Î¡C¬Æ¦Ü¤´Ä±ªº¤£²n¨º´N¦Û¤v«¼g
¤@®M Forth ¡A¤Ï¥¿¦³¦Û§Ú¤¶Åܽs;¹(Meta Compilor)´Nºâ««Ø¤@¦¸¤]¤£¹L´X
¤Ñªº¥\¤Ò»P®É¶¡¡I
¡@¡@¤@Ó¯u¥¿ªº Forth °ª¤â¡A¤@©w·|°µ¦UºØÀ³¥Îªº³nµwÅé¡C§ó·|°µ¨t²Î¤u¨ã¦p
²Õ͵{¦¡(Assembler)¡A½s͵{¦¡(Compilor)©M½s¿èµ{¦¡(Editer)¡C¦]¬°¡A³o¨Ç
³£¬O Forth ¨t²Îªº¤@³¡¥÷¡IÅ¥°_¨Ó¦n¦ü«Ü¸Ø±i¡A¦ý½T¤@ÂI¤£°²¡CÀH«K¥ô¦ó¤@Ó
Forth °ª¤â¡A³£·|¦P·N³o¼Ëªº»¡ªk¡C
¡@¡@¥i¬O¨ä¥L¨t²Î©Î»y¨¥ªº°ª¤â¡Aµ´¤£´±¦³³o¤@ºØ·Qªk¡C¸Õ°Ý DOS ªº°ª¤â¦³´X
Ó´±«¼g DOS ¡CC »y¨¥ªº°ª¤â¦³´XÓ´±«¼g C »y¨¥ªº½s͵{¦¡¡CPE2 ªº°ª¤â
¬O§_´±«¼g PE2¡F¤¤¤å¿é¤Jªkªº°ª¤â¦³´XÓ´±«·sµo©ú§ó¦nªº¤¤¤å¿é¤Jªk¡C¦ý
¨C¤@Ó Forth ªº°ª¤â¡A³£´±¦Ó¥B³£·|«¼g¤@®M¦Û¤vªº Forth ¨t²Î¡C³o´X¥G¤w
¦¨¤F Forth ªº¶Ç²ÎÅK«ß¡C¬O¤°»ò¨Ï Forth ªº°ª¤â»P¨ä¥L¨t²Î©Î»y¨¥ªº°ª¤â¡A
¦³¦p¦¹¤jªº®t§O¡A´N¬O" ²³æ "¤GÓ¦rªº«Â¤O¡C
¡@¡@¦]¬° Forth ¨t²Î´N¥u¦³¨âÓ°ïÅ|¡B¤@Ó¦r¨å¡A¦p¦¹Â²³æªºµ²ºc¡A«D±`®e©ö
ºë²`¡C¤@¥¹¼ô±x¤§«á¡A«K¯à¨ÌÓ¤H©ÎÀ³¥Îªº»Ý¨D¦Ó²£¥Í¦UºØÅܤơA¥HÂX¥R즳
ÂÂÀô¹Òªº¯à¤O¡C¤]´N¬O«Ø¥ß·sªº«ü¥O©ÎÅý«ü¥O¦³·sªº¥\¯à¡C³o´N¬O FORTH ªº
À³¥Î¤è¦¡¡C¤@ºØÂ²³æ¦Ó¦³®Ä²vªº¤è¦¡¡C±`Å¥¾Ç¥Í̲á¤Ñ¡Aı±o·í¤µ¾Ç¹q¸£ªº¤H
¤¤¬r«Ü²`¡C¦Ñ¬O°g«H " ³t¦¨ " ªº¬y¦æÁͶաA¦Ó©¿²¤¤F®Ú°ò²Ï¹êªº«n©Ê¡C
" ¸Ñ¨M°ÝÃDªº¬O¤H¡A¤£¬O¤u¨ã " ¡C¨ÏµæÅܱo¥i¤f¦n¦Yªº¬O¼p®v¡A¤£¬O¼p®v
¤â¤¤ªº¤M¡C¾Ç Forth ¡A¤@¦p¾Ç¥Î¤M¡A¸Ó¬Ý¦¨¤â¬q¡A¦Ó«D¥Øªº¡C¯u¥¿ªºn¸q¬O¡G
¾Ç¦n¤º¥\¡A¥u»Ý¤@©Û " ¤H¾÷¤@Åé "¡A«K¯à±M¤ß±¹ï°ÝÃD¡A«ä¦Ò°ÝÃDªº¯S©Ê»P³q
«h¡A«ä¦Ò°ÝÃD©Ò»Ýnªº¸ê®Æµ²ºc¡A«ä¦Ò°ÝÃD©Ò»ÝnªººtĶªk(Algrithm)¡C¦Ó "
¹ï¹q¸£»P°ÝÃDªº²`¤J¤F¸Ñ " ¬O§J¼ÄP³Óªº²Ä¤@n¯À¡C
¦Ó Forth ªºÂ²©ö©Ê»PÂX¥R©Ê¡A©M¼Ò²Õ(module)ªº¦A¥Î©Ê(reusable)¥u¬O¨Ï
¤H¾÷¤@Å骺§A¡A¯à§óºë¼ô»P¦Û«Hªº¥h¨³³t¸Ñ¨M°ÝÃD½}¤F¡C¤Ï¹L¨Ó»¡¡A¥¿¦]¬°¾Ç
Forth ªº¸ô³~¤¤¡A¦³²Õ¦X»y¨¥¡B¦³§@·~¨t²Î¡B¦³½s͵{¦¡¡B¦³ª½Ä¶µ{¦¡¡B¦³¸ê
®Æµ²ºc(¥D°O¾ÐÅ骺ºÞ²z).....¡C©Ò¥H¡A¦pªG¯à±M¤ßªº¼õ¹L³o¤@³õ¼Ý¤O»P°í«ùªº
¦ÒÅç¦ÛµM¦¨¬°¤H¾÷¦X¤@ªº°ª¤â¡C¤@¦p¯à¦b¼p©Ð¼õ¦¨¤j¼p¤@¯ë¡C¤M¥\¡B¤õÔªº¿i
Áå¯Ê¤@¤£¥i¡C
¡@¡@§_«h¡A¥b³~¦Ó¼o¡A¤£¦p¤£¾Ç¡A®{¼W¦Û¦ã¦Û«è½}¤F¡CÁÙ¤£¦p¡A¦º¤ß¶ò¦a·í¤@
Ó¥¤Zªº¨Ï¥ÎªÌ¡A·|¥Î¥Î¸Õºâªí¡B¤å®Ñ³B²z¡B®M¸Ë³nÅé´N½}¤F¡C¤£¥Î¦YW¨üÃø
¤]¤£¥Î¥Õ¦£¤@³õ¡C»¡¹ê¸Ü¡B¬Ýªº¤Ó¦h¤F¡A¤Ï¥¿³o¥@¤Wµ´¤j¦h¼Æªº¤H¾Ç¹q¸£³£¬O
¾Ç¤ß¦wªº¥b½Õ¤l¡C«e´X¦~¬y¦æ BASIC ¡A´N¤@ºÛ·ªº¾Ç BASIC ¡F³o´X¦~¬y¦æ C
´N¤@ªÑ¾Ç C ªº®ö¼én§â¤H²T¦º¡C³Ìªñ¬y¦æª«¥ó¾É¦V(OOP)ªº C++¤S¬Oªü¿ßªüª¯
ªº´c¥s´c§p¤@°}¡A¤Ñ¾å±o¡A©ú«á¦~¤Sn·d¤°»ò¸¾÷¤F¡C¯u©_©Ç¡I°lªº¤£·Ð¡B¾Ç
ªº¤£²Ö°Ú¡I«ç»ò³o»ò¦h¦~¤F³£¨S¤H§Ë²M·¡¡C" ¬O¼p®v¹ï°µµæªº°t¤è¤F¸Ñ¡A¥[¤W
¤M¤u©M¤õÔªº´x´¤¨Ï¤¤°êµæ´¦W¥|®ü¡A¦Ó¤£¬Oª÷¤M¡B»È¤Mªº«Â¤O©Î¯«ÂݨϵM "
¤Á°O¡I¤Á°O¡I
µL¤W¤ßªk²Ä¤G½g¡@
¡@¡@¡@¡@¡@¡@¡@" ¦p¦ó¦b¤ß¤¤«Ø¤@Ó¹q¸£ "
¡@¡@¦b¹q¸£³oÓ¥@¬ÉùØ¥´ºu¤Q¦h¦~¤F¡A±`±`³Q¤H°Ý¹D¡G¡u¦Ñ®v¡I¬°¤°»ò§A¹ï¹q
¸£ª±±o¨º»òºë²`¡A±qµwÅ骺Å޿誱¨ì CPU ªº³]p±q¨t²Îªº O/S¡BCompiler ·d
¨ì¹q°Êª±¨ãªºµ¼Ö¡Aµe±±±¨î¡C¤@¤U¤l¼g Editor ¤@¤U¤l¼g Fractal ªºµ{¦¡³£
¨º»ò¶¶¤â¡A¦¤W¼g²Õ¦X¡A¤U¤È¼g C++ ¡A±ß¤W¼g PROLOG ³£¤£·|§Ë¶Ã......¡C¡v
¡@¡@¨ä¹ê¡I§Ú¨Ã¤£¬O¹q¸£ªº¤Ñ¤~°ª¤â¡A¦Ó¬O Forth ªº¤Q¶µ¥þ¯à¡A¨Ï¤@Ó³o¼Ë¥
¤Zªº§Ú¡A¾Ö¦³¤F¤@¦¸¨º»ò«GÄRªº¤H¥Í®i²{¡CÁÙ°O±o¦b¤Q´X·³ªº®ÉÔ¡A»Å·R¼g¸Ö
¶ñµü¡A¼uµ^ÃЦ±¡A¹ï¹q¸£¬O¤@ÂI·§©À³£¨S¦³ªº¹q¸£¤åª¼¡Cª½¨ì¦³¤@¤Ñ¦b¹q¤lµó
¬Ý¨ì APPLE2 ¡A¤@¤U¤l³Q¨ºÓ¤p¾÷¾¹©Ò§l¤Þ¦í¡C(¨º®ÉÁÙ¤£À´¤°»ò¬O 8¦ì¤¸ªº
CPU)¡C¦ý¬O¤Q´X·³ªº«Ä¤l¡A¨ºùضR±o°_¼Æ¸U¤¸ªºªF¦è(¨º®É¤@¯ë¤½°Èû¤~ÁÈ´X¤d
¶ô¤ëÁ~)¡C©ó¬O¦Û¤vºCºCªº¦s¡A¦s¤@ÂI¿ú¶R¤@¶ôªÅªº¥D¾÷ªO¡C¦A¦s¤@ÂI¿ú¶R´XÁû
¤p IC ¡A¦A¦s¤@ÂI¿ú¶R¤@ÓÁä½L.....¶R¤@Ó¿Ã¥ú¹õ......¡C´N³o¼Ëªá¤F¤@¦~¦h
¡A¤~¶R¥þ¤F¹s¥ó¡Cè¶}©l¥Î»ÌÅK¾Z¹s¥ó¡A¤]¬O¨B¨BÁ}¨¯¡A¤@ÂI¤@ÂIºCºCªº¾Z¡A
¹J¨ì¤£À´ªº¡A´N¥h¹Ï®ÑÀ]ɹq¤l¾Ç©M¼Æ¦ì¹q¤l¾Çªº®Ñ¨Ó¬Ý¡C¤Sªá¤F¥b¦~¡A¤~¦b
¿Ã¥ú¹õ¬Ý¨ì OK ¡C¨º¤@¤Ñ¡A§Úú¤F¤@³õ¡C±q¤°»ò³£¤£À´¨ì¸Ë¥X¤@¥x¦Û¤vªº¹q¸£
¡A§Úªá¤Fªñ¨â¦~ªº¥ú³±©M¼õ¤F¤W¦ÊÓ©]¡C
¡@¡@¦Ó³o¦ü¥G¥u¬O¤@³õ´c¹Úªº¶}©l¡C¦]¬°³o¥u¬OµwÅ鳡¥÷¦Ó¤w¡I±µ¤U¨Ó¬O¾Ç³n
Åé¤F¡A¨S¿ú¶R³n¦¡ºÏºÐ¾÷(¤@¥x¤@¨â¸U)¡A¥u¦n§âªá¤F¤@©]¼g¦nªº BASIC¡A¥Î¾Ç
¥Í±¡¤H¥d¦¡¿ýµ¾÷¿ý¤U¨Ó¡A¥H«K¹j¤é°£¿ù(Debug)¡A¥b¦~¹L¥h¤F¡C¾Ç¨Ó¾Ç¥h³£·Ð
¤F¡A¬Ý¨Ó¬Ý¥h³£¬O¨º´X¥»®Ñ¡F¨S¦³¤°»ò·sÂAªº¤F¡A³o®É¦³¤H§i¶D§Ú¦b¾ã¼Æª©ªº
BASIC ROM ¤¤¦³¤@ºØ¥s²Õ¦X»y¨¥ªºªF¦è¡C·í¤Ñ¬½¤U¤ß¨Ó´«¤F¤@®M ROM ¡A¶}©l
" K " ²Õ¦X¡A¤~ª¾¹Dì¨Ó CPU ¤¤¦³¼È¦s¾¹¡B²Ö¥[¾¹.....¡C¤S¹L¤F¥b¦~¤~§â
APPLE2 ªººÊ·þµ{¦¡ "K" §¹¡C³o®É¤wªñ¤G¤Q·³¤F¡C¦b¦h¤Ö²`©]ªºWŪ¤¤¡A¤@¥»
¥»¸ê®Æµ²ºc¡Apºâ¾÷²Õ´¡AÅÞ¿è³]p¡A¶gÃä³]³Æ¤¶±¾Ç¡A§@·~¨t²Î¡B½s͵{¦¡
¡B¹q¸£¹Ï¾Ç¡B¨t²Îµ{¦¡¡Bµ{¦¡»y¨¥¡BºtÄÀªk¡B¤H¤u´¼¼z¡B¥¦æ³B²z¡B¤uµ{¼Æ¾Ç
¡BÂ÷´²¼Æ¾Ç¡B¾÷²v½×¡B¶°¦X½×¡B©Ý¾ë.....¦ñ§Ú¼õ¨ì¤Ñ©ú¡B¦b¾Ç®Õ¤¤¡BÂ÷¸s¹è©~
¡B¦b¦Ñ¥~ªº²´¤¤¡A¦ü¥G§Ú³oӦѤ¤¬O¨S¦³¶Â©]ªºÅª®Ñ°¡A¥Õ¬¡¤F¡A¤j¾Ç¤]¥Õ°á
¤F¡C
¡@¡@»¡¯uªº¡A¨º®É§Ú®ÑŪªº¤ÓÂø¶Ã¡I¨S¦³¦Û¤vªº«äºû¨t²Î¡I¥un±Ð±Â´£¤@¥»®Ñ
¡A§Ú´N "K"¤@®Ñ¥»¡A§Ë±o¤v«Ü²Ö«ÜºG¡I©Ò©¯ªº¬O¡I¥Ó½Ð¨ì¤F¬ã¨s©Òªº¼ú¾Çª÷¤§
«á«K¨ì¯Ã¬ùŪ¬ã¨s©Ò¥h¤F¡C¦ý¦Û¤vª¾¹D¡A°µ¾Ç°Ý©MŪ¦º®Ñ¬O¤£¦Pªº¡A§Ú«Ü®`©È
¡A©È«÷¤£¹L¦Ñ¥~·|¥¢¥h¼ú¾Çª÷¡C¤×¨ä¦bµ{¦¡§@·~³Q Dr.Suson ·í±¼¹¸H®É¡I§Ú
·Q¤j·§¤°»ò³£§¹¤F¡C¦on§Ú«¼g¤@¥÷µ{¦¡¡A§Ú°e¥h¤S³Q¼¹±¼¤F¡A§Ú¥u¦n¤S¼g¤F
¤@¥÷¡A¨Ó¨Ó¦^¦^ú¨ì²Ä¤»¥÷¤~³Q±µ¨ü¡F¦o¤§«á°Ý§Ú¬O§_¤F¸Ñ " ¦Û¤v¥i¥Hn¨D¦Û
¤v¡A¬°¤°»òÁÙ»Ýn§O¤H¨Ón¨D§A "¤§·N¡A§Ú²×©ó¤F¸Ñ¡A¦oªº¥Î¤ß¬O¦b¯¡Är¾Ç¥Í
Ì " ¦Û§Ún¨D¬O¨}¦n«~½èªº°ß¤@«OÃÒ "¡C
¦b×¶i¶¥pÛ®¾÷²Õ´®É¡ADr.Tanenboum °Ý§Ú¡A¹q¸£©M¤H¦³¦ó²§¦P¤§³B¡H§Ú
»¡¤F¤@¤j°ï¡A¥L«oÃø¥H±µ¨üªº·n·nÀY¡C¥s§Ú¦^¥h¦Û¤v·Q²M·¡¡C¥u´£¥Ü§Ú¹q¸£ªº
" ³nµwÅé " ¤@¦p¤Hªº " ÆF»P¦× "¡C
¡@¡@§Ú¦^¥h¤@ª½·Q" ÆF»P¦× "¡A¤~Å鮩¤F¤H»P¹q¸£ì¬O¤@Å骺¨â±¡C¤H¦³°O¾Ð
Åé¡A¦Ó¹q¸£¦³ ROM ©M RAM ¡F¤H¦³µ§°O¥»¦Ó¹q¸£¦³ºÏºÐ¾÷¡A¦b¤W½Ò®É¤H§Ûµ§°O
¡A´N¦ü¹q¸£¦sÀɤ@¼Ë¡A¤£©È§Ñ°O¡C¦Ò¸Õ«e½¬Ýµ§°O´N¦ü¹q¸£¶}ÀÉŪ¶i RAM ¤¤¤@
¼Ë¡A¥i¥H«ì´_°O¾Ðªº¤º®e¡C¤H¦³µ§¡A¹q¸£¦³¦Lªí¾÷¡A¤H¦³©¹¨Ó§»ö¡A¹q¸£¦³´¤
¤â¨ó©w¡F¤H¦³¹q¸Ü¡A¹q¸£¦³ºô¸ô¡F¤H¦³¤j¸£«äºû¡A¹q¸£¦³ CPU¹B§@¡C¤Hn¾Ç²ß
¥¿½Tªºª¾ÃѤ~¯à©ú¿ë¨Æ«D¡A¹q¸£»Ýn©ú´·ªº«ü¥O¤~¯à¸Ñ¨M°ÝÃD.....¡C¨ì¨º¤@¤Ñ
§Ú¤~¤F¸Ñ¡A¾Ç¹q¸£¤@ÂI³£¤£§bªO¤@ÂI³£¤£¯¥Í¡C¦]¬°¹q¸£¥u¬O±N¤Hªº" ÆF»P¦×
" ¼Æ¦ì¤Æ¤F¦Ó¤w¡C¥un¥Î¤ß±´¯Á¤HÃþ¦Û§Úªº " ÆF»P¦× "¡A¦ÛµM´N·|¤F¸Ñ¹q¸£ªº
" ³nµwÅé "¡C
¡@¡@¨Ò¦p¡G¤HÃþ¦³ªk«ß¨î«×¡A¹q¸£´N¦³§@·~¨t²Î¡A¤HÃþ¦³Â½Ä¶¡A¹q¸£¦³½s͵{
¦¡¡A¤HÃþ¥Ñ²ÓM²Õ¦¨¡A¹q¸£¦³Å޿褸¥ó¦U¥q¨ä¾¡C¤HÃþ¦³¨p¦³°]²£¡A¹q¸£¦³°Ï
°ìÅܼơC¤HÃþ¦³¥æ³q·F¹D¡A¹q¸£¦³¶×¬y±Æ¡C´X¥G¹q¸£¤W©Ò¦³ªº¨Æª«»PÆ[©À³£»P
¤HÃþªº¥@¬É¬Û¤¬©IÀ³¡C¨ä¹ê¬Ý²M·¡¡AºN³z¤F¡A´N¤£Ä±±oÁ}ÀßÃøÀ´¤F¡C¦b¬ã¨s©Ò
ªº±Ð±Â¤¤ Dr.Goldon-Stein ¬O³Ì¥s§Ú¾Ð©Àªº¤F¡A¥L¦b½Ò°ó¤¤¦Ñ¬O¥oµÛ¤@°¦·Ï¤æ
¡A¦b¤Wµ{¦¡»y¨¥®É¡A¥L§i¶D§Ú¡A¨C¤@Ãþ¹q¸£»y¨¥³£¬O¤@ºØ¤ßÆF«äºûªºªí¹F¤è¦¡¡C
¤£¦Pªº»y¨¥¦³¤£¦Pªº¼g§@·®æ¡A¦³¤£¦Pªº¬ü¾Ç¼Ð·Ç©M¤£¦Pªº±ø«ß³W½d¡C
Modula2¡GÄYÂÔ©ú½T¡BÀu¶®°Ê¤H¡B¦ü¶Q°ü¤H¤@¯ë¡C
LISP¡G²¼ä¬yºZ¡A¼h¼h¬ÛÃö¡C¹³¨¥¦æ¤@Pªº§g¤l¡C
APL¡GÅֲӰʤH¡A¬ÂÄg¥©§®©{¦p²^®ðªº¤p£«ÀY°Q¤H³ßÅw«oÃø¥H®»ºN¡C
BASIC¡G©Mµ½©ö³B¡A¼e¤j¤£©ë¤p¸`¡A¤@¦p¦n«Èªº§ø©h³¥î¡A²LÁÄ´r§Ö»´
ÃP¡A¦ý¤£¨¬¥H¦«t«³d¤j¥ô¡C
¡@¡@C¡GÆF¬¡½Ä°Ê¡A¦p¤d¨½¤§¾s¡AY¯à¾r±s«h¯«§L§Q¾¹¡A§_«h³¥°¨²æÅ·¡A¥D
¤H³Q§x¡A«D¦º§Y¶Ë¡C
FORTRAN¡G¥j¾ë·Å¼í¡A¶¯²`¶®°·¦Û¦³«L«È¤§¤j®a·½d.....¡C
¦p¦¹¼Æ¨Ò¡A¥i¥H±oª¾¿ï¾Ü¹q¸£»y¨¥¡A¤@¦p´M¨D±B°t¡An²`¤J¤F¸Ñ¹ï¤è¤§®a
®xI´º¡A¥Í¬¡²ß©Ê¤~¯à¤â¨ì¾à¨Ó¡A¨Æ¥b¥\«H¡A§ón©M¦Û¤vªºÓ©Ê³B±o¨Ó¡A¯àºI
ªø¸Éµu¤¬«H¤¬§U¡A¤~¯à¨Æ¨Æ¶¶¹E¡A§_«h¼Æ¤é¤@§n´X¤é¤@¾x¡A¤º¶Ã¯ÉÂZ¡A¥¼¯à§J
¼ÄP³Ó¡A¤w¦R¦å¨¤`¡C¥X®v¥¼±¶¨¥ý¦º¡A±`¨Ï^¶¯²\º¡ÃÌ¡B±¡¦ó¥H³ô¡A¤ß¦ó¥H
¥Ì¡C©Ò¥H¡A¤d¸U¤£¯à§ä¿ù¹ï¶H¡Aºâ·Ç¦¨±B¡F¾A¦X¥L¤Hªº¡A¤£¨£±o¾A¦X§A¡C¬y¦æ
ªºÁͶդ£¬O¤H¤H³£¯à¬ïµÛ±oÅé¦n¬Ý¡C³Ì«á½Í½Í Forth §a¡H
Forth ¦ü§Î¦Ó¤Wªº©v±Ð«H¥õ" ¥u¶Ç¤ßªk¡A¤£¥ß¤å¦r " ±o¦h±o¤Ö¡B¬O¦¨¬O±Ñ
¡F¤£°Ý¹L©¹®Ú·~¡A¥u¬ÝºÖ½t²`²L¡C¤@¦p¦Ñ¤l¤§¹D¡A·L§®¥È³q¡A²`Âã¼s»·¡A¤j¤è
µL¶¨¡A¤j¶HµL§Î¡C¥ç¦pÁI©vªkªù¡A²n¤£Ác¡A¦U¤HÅé¥Î¤£¤@¡C°ß¦³¤@¤ß¤@©À¤£
¶Ã¡A¤é©]°Ñ®©ºë¶i¤è¯àµnªù¤J«Ç¡A½m¦¨µL¤W¤ßªk¡A¨ä¤Æ¹ÒµL§ÎµL¶H¡A¸ªáºK¸
¬Ò¯à§J¼ÄP³Ó¡A½Í¯º¶¡¥Î§L¤d¨½¡A¦ó»Ý¤M¼C¤§²Ö¡CY¯à¥\¼w¶êº¡¡A¥XÃö¤§¤é¡A
¦A¦^ÅU Forth ¦Û¨¤§³¹ªk¤å¦r¤]ı±o¥ÖÅn¦Ó¤w¡C¾Ç Forth ¤@¦p¤ÑÂͦÊÅÜ¡A¦Y
®á²æ¥Ö¡AWµh¤¤¦¨ªø¡A°µÃµ¦Û¿£¦º«á«¥Í¡A¤~¯à¤Æ¦Ð°ª¸¡C©Ò¥H»Ýn¤@©Ù°@¸Û
¡A¤è¯à°í«H¤£ºÃ¡A§_«h¾Ç¤§ªì¶¯¤ß¸U¤V«H»}¥¹¥¹¡A¤@¦ý®À§é"¼ì¤£¦¨x¡A¥b¸ô°h
§L "¡C§ó»Ýn¤@ªÑ·M¤½²¾¤sªº¶Ì«l¡A¤è¯àºë¸Û©Ò¦Üª÷¥Û¬°¶}¡C§Ú¬Û«H¥ô¦ó¤@Ó
¤H¾÷¤@Å骺 Forth °ª¤â¡A³£´¿Åé¨ü¹L¨º¥÷·ö¶ÌI«á¤£¬°¤H©Òª¾ªº¨¯»Ä¡C
¡@¡@§Ú¦bè¾Ç Forth ®É¡A¤]¬O¤é¤é«è¡A©]©]·T¡Aª½¨ì¤@¦~«áµoı¦Û¤v¦b¼gµ{¦¡
®É¡A¤f¤¤¶¶¼L»¡¥Xªº´N¬Oµ{¦¡ªº¥y¤l¡A¤ß¤¤¾®·QµÛ¨âÓ°ïÅ|ªº¤W¤U°_¥ñ²@µL¥b
ÂI¨è·N¡A¬O¤U·NÃѪº¦ÛµM¤ÏÀ³¡C¨º¤@©]¡A§Ú·P¨ì¤@ªÑ±q¥¼¦³¹Lªº»´ÃP»P¦Û«H¡A
§Ú¯º¤F¡A¦]¬°§Úª¾¹D§Ú¦A¤]¤£¥Î¬°¹q¸£ªº¤u§@·P¨ìÀ£¤O©M®£ÄߤF¡C¦]¬°§Ú¤ß¤¤
¤w¦¨¤F¤@³¡ Forth ªº¹q¸£¡A§Úªº´c¹Ú²×©ó®ø¥¢¤F¡A¤£Ä±²ðº¸¡C
µL¤W¤ßªk²Ä¤T½g
µ{¦¡³]p¤§¹D
ª÷«° µù²¨¡G
¦¹½g¸`¿ý¦Û Geoffrey James ¦b 1986 ¦~ªºµÛ§@
The Tao of Programming ¦¹®Ñ¦³³\¦h¦a¤èªº¯«Ãý»P FORTH ¤Q¤À¬Û¦ü¡A
¦b¯É¶Ãªº¸ê°T¥@¬É¤¤ª`¤J¤F¤@ªÑ²M¬y¡C§@ªÌ¥H¦Ñ¤l¬°I´º¡A±Ô»¡µ{¦¡³]
p¤§¡u¹D¡v¡C¸Ó®ÑÁ¡Á¡ªº¶È¦³ 150¶¦ý¥y¥yÁI«ä¦©¤H¤ß©¶¡A¤Þ¤H¨B¤J¹ï
³Ð§@µ{¦¡ªº²`¬Ù¡C³o»ò¦h¦~¨Ó¡Aµ{¦¡³]p¨ì©³¬O¡u¤uµ{¡vÁÙ¬O¡uÃÀ³N¡v
¡A¦b¦¹¬Ý¬Ý¤j®vªº¨£¸Ñ¡A³º¬O¿@§ªº¤H¤å¦â±m¡C¬Û«H±zY¬O·U¸ê²`ªºµ{
¦¡³]p®v¡A·U¯àÅé·|¦¹¸`¤¤ªººëÅè¡C¤@¿s°ó¶ø¡CY¬Oªì¾Ç¡A©Î¾Ç¨s¡A«h
¥²µM¤£«H¥b¦r¡C FORTH ¬O¤@ºØ¨D¡u¹D¡vªº¹Lµ{¡CŪªÌ¦ó§«µê¤ßÆ[¤§¥þ¯«
Å鮩¡A¥²¦³©ÒÀò¡C¨C¸`¤§«áªºµù²¨¡A¥u¥Nªí§ÚÓ¤Hªº²L¨£¡A¨Ã«D¹ïì¤å
ªº²K¥[¡C
²Ä¤@³¡ ÀR±IµêµL½g
µ{¦¡û¤j®v(¥H¤U²ºÙ¤j®v)¦p¬O»¡¡G¡u¾Ç·|¤F±qµ{¦¡§ìÂΤl¤§«á¡A´N¥i¥H²¦·~
¤F¡C¡v
ª÷«° µù²¨¡G²¦·~¬O«ü´N¯à°÷¦b¥~±²V¤f¶º¦Y¤F¡C
1.1¸`
ÀR±IµêµL¤¤¦³¶ø¯µ¡A¤£ÀR¤£°Ê¡A¤D¬Oµ{¦¡¤§·½¡A§^µL¥H¦W¤§¡A¬GºÙ¤§¬°µ{¦¡³]
p¤§¹D¡CY¹D¦Ü¤j¡A«h§@·~¨t²Î¦Ü¤j¡FY§@·~¨t²Î¦Ü¤j¡A½s͵{¦¡¥çµM¡FY½s
͵{¦¡¦Ü¤j¡AÀ³¥Îµ{¦¡¥ç´_¦p¬O¡C¬O¬G¨Ï¥Î¤H¤j®®¡A¥@¦³©M¿Ó¦s²j¡C
1.2¸`
µ{¦¡³]p¤§¹DµL»·¥±©¡¡AÀH±áÄf·L·¦Óªð¡C
¹D¥Í¾÷¾¹»y¨¥¡A¾÷¾¹»y¨¥¥Í²Õ͵{¦¡¡C
²Õ͵{¦¡¥Í½s͵{¦¡¡A©ó¬O¸U¾l»y¨¥¦s²j¡C
¦U»y¨¥¦³¨ä¥Øªº¡A§¡ªí¹F³nÅ餧³±¶§¡F¨ä¦b¹D¤¤¥ç¦U±o¨ä©Ò¡C
¦ýY¯àÁ×§K¡A´N¤£n¥Î COBOL ¼gµ{¦¡¡C
ª÷«° µù²¨¡G³nÅ餧³±¶§¡A¤D«ü¸Ñ¨M°ÝÃD¤§¤è¦¡´N¬Oºtºâªk(Algorithm)
1.3¸`
¤Óªì¦³¹D¡A¹D¥Í®ÉªÅ¡A¬G®ÉªÅ¤Dµ{¦¡³]p¤§³±¶§¡C
µ{¦¡û¤£®©¹D«h®ÉªÅ¥Ã¤£¼Å¨Ï¥Î¡A®©¹DªÌ«í¦³¥R¤À®ÉªÅ§¹¦¨¥Ø¼Ð¡C
ª÷«° µù²¨¡G
®ÉªÅªÌ¡A¡u®É¡v«ü CPU ªº¯à¤O»P³t«×¡A¡uªÅ¡v«ü°O¾ÐÅ餧³W¹º»P¹B
¥Î¡C
1.4¸`
¤W´¼µ{¦¡û»D¹D¦Ó¦æ¤§¡A¤¤´¼µ{¦¡û»D¹D¦Ó¨D¤§¡A¤U·Mµ{¦¡û»D¹D¦Ó¯º¤§¡F
YµL¯ºÁn«hµL¹D¨o¡C
¦Ü°ª¤§ÁnÃø¥HÅ¥»D¡F
«e¶i´N¬O«á°h¤§¸ô¡F¤j´¼Á`¬O±ß¦¨¡F¨C¤@Ó§¹¬üªºµ{¦¡¤´µM¦³ BUG¡C
¹D¦b©Ò¦³ª¾ÃѤ§¥~¡C
ª÷«° µù²¨¡Gª¾ÃÑ«ü¸ê°T¬ì¾Ç¡C
²Ä¤G³¡ ¥j¤§¤j®v½g
¤j®v¦p¬O»¡¡G¡u¤T¤é¤£¼gµ{¦¡¥Í©RµL½ì¡C¡v
2.1¸`
¥jµ{¦¡û¯«¯µ¦Ó²`¶ø¡AµL¥H«×¶q¨ä«äºû¡A¶È¯à´yz¨äªí¶H¡C
¹³ª°¯W¯A¤ô¯ë¦a¤p¤ß¡F¹³¾Ô³õ¦Ñ§L¯ë¦aĵı¡F¹³¥¼¸gµZ¿iªº¤ìÀY¯ë¦a©å¼³¡F¹³
¬}¤¤²`¼æ¦a¤£³z©ú¡C
½Ö¯à«ü¥X¥L¥ô¤ßÆF¤¤ªº¯µ±K¡S
µª®×¥þ¦b¹D¤¤¡C
ª÷«° µù²¨¡G
¦b¸gÅ礤§Ú̲שó¤F¸Ñµ{¦¡³]p®vªº¥»¯à¡A¤j¦h¼Æ¬O¤Ñ¥Íªº¦Ó«ÜÃø¥H
±Ð¨|¨Ó°V½m¦¨¤~¡C
2.2¸`
¤j®v Turing ´¿¸g¹Ú¨ì¥L¬O¤@³¡¹q¸£¡A¿ô«á¹D¡G¡u¤£ª¾¬O§Ú Turing §@¹ÚÅܦ¨
¾÷¾¹¡AÁÙ¬O¤@³¡¾÷¾¹§@¹ÚÅܦ¨§Ú Turing¡C¡v
¤@®a¤j¹q¸£¤½¥qªºµ{¦¡û°Ñ¥[³nÅé·|ij«á¡A¦V¥Lªº¸g²z³ø§i»¡¡G¡u§Aª¾¹D¨ä¥¦
¹q¸£¤½¥q¦³¨Ç¤°»òµ{¦¡û¶Ü¡S¡v¥L̤£×Ãä´T¡AÀY¾vªø¦ÓÃ廽¡A¦çªA¬JÂÂ¥B½K
¡A¥L̯}Ãa¤F®ðª^¡A¦Ó¥B¦b§Ú²³ø®É¦Ñ¬O»s³y¾¸µ¡C¡v
¸g²z»¡¡G¡u§Ú®Ú¥»´N¤£À³¸Ó¬£§A°Ñ¥[·|ij¡A³o¨Çµ{¦¡³]p®v¶WµMª«¥~¡A¥Ļâ
¥Í©R¬Ý¦¨µL½]¡B·N¥~ªºµ²¦X¡C¥LÌ©¹¨Ó¦ÓµLÿÆX¡A¬°¥L̪ºµ{¦¡¦Ó¬¡¡A¬°¤°»ò
¥L̤@©wn¨üªÀ·|¿n²ßªº¬ù§ô¡S
¥L̬¡¦b¹D¤¤¡C
2.3¸`
¥Í¤â°Ý¤j®v¡G¡u¦³¤@Óµ{¦¡û±q¤£³]p¡B´ú¸Õµ{¦¡¡B¼g§@¤åÄm¡A¦ý¤F¸Ñ¥Lªº¤H
³£»{¬°¥L¬O¥@¶¡³Ì¦nªºµ{¦¡û¡A¬°¤°»ò¡S¡v
¤j®v¤ê¡G¡u³oÓµ{¦¡û¤w¥R¤À®©¹D¡A¥L¶W¶V¤F³]pªº»Ýn¡F¨t²Î«±¤F¤£·|¥Í®ð
¡A¦ÓµL±ø¥ó±µ¨ü³oÓ¥@¬É¡C¥L¶W¶V¤F¤åÄmªº»Ýn¡A¥L¤£¦Ap¸û¬O§_¦³¤H¬Ý¥Lªº
µ{¦¡¡C¥L¤]¶W¶V¤F´ú¸Õªº»Ýn¡A¥Lªº¨C¤@Óµ{¦¡³£¶êº¡µL¯Ê¡B²M¹ý¡BÀu¶®¡B¥Ø
ªº¦Û©ú¡C
¯uªº¡A¥L¤w¸g®©¹D¡Aµn°ó¤J«Ç¡C¡v
²Ä¤T³¡ ³]p½g
¤j®v¦p¬O»¡¡G¡u¨ì´ú¸Õµ{¦¡®É¦A¦^ÀY×§ï³]p´N¤Ó¿ð¤F¡C¡v
ª÷«° µù²¨¡G
¨S¦³³W¹º¹Lªºµ{¦¡´N¦ü¦MÀIªº¹H³¹«Ø¿v¤@¼Ë¡AÀH®É·|Ë¡B·|¶ò¡B·|
«±¡C
3.1¸`
´¿¸g¦³¤H¦b°ÑÆ[¹q¸£®i¨C¤Ñ¶iªù®É³£¦Vĵ½Ã»¡¡G¡u§Ú¬OÓ§®¸é¡A°½ªF¦èªº§Þ¥©
¤w¿²¤Æ¹Ò¡A¥ý§i¶D§A¡A§Úµ´¤£·|©ñ¹L³o¦¸®iÄý¡C¡v
³o¬q¸Ü¨ë¿E¨ìĵ½Ã¡A¦]¬°®iÄý³õ¦³¦n´X¦Ê¸U¤¸»ùȪº»ö¾¹¡A©Ò¥H¦Ñ¬O¨nµÛ¥L¡A
¤£¹L«o¬Ý¨ì³oÓ¤H¤@ÓÅu¦ì±µ¤@ÓÅu¦ì¬Ý¡AóµÛ¤p¦±¦Ó¤w¡C
³oÓ¤H¥Xªùªº®ÉÔ¡Aĵ½Ã§â¥L±a¨ì¤@Ãä·j¨¡A¦ý«o§ä¤£¨ì¤°»ò¡C
²Ä¤G¤Ñ³oÓ¤H¤S¨Ó¤F¡A¦Ó¥B±Ð°Vĵ½Ã»¡¡G¡u¬Q¤Ñ§Ú¦¬Ã¬¤£¿ù¡A¤£¹L¤µ¤Ñ·|§ó¨Î
¡C¡v©Ò¥Hĵ½Ã´N¤S§ó¥[ª`·N¥L¤F¡A¦ý¬O¤´µM¨S¦³µ²ªG¡C
³Ì«á¤@¤Ñĵ½Ã²×©ó§Ô¤£¦í¦n©_¤ß¡A°Ý¨ºÓ¤H¡G¡u¸é¤j®v¡A§Úµ¹±z§Ë±o¹ì¹Ãø¦w
¡A±z¬O§_¥H±Ð§Ú¡A¨s³º°½¤F¨Ç¤°»ò¡S¡v
³oÓ¤H¯º¯º¡A»¡¡G¡u§Ú°½ªº¬O·§©À¡C¡v
ª÷«° µù²¨¡G¥ý¦³·§©À(¤]´N¬OÆF·P)¤~¦³³Ð§@¡C
3.2¸`
±q«e¦³¤@¦ì¤j®v±M¼g¨S¦³µ²ºc¤Æªºµ{¦¡¡A¤@ӥͤâ¼Ò¥é¥L¡A¤]¶}©l¼g¨S¦³µ²ºc
¤Æªºµ{¦¡¡C·í³o¦ì¥Í¤ân¨D¤j®vµû¶q¶i®i®É¡A¤j®v«o§åµû¥L¼g§@¨S¦³µ²ºc¤Æªº
µ{¦¡¡A¤j®v»¡¡G¡u¹ï¤j®v¾A¥Îªº¤£¤@©w¾A¦X¥Í¤â¡A¦b¯à°÷¶W¶Vµ²ºc¤Æ¤§«e¡A¥²
¶·¥ý®©¹D¡C¡v
ª÷«° µù²¨¡G
¨Ï¥Î GOTO ¬O¤@ºØ¨â·¥¤Æªº²{¶H¡A°ª¤â¥Î¤§¥i¥H´£ª@µ{¦¡ªº°õ¦æ®Ä²v
¡C§C¤â¥Î¤§¡A«hµ{¦¡ªºµ²ºc¯}Ãa¡AÃø¥HºûÅ@¡C Knuth »P Diiestia ´¿
¬°¤F GOTO ¤j¥´¤@³õµ§¾Ô¡A¤]¬O¥D¦]¡C
3.3¸`
¬Yªø©x°Ýµ{¦¡û¡G¡u³]p·|p¨t²Î»P§@·~¨t²Î¡A¨º¤@Ó¤ñ¸û²³æ¡S¡v
µ{¦¡û»¡¡G¡u§@·~¨t²Î¡C¡v
ªø©xµo¥X¤£¬Û«HªºÅå©I! ¡u«ÜÅãµM¦a¡A·|p¨t²Î¤£¦p§@·~¨t²Î½ÆÂø¡v¡C
¡@¥L»¡¡G¡u¤£! ¡vµ{¦¡û¦^µª¡A¡u¦b³]p·|p¨t²Î®É¡Aµ{¦¡û¬O¦UºØ¦³¤£¦P¥D·N
ªº¤H¤§¶¡ªº¾ô¼Ù¡A³o¨Ç¥D·N¤£¥~¥G¡G¨t²În¦p¦ó§@·~¡S³øªí«¬¦¡¦p¦ó¡Sn¦p¦ó
ªï¦Xµ|ªk¡S------µ¥µ¥¡C¤Ï¹L¨Ó¡A§@·~¨t²Î«o¤£¨ü¥~¬Éªí¶Hªº¨î¡F¦b³]p§@
·~¨t²Î¡Aµ{¦¡û´M¨D¤H»P¾÷¾¹¤§¶¡³Ì¯Âªº©M¿Ó¡A³o´N¬O¬°¤°»ò§@·~¨t®e©ö³]p
¡C¡v
ªø©xÂIÀY·L¯ººÙ¬O¡G¡u¦ý¬O¡A¨º¤@Ó®e©ö°»¿ù¡S¡v
µ{¦¡û¨S¦³¦^µª¡C
ª÷«° µù²¨¡G
¦³¤H¬°¦]¯Àªºµ{¦¡³ÌÃø¤U¤â¡A¤]³ÌÃøµû¦ô¦nÃa¡A¤H¤ñ¾÷¾¹n½ÆÂøªº¦h
¡An½Áy¤]®e©öªº¦h¡C
3.4¸`
¸g²z¥h¨£¤j®v(µ{¦¡û)¡A¨Ã¥B§i¶D¥L¤@®M·sÀ³¥Îµ{¦¡¤å¥óªº»Ý¨D³W®æ¡A°Ý¹D¡G
¡u¦pªG§Úµ¹§A¤Óµ{¦¡û¡An¦h¤[¤~¯à³]p¦n³oÓ¨t²Î? ¡v
¤j®v«Ü§Ö¦^µª¡G¡u¤@¦~¡C¡v
¡u¦ý¬O§ÚÌ»Ýn°¨¤W¥Î³oÓ¨t²Î! ¦pªG§Úµ¹§A¤QÓµ{¦¡û¡A¨ºn¦h¤[? ¡v¡A¸g
²z»¡¡C
¤j®v½K¬Ü»¡¡G¡u³on¨â¦~¡C¡v
¡u¦pªG§Úµ¹§A¤@¦ÊÓµ{¦¡û©O¡S¡v
¤j®vÁqÁqªÓ¡G¡u³oÓ¨t²Î®Ú¥»°µ¤£¥X¨Ó¤F¡C¡v
ª÷«° µù²¨¡G
¤H·U¦h«h¤H»P¤H¤§¶¡ªº·¾³q«K·U½ÆÂø¡A¦Ó»Ýn¶}·|§´¨óªº¦a¤è¤]·U¦h
¡A³o¨Ç³£·|¯}Ãa¨t²ÎªºÂ²©ú©Ê¡A§g¤£¨£ Ada »P PL/1 ªºÅKÃÒ¦p¤s¡C
²Ä¥|³¡ ¼g§@½g
¤j®v¦p¬O»¡¡G¡u¼g§@¨}¦nªºµ{¦¡¥»¨¦Û¦¨¤Ñ°ó¡A¼g±o®tªºµ{¦¡¦Û¨´N¬O¦aº»¡C
¡v
4.1¸`
µ{¦¡n»´ÆF¡A°Æµ{¦¡¹³¤@¦ê¬Ã¯]¡Cµ{¦¡ªººë¯«»P·N¹ÏÀ³©l²×¦p¤@¡A¤£¦h¤£¤Ö¡F
¨S¦³¦h¾lªº°j°é¡A¤]¨S¦³ÃB¥~ªºÅܼơA¬J¤£¯Ê¤Öµ²ºc¡A¤]¤£¹L¥÷²Â«¡C
µ{¦¡À³¸Ó°lÀH¡u³Ì§CÅå³Y©w«ß¡v¡A³o¬O¤°»ò¡S²³æ±o«Ü¡A¨Ï¥Î¤H¹ïµ{¦¡ªº¤ÏÀ³
¬OÅå³Yªº¾÷·|n·U§C·U¦n¡C
µ{¦¡¤£ºÞ¦A½ÆÂø¡AÀ³¸Ó¥H¤@Ó¾ãÅé¨Ó§@¥Î¡F¥¦À³¸Ó¥Î¤º³¡ÅÞ¿è¡A¦Ó¤£¬O¥~¦bªº
ªí¶H¨Ó«ü¾É§@·~¡C
¦pªGµ{¦¡¤£º¡¨¬³o¨Çn¨D¡A´N·|Âø¶Ã¦Ó©ö¥Í²V²c¡A°ß¤@ªº¸É±Ï´N¬O«·s¼g¹L¡C
ª÷«° µù²¨¡G¸É¤Bº¡§Gªºµ{¦¡¤£·|¦n¬Ý¡A§ó¤£·|@¥Î¡C
4.2¸`
¥Í¤â°Ý¤j®v¡G¡u§Ú¦³¤@Óµ{¦¡¡A¦³®ÉÔ°µ±o«Ü¦n¡A¦³®ÉÔ«o¤£¦æ¡F§Ú¤@ª½¿í¦æ
µ{¦¡³]pªº³W«ß¡A¦ý¬O«o§â§Ú§Ë±o«Ü§xÂZ¡A¨ä²z¦w¦b¡S¡v
¤j®vµª¤ê¡G¡u¦]¬°¤£®©¹D¤~·|¦p¦¹¡A¥u¦³²Â³J¤~·|´Á±æ¥Lªº¦P¾«¦³¦X²zªº¦æ¬°
¡A¦Ó§A«o¹ï¤HÃþ¥Í²£ªº¾÷¾¹¦³©Ò´Á±æ !? pºâ¾÷¥u¼ÒÀÀ¤F¨M©w½×¡A¥u¦³¹D¤~¤Q
¥þ¤Q¬ü¡C
µ{¦¡³]pªº·Ç«hÁÙ¬O¼È®É©Êªº¡A¥u¦³¹D¤~·|¶i¤J¥Ã«í¡C©Ò¥H§A¦b¶}¬«e¥²¶·«ä
¯Á¹D¡C¡v
¡u¦ý§Ún¦p¦ó¤~¯àª¾¹D¤w¸g¶}¬¤F©O¡S¡v¥Í¤â°Ý¡C
¤j®v¦^µª¡G¡u±q¦¹¤§«á¡A§Aªºµ{¦¡³£¯à°÷¥¿½T°õ¦æ¡C¡v
ª÷«° µù²¨¡G¤£¯à¥¿±`§@·~ªºµ{¦¡¡A©w¬O³B³B¨Ò¥~¡A¯Ê¤Ö¤@Pªº³q«h¡C
4.3¸`
¤j®v¹ï§Ì¤l»¡¡G¡u¤£½×³nÅ餧¬°¤j©Î¬°¤p¡A¹D¦b©Ò¦³³nÅ餤¡C¡v
¡u®à¤W«¬pºâ¾÷¦³¹D¶Ü? ¡v§Ì¤l°Ý¡C
¡u¦³! ¡v¤j®vµª¡C
¡u¹q°Êª±¨ãµ{¦¡¤¤¦³¹D¶Ü? ¡v§Ì¤lÄ~Äò°Ý¡C
¡u¤]¦³! ¡v¤j®v»¡¡C
¡u¨º»òÓ¤H¹q¸£ªº DOS ¤¤¦³¹D¶Ü? ¡v
¤j®v«y¤@¤U¡A»´»´®¿°Ê¤F¦ì¸m¡A¡u¤U½Ò¡v¡A¥L»¡¡C
ª÷«° µù²¨¡G
DOS ¬O¦³¦Wªº«æ´N³¹ªº²£ª«¡A¨äÂΤ§¦h¥Ñ 1.0 ¦Ü 6.0 ºâ¤£²M¤F¡C
4.4¸`
¬Ó¤Ó¤lªºµ{¦¡û¥¿¦b¼g§@³nÅé¡A«ü¦y¦bÁä½L¤W¸»Rµ{¦¡¶¶ºZµL»~¦a½sͧ¹¦¨¡A
°õ¦æ°_¨Ó¹³°}·L·»´©Ø¦Ó§¹¬ü¦aµ²§ô¡C
¡u¤F¤£°_! ¡v¡A¤Ó¤l¹Ä¤ê¡A¡u§Aªº§Þ¥©µL¾Ó¥iÀ»¡C¡v
¡u§Þ¥©? ¡vµ{¦¡û±q²×ºÝ¾÷¤WÂà¹LÀY»¡¡A¡u§Ú©Ò±qªº¬O¹D¡A¹D¶W¶V¥ô¦ó§Þ¥©!
§Ú¶}©l¾Ç¼gµ{¦¡®É¡A¦b§Ú²´·ú©Ò¨£¬O²V¦¨¤@¤ùªºµ{¦¡¡F¤T¦~«á¡A¤£¦A¨£¨ì³o¤@
¤j¤ùµ{¦¡¤F¡A§Ú¾Ç·|¨Ï¥Î°Æµ{¦¡¡F²{¦b²´«e¤@¤ùªÅÆF¡A¤°»ò³£¨S¦³¤F¡A©Ò¦³ªF
¦è³£¶i¤JµL«¬¦¡ªº¤@¤ùÀR±I¡F©Ò¦³µøÄ±³£¤£¥²§@¥Î¡C¡v
¡u§Úªººë¯«¥i¨Ìª½Ä±¦Ó¤£¥²¨Ì¥ô¦óp¹º¦æ¨Æ¡A´«¨¥¤§¡A§Úªºµ{¦¡¦Û¤v¼g§@¦Û¤v
¡C·íµM¡A¦³®É·|¦³§xÃøªº°ÝÃD¡F§Ú¬ÝµÛ¥¦Ì¨ì¨Ó¡A§Ú°§C¦Û¤vªº³t«×¡AÀRÀR¦a
¬ÝµÛ§ï¤@¦Cµ{¦¡¤§«á§xÃø´N·|·Ï®ø¶³´²¡F§Ú¦A«·sÀRÀR§¤µÛªY½à¤u§@ªºÅw¼Ö¡C
§Ú³¬¤WÂù²´¤@·|¨à¡AµM«áÃö¾÷¡C¡v
¬Ó¤Ó¤l»¡¡G¡u§Úªº©Ò¦³¦¡û³£¨º»òÁo©úºÍ´¼¶Ü? ¡v
ª÷«° µù²¨¡G
¾Ç¹q¸£¤]¦n¡A¾Ç»y¨¥¤]¦n¡A³£¥u¬O¤â¬q¦Ó«D¥Øªº¡C³Ì«nªº¬O§â¦Û¤w
°V½m¦¨¤@Ó§¹¾ãªºÅÞ¿è«ä¦Ò°Êª«¡C¶i¦Ó¦¨¬°¤H¾÷¦X¤@ªº¹q¸£°ª¤â¡CY
¤ß¤¤µLÂI¾¥¡A¸£¤¤¥þ¼ß½k¡A«h¥ô¾Ì±z§V¤O¤@¥Í¤@¥@¡A¤´µLªk¶i¤J¡uÅÞ
¿è¡vªº¥@¬É¡A¦]¡u¹D¡vªº²Ä¤@¶¥¬q´N¬O¡uÅÞ¿è¡v¹À!
²Ä¤³¡ ºûÅ@
¤j®v¦p¬O»¡¡G¡uÁöµMµ{¦¡¥u¦³¤T¦C¡A¦ýÁ`¦³¤@¤Ñ»ÝnºûÅ@¡C¡v
5.1¸`
±`¥Îªºªù¤£¥²¤Wªo¡C
«æ¬y¤£·|²J¶ë¡C
Ánµ»P«ä·Q¤£¯à¦b¯uªÅ¤¤¶Ç»¼¡C
¤£¥Îªº³nÅé·|¥ÍùסC
³o´N¬O¦Ü¤jªº¶ø¯µ¡C
ª÷«° µù²¨¡G
µ{¦¡³]p®vªº¦å²G¤¤¤Ñ¥ÍµÛ°l¨D§¹¬üªº¥»½è¡C¨C¸g¹L¤@¬q®É¶¡¡A´N·|
¹ïì¨Óªº§@«~²£¥Í·sªººc·Q¡A¦Ó²£¥Í¤F§ó§ïªº©ÀÀY»P°Ê¤âªº¼¤±æ¡C
5.2¸`
¸g²z°Ýµ{¦¡û¨s³ºn¦h¤[¤~¯à§â¤â¤Wªºµ{¦¡¼g§¹¡C¡u©ú¤Ñ¡v¡Aµ{¦¡û«Ü§Öªº¦^
榭C
¸g²z»¡¡G¡u§Ú·Q§A¤£¤Ó½ñ¹ê¡F¯uªºn¦h¤[? ¡v
µ{¦¡û·Q¤@·|¨à¡G¡u§Ú§Æ±æ¦bµ{¦¡¤¤¥[¤W¤@¨ÇªF¦è¡A³o¦Ü¤Ön¨â¶g¡C¡vµ{¦¡û
²×©ó»¡¡C
¡u®É¶¡ÁÙ¬Oªø¤F¤@¨Ç¡v¡A¸g²z°í«ù»¡¡G¡u¦pªG§A¯à²³æ¦a§i¶D§Ú¤°»ò®É¯à¼g§¹
§Ú¤~·|º¡·N¡v¡C
µ{¦¡û¦P·N³o¤@ÂI¡C
´X¦~«á¸g²z°h¥ð¤F¡A¦bÅw°eÀ\·|¤Wµo²{¨ºÓµ{¦¡û¥ñ¦b²×ºÝ¾÷¤WºÎµÛ¤F¡A¦]¬°
¥L¼gµ{¦¡¼g¤F¾ã©]¡C
5.3¸`
¤@ӥͤâ³Q¤À¬£¥h¼g¤@Ó³æ¯Âªº°]°È³nÅé¡C
³oӥͤâ¨g¼ö¦a°µ¤F´X¤Ñ¡A¦ý¬O·í¤j®v¬Ý¥Lªº¦¨«~®É¡A«oµo²{³oÓµ{¦¡¤¤¥]§t
¤@Ó¿Ã¥ú¹õ½s×µ{¦¡¡B¤@²Õ¤@¯ë©ÊªºÃ¸¹Ïµ{¦¡¡B¤@Ó¤H¤u´¼¼z¬É±¡A¦ý«o¨S¦³
¤°»ò»P°]°È¤è±¦³Ãö¡C
¤j®v´N°Ý¥L¡A³oӥͤâ«oÅܱo«Ü¿E°Ê¡G¡u¤£n¨º»ò¨S¦³@¤ß¡v¡A¥L»¡¡G¡u§Ú³Ì
²×·|§â°]°È³¡¥÷¥[¤W¥h¡C¡v
5.4¸`
¦n¹A¤Ò·|©¿µø¥LºØªº½\¤l¶Ü?
¦n¦Ñ®v·|©¿²¤¥L³Ì®tªº¾Ç¥Í¶Ü?
¦n¤÷¿Ë·|®e³\¥Lªº«Ä¤l®Á¾j¶Ü?
¦nµ{¦¡û·|©Úµ´ºûÅ@¦Û¤vªºµ{¦¡¶Ü?
ª÷«° µù²¨¡G
¤@½g¨S¦³¥DÃDªº¤å³¹¼gªº¦A¬ü¦n¨º¥u¬OÀJ¬ä¤å¦r¡A¦ý¤´¬O¼o¸Ü³s½g¡A
¤@Ó¦nªºµ{¦¡Y¨S¦³nÂI¯Ê¥F¡uì³Ð¤O¡v¡A¤]¬O®{³ÒµL¥\¡C
²Ä¤»³¡
¤j®v¦p¬O»¡¡G¡uµ{¦¡ûn¦h¡A¸g²zn¤Ö¡A¥Í²£¤O´N·|¼W¥[¡C¡v
6.1¸`
¸g²z¦³¶}¤£§¹ªº·|ªº¸Ü¡Aµ{¦¡û´N·|¼g¹qª±¡F¥Dp³¡ªù·Q¨ì§Q¼í¡Aµo®i¸g¶O´N
·|³Q§R´î¡F°ª¯Å¬ì¾Ç®a½Í¨ìÂÅÂÅ«C¤Ñ¡A¨º»ò«C¤Ñ¤@©w·|¦³¯B¶³¸¹L¡C
·íµM¡A³o¤£¬Oµ{¦¡³]p¤§¹D¡C
·í¸g²z³\¤U©Ó¿Õ¡Aµ{¦¡û´N¤£²z·|¹qª±¡F·í¥Dp³¡ªù¦³ªøµ{³W¹º¡A´N·|¦^´_©M
¿Ó»P¯´§Ç¡F·í°ª¯Å¬ì¾Ç®a³B²z¤â¤Wªº°ÝÃD¡A°ÝÃD«Ü§Ö´N·|¸Ñ¨M¡C
³o¤~¬O¬Oµ{¦¡³]p¤§¹D¡C
6.2¸`
¬°¤°»òµ{¦¡û¨S¦³¥Í²£¤O? ¦]¬°¥L̪º®É¶¡³£ªá¦b¶}·|¤WÀY¡C
¬°¤°»òµ{¦¡ûÃø¥H¾r±s? ¦]¬°ºÞ²z¶¥¼h¤z¹w¤Ó¦h¡C
¬°¤°»òµ{¦¡û¤@Ó±µ¤@ÓÃã¾? ¦]¬°¥L̺ë¤O¯Ó¥ú¤F¡C
¦b¤£¨}ºÞ²z¤U¤u§@¡Aµ{¦¡û¤£·|ı±o¥Lªº¤u§@¦³»ùÈ¡C
ª÷«° µù²¨¡G
µ{¦¡³]p®vªº¤u§@¬O¡u³Ð³y¡v¤£¬O¡u»s³y¡v¡C¦Ó¡u³Ð³y¡v¬OÃÀ³Nªº¥»
½è¡C
6.3¸`
¬YÓ¸g²z§Ö³Qª£¾{³½¤F¡A¦ý¬O¥L©³¤Uªº¤@Óµ{¦¡û¼g¦¨¤F¤@Ó¥s¦n¤S¥s®yªºµ{
¦¡¡F·íµM¡A³o¦ì¸g²z¦]¦Ó«O¦í¤F¶º¸J¡C
¸g²z¥´ºâµ¹³o¦ìµ{¦¡û¤@ÂI¼úÀy¡A¦ý¥L©Úµ´±µ¨ü¡A¨Ã¥B»¡¡G¡u¦]¬°§Úı±o³o¬O
Ó¦³½ìªº·§©À¡A¤~·|¼g³oÓµ{¦¡¡A©Ò¥H§Ú¤£§Æ±æ¦³¼úÀy¡C¡v
¸g²zÅ¥¤F¤§«á»¡¡G¡u³oÓµ{¦¡ûÁöµM¾¦ì¤£°ª¡A¦ý«o¥R¤À¤F¸Ñ°µ¬°¤@Ó¾ûªº
³d¥ô¡AÅý§Ú̧â¥L¤É¦¨±R°ªªººÞ²zÅU°Ý§a! ¡v
¦b§i¶Dµ{¦¡û®É¡A¥L¦A«×©Úµ´¡A»¡¡G¡u§Ú¤§¦s¦b¬O¦]¬°¥i¥H¼gµ{¦¡¡A¦pªG¤É¤F
§Ú¡A¨º°£¤F®ö¶O¨C¤@Ó¤Hªº®É¶¡¥~¦Ó¦¨¤£¤F¨Æ¡C§Ú¥i¨«¤F¶Ü¡S§ÚÁÙ±o¼gµ{¦¡¡C
¡v
ª÷«° µù²¨¡G
¦b¥xÆW³oÓªÀ·|¤¤¦³Ó©Ç²{¶H¡A¤H¤H·Q·í¸g²z¡AÁ`¸g²z¡C¦n¦ü°µµ{¦¡
³]p®v¨S¤°»ò¥X®§¡A§O§Ñ¤F¡A¦b¤@¦Ê¦~¤¤¥@¤W¥i¥H²£¥Í³\¦hÓÁ`²Î¡A
¦ý¤£¨£±o¯à¥X¤@Ó¹F¤å¦è°Ú¡I
6.4¸`
¸g²z§i¶Dµ{¦¡ûÌ»¡¡G¡u¤U±¬O§A̪º¤u§@®É¶¡¡F¦¤W¤EÂIÄÁ¨Ó¤W¯Z¡A¤U¤È¤
ÂIÄÁ¤U¯Z¡v¡C©Ò¦³µ{¦¡û³£«Ü¥Í®ð¡A¦³´XÓ°¨¤WÂ÷¾¡C
©ó¬O¸g²z»¡¡G¡u¦n§a! ¡v³o¼Ë¦n¤F¡A¥un¯à°÷¦p´Á§¹¤u¡A¤u§@®É¶¡¥Ñ§A̦۩w
¡v¡Cµ{¦¡û²{¦bº¡·N¤F¡A¨C¤Ñ¤¤¤È¶}©l¤u§@¡Aª½¨ì²Ä¤G¤Ñ¦¤W¡C
ª÷«° µù²¨¡G
³Ð³y©Êªº¤u§@»ÝnÆF·P¡A©Ò¥H¨S¦³ÆF·Pªº®É¶¡¡A¤£©y¤u§@¡A¥u©yºÎı
¡C
²Ä¤C³¡ ¤½¥q´¼¼z
¤j®v¦p¬O»¡¡G¡u§A¥i¥H¹ï¥DºÞ¥Ü½d¤@Óµ{¦¡¡A¦ýµLªkÅý¥L³q¾å¹q¸£¡C¡v
ª÷«° µù²¨¡G¶Rµeªº¤H¤£¤@©wÀ´µe¡A§ó¤£¥Î½Íµeµe¤F¡C
7.1¸`
¥Í¤â°Ý¤j®v¡G¡u»»»·ªF¤è¦³¤@Ó¥s°µ"¤½¥qÁ`³¡"ªº°¶¤j¾ðª¬µ²ºc¡A¤W±º¡º¡¦a
¼Ð¤W¤F¨Ç°ÆÁ`µô¡B·|pªøµ¥µ¥ªº¹Ï®×¡C¥¦µo¥X¤j¶qªº³Æ§Ñ¿ý¡A¨C±i¤W±³£¼g¤F
¡u¦¬¤å! ¡v¡B¡uµo¤å! ¡v¡A¨S¦³¤Hª¾¹D³o¬O¤°»ò·N¸q¡C¨C¦~³£·|§â·sªº¦W¦r¥[
¨ì·sªº¤ÀªK¤W¡A¦ý¦ü¥G¥þ³£®{³ÒµL¥\¡C¬°¤°»ò³o¼Ë¤@Ó¤£¦ÛµMªº²Õ´ÁÙ¯àÄ~Äò
¦s¦b? ¡v
¤j®v¦^µª»¡¡G¡u§A¤w¸gÅé»{¨ì³oÓÃe¤jªºµ²ºc¡A¦Ó³Q¥¦¤£¦X²zªº¥Øªº§xÂZ¡C¤£
¹L§A¯à¤£±q¥¦µL¥ð¤îªº°j±Û¦Ó±o¨ì¼Ö½ì¶Ü? ¯à°÷¤£ªY½à²`ÂæbªK¸©³ºÝ²@µL§x
Ãøªºµ{¦¡³]p¶Ü? ¬°¤°»òn³Q¥¦ªºµL¥Î¦Ó§xÂZ©O?
ª÷«° µù²¨¡G¤£n²^¾K¦bªF®aªø¡A§õ®aµuªº¤p¹D®ø®§¸Ì¡C
7.2¸`
ªF¤è®ü¤W¦³¤j³½¤êóË¡Aó˯àÅܦ¨ÂùÁl¾B¤Ñªº¤jÄP¡C·í¤jÄP¸¶V³°¦a®É±a¨Ó¤@¹D
¤½¥qÁ`³¡ªº°T®§¡A³o¹D°T®§¥¿¦n±¼¦b¤@¸sµ{¦¡û¤¤¥¡¡AµM«á¤jÄP§é°_ÂùÁl¼·
¦ÓÂk¡C
¥Í¤âµ{¦¡ûÀü²´±æµÛ¤jÄP¡A¦]¬°¥L̤£»{±o¡F¤¤´¼µ{¦¡û¼~¼{¤jÄPªº¨ÓÁ{¡A¦]
¬°¥LÌ®`©È¥¦±a¨Óªº°T®§¡F¥u¦³¤j®v¤~¯àÄ~Äò§¤¦b²×ºÝ¾÷«e¤u§@¡A¦]¬°¥L¤£ª¾
¤jÄPªº¨Ó¥h¡C
ª÷«° µù²¨¡G
¡u®©¡v¡A»ÝnÀR¡A¡uÀR¡v¡A»Ýn©w¡A´¼¼zªº³Ì°ª¹Ò¬É«K¬O¤@¤ß¤£¶Ã¡C
7.3¸`
¶H¤ú¶ðªºÅ]³N®v±aµÛ¥Lªº³Ì·sµo©ú¥h¨£¤j®v¡A¥L±À¤F¤@Ó¤j¶Â²°¤l¨«¶i¤j®vªº
¿ì¤½«Ç¡A¤j®v¥¿¦bÀRÀR¦aµ¥µÛ¡C
¡u³o¬O¤@®M¾ã¦X©Ê¡B¤À´²¦¡¡B¤@¯ë¥Î³~ªº¤u§@¯¸¡v¡AÅ]³N®v¦p¬O»¡¡A¡uÁÙ¦³¤@
®M±MÄݪº§@·~¨t²Î¡A²Ä¤»¥N»y¨¥¡A¦h¶µ³Ì¥ý¶iªº¨Ï¥Î¤H¬É±¡A¦A¥[¤W¤HÅé¤u¾Ç
ªº³]p¡F³oªá¤F§Úªº§U¤â̦n´X¦Ê¤H¦~¤~³y¥X¨Óªº¡A¤£¬O«Ü¤F¤£°_¶Ü? ¡v
¤j®v©ï¤F¤U²´¯]¤l¡A¡uªº½T¤F¤£°_¡v¡A¤j®v»¡¡C
Å]³N®vÄ~Äò»¡¡G¡u¤½¥qÁ`³¡¤w¸g¤U¥O¨CÓ¤H³£n¥Î³o¥x¤u§@¯¸µo®i·s³nÅ骺°ò
¥Û¡A±z¦P·N¶Ü? ¡v
¡u·íµM¡v¡A¤j®vµª¡A¡u§Ú°¨¤W·|§â¥¦©ñ¨ì¸ê°T¤¤¤ß¥h¡C¡v¡C©ó¬OÅ]³N®v°ª°ª¿³
¿³¦a¦^¨ì¶H¤ú¶ð¥h¡C
´X¤Ñ«á¡A¤@ӥͤâ¦b¤j®vªº¿ì¤½«Ç¸Ì¹Î¹ÎÂà¡A»¡¡G¡u§Ú§ä¤£¨ì·sµ{¦¡ªº³øªí¡A
±zª¾¹D·|¦b¨º¨à¶Ü? ¡v
¡u·íµM¡v¡A¤j®vµª¹D¡A¡u³øªí´N°ï¦b¸ê°T¤¤¤ß¸ÌÀYªº°ò¥Û¤W! ¡v
ª÷«° µù²¨¡G°l¨D®É»ì®e©ö°g¥¢¡A¤£¯à¸Ñ¨M°ÝÃD¡A«h¤u¨ã¥u¬O¼oª«¡C
7.4¸`
¤j®v¥i¥H²@µL¼~¼{¦a±q³oÓµ{¦¡Âà¤J¥t¤@Óµ{¦¡¡AºÞ²z¤Wªº§ïÅܶˤ£¨ì¥L¡FÁa
¨Ïp¹º²×¤î¤F¡A¤]¤£·|³Qª£¾{³½¡C¬°¤°»ò? ¦]¬°¥L¥Rº¡¤F¹D¡C
ª÷«° µù²¨¡G
¤@¦ÊӶ̥ʡA¥u·|¯d¤U¤@¦ÊÓ¿ù»~¡A¤@Ó´¼ªÌ¡A«K¯à¸Ñ¨M¤@Ó¯u¥¿ªº
°ÝÃD¡C¦b¤½¥q¤¤¯u¥¿¸Ñ¨M°ÝÃDªº¤H¬Oµ}¦³°Êª«¡A¦Ó¨ä¾lªº¤H¯à¤£»s³y
³Â·Ð´N¬O¸U©¯¤F¡A¯d¤U¨Ó¥u¬O®ö¶Oª÷¿ú(Á~¤ô)¡C
²Ä¤K³¡ µwÅé»P³nÅé
¤j®v¦p¬O»¡¡G¡u¨S¦³·¡A¯ó¤£·|°Ê¡A¨S¦³³nÅé¡AµwÅé´N¬O¼oª«¡C¡v
8.1¸`
¥Í¤â°Ý¤j®v¡G¡u§Úª¾¹D¦³¤@®a¹q¸£¤½¥q¤ñ¨ä¥Lªº¤j±o¦h¡A°ª°ª¦b¤W´N¹³¬O¥¨¤H
¤§¤ñ¨Ü¾§¡F¥¦ªº¥ô¤@³¡ªù³£¥i¥H³æ¿W¦¨¬°¤@Ó¥ø·~¡C¬°¤°»ò·|³o¼Ë? ¡v
¤j®v¦^µª¡G¡u§A¬°¤°»ò°Ý³oӲ°ÝÃD? ³o®a¤½¥q´N¬O¦]¬°¥¦¤j¤~·|³o»ò¤j¡C¦p
ªG¥¦¥u»s³yµwÅé¡A¨S¦³¤H·|¶R¥¦¡F¦pªG¥u¥Í²£³nÅé¡A¨S¦³¤H·|¥Î¥¦¡F¦pªG¥uºû
Å@¨t²Î¡A¤H®a·|§â¥¦¬Ý¦¨×²zû¡F¦ý¬O¦]¬°¥¦§â©Ò¦³ªº¦X¦b¤@°_¡A¤HÌ´N§â¥¦
·í¯«¤@¼Ë¬Ý«Ý¤F¡C¥¦®Ú¥»µL»ÝÄvª§¡A¦]¬°Ä¹¨Ó¤£¶O§j¦Ç¤§¤O¡C¡v
ª÷«° µù²¨¡G
¦b¹q¸£¥@¬É¤¤¡A¦pªG»¡ÂŦ⪺¥¨¤H´N¬O«ü IBM¡C
8.2¸`
¤j®v¦³¤@¤Ñ¸g¹L¤@ӥͤâ¨Ãä¡Aµo²{¥Í¤â°g¤W¤F¤@¥x¤â´x«¬ªº¹qª±¡A¡u¹ï¤£°_
¡v¡A¤j®v»¡¡A¡u§Ú¥i¥H¬Ý¬Ý¥¦¶Ü? ¡v
¥Í¤â°±¤U¨Ó¡A¨Ã¥B§â³o¥x¾÷¾¹¥æµ¹¤j®v¡C¤j®v»¡¡G¡u§Ú¬Ý¨ì³o¥x¾÷¾¹ª±°_¨Ó¦³
¤TÓ¼h¦¸¡Gªì¯Å¡B¤¤¯Å¡B°ª¯Å¡F¤£¹L³oºØ¾÷¾¹³q±`³£¦³¥t¤@Ó¼h¦¸ªº»¡ªk¡A¨Ï
¾÷¾¹Ä¹¤£¤F¤HÃþ¡A¦Ó¤HÃþ¤]³Ó¤£¤F¾÷¾¹¡C¡v
¡u°Ú! ¤j®v¡A¥Í¤â»¡¡G¡u³oÓ©_§®ªº¶}Ãö¦b¨º¸Ì? ¡v
¤j®v§â¾÷¾¹ºL¨ì¦a¤W¡A¥Î¸}§â¥¦½òÄê¡C
¬ðµM¦a¡A¥Í¤â¶}¬¤F¡C
ª÷«° µù²¨¡G
¦b¹q¸£¦¡¹qª±ªº¥@¬É¤¤¡A¨Ï¥ÎªÌ©Ò±Á{ªº¦n¹³¥u¬O¦B§NµL±¡ªº¹q¤l¾÷
¾¹¡A¦ý¨Æ¹ê¤W¡A¯u¥¿ªºÆF»î¬Oµ{¦¡³]p®v©Òºë¤ß³Ð§@¥X¨Óªºµ{¦¡¦b°õ
¦æ¡C©Ò¥H¡A°¶¤j¤§³B¦b©óµ{¦¡³]p®vªº´¼¼zµ²´¹¡A¦Ó«D¨S¹q´N§¹¤Fªº
µwÅé³]³Æ¡C©Ò¥H½Ð¤£n°g«H¹q¸£¸U¯à¡C
8.3¸`
±q«e¦³¤@¦ì·L¹q¸£ªºµ{¦¡û¹ï¤@¦ì¨Ó«ô³X¥Lªº¤j«¬¹q¸£µ{¦¡û»¡¡G¡u§A¬Ý¡A¦b
³o¨à¦³¦h¦n! §Ú¦³§Ú¦Û¤vªº§@·~¨t²Î»PÀÉ®×Àx¦s³]³Æ¡A§Ú¤£¥²»P¥ô¦ó¤H¦@¥Î¥ô
¦ó¹q¸£¸ê·½¡F³nÅ饻¨¦Ûµ¹¦Û¨¬¦Ó¥B®e©ö¨Ï¥Î¡C¬°¤°»ò§A¤£Ãã±¼¥Ø«eªº¤u§@¨Ó
°Ñ¥[§ÚÌ? ¡v
©ó¬O¤j«¬¹q¸£ªºµ{¦¡û´N¹ï¥LªºªB¤Í¸ÑÄÀ¡G¡u¤j«¬¹q¸£´N¹³¥j¤§¸tõ¯ë¦aÃÃ
®y¸¨¦b¸ê°T¤¤¤ß¤¤¥¡¡AºÏºÐ¤@Ó±µ¤@Ó½«¬°©_Æ[¡A³nÅé¹³Æp¥Û¯ë¦a¦³¦hºØ±¥Ø
¡A¹³¥j´ËªL¯ë¦a¿@±KZ²±¡C¦UÓµ{¦¡¹³¤@¤ù«æ¬y¯ë¦a´é¤J¨t²Î¡A¦Ó³o´N¬O§Ú¦b
¨º¨à¤u§@ªº¼Ö½ì¡C¡v
Å¥¤F³o¬q¸Ü¤§«á¡A·L¹q¸£µ{¦¡ûÀRÀqµLÁn¡G¦ý¬O³o¨âÓ¤H«oµ²¬°¦n¤Í¡A¦Ü¦º¤£
´ü¡C
ª÷«° µù²¨¡G
µL½×¹q¸£¬[ºc¤§¤j¤p¦p¦ó¡A¨äÆ[©À¤@P¡Cµ{¦¡³]p®v¤§¥»»â°ª§C¡A¤£
¬O¬Ý¨Ï¥Îªº³]³Æ¦Ó½×¡A§A¬Ý¬Ý°¨¸ô¤W¶}¨®ªº¤H¡A¶} Benz ¤£¤@©w¤ñ¶}
pµ{¨®ªº¥q¾÷§Þ³N§ó¦n¡C
8.4¸`
Hardware »P Software ¨«¦b¸ô¤W¡A Software »¡¡G¡u§A¬O³±§Ú¬O¶§¡A¦pªG§Ú
̯à¤@±ø¤ß¡A¤@©w·|¦¨¤j¦WÁȤj¿ú¡C¡v©Ò¥H¡A¥LÌ´NÁp¦X¦b¤@°_¦Ó·Q©ºªA¥@¬É
¡C
¨«¤F¤@¬q¸ô¤§«á¡A¸I¨ì Firmware ¡A¬ï±o¯}¯}ÄêÄê¡A®³µÛ®Ú¬b§ú¡A¨Ã¥B¹ï¥LÌ
»¡¡G¡u¹D¦b³±¶§¤§¥~¡AÀR±I¤£°Ê¦p¥j¤«¤§¤£¥ÍªiÄi¡F¹D¤£¨D¦W¡A¬GµL¤Hª¾¾å¨ä
¦s¦b¡F¹D¤£³v§Q¡A¦]¥¦¶êº¡µL¯Ê¡C¹D¶W¥G®ÉªÅ¤§¥~¡C¡v
Hardware »PSoftware Å¥¤F¤§«á¿·PºF·\¦Ó¥´¹D¦^®a¡C
ª÷«° µù²¨¡G
Firmware(¶´Åé)¡A³q±`«ü¦b CPU ¤º³¡ªº·L«ü¥O¡At³d¾÷¾¹«ü¥Oªº§ì
¨ú--¸Ñ½X--°õ¦æ¡A¦]§Þ¥©ªº²`«×¡A¤@¯ëµ{«×ªº³nµwÅé¤uµ{®v¬Ò¤£©úÁA
¦¹¤@·Lµ²ºc¶¥¼h¤§¹B§@¤è¦¡¡C¦Ó¦¹³¡¥÷¡A³Q³ë¬°¹q¸£¤¤³Ì²`¶ø¥©§®ªº
¤@³¡¥÷¡C¦]¬°¥¦¬O CPU ªº¥Í©R®Ö¤ß¡C
²Ä¤E³¡ §ÀÁn
¤j®v¦p¬O»¡¡G¡u³o¬O¤U½Òªº®ÉÔ¤F! ¡v
²Ä³ü½g
¤Jªù½g
²Ä¹s½Ò FORTH ¾É ½×
F-PC ¬O FORTH ¨t²Î¶}©ñµ¹ MS-DOS ªº»â°ì¡A¬Û®e©óÓ¤H¹q¸£¡A¬O¥Ñ
Tom Zimmer©M Dr. Robert L.Smith ©M³\¦h Forth µ{¦¡³]p®v³]pªº¡A¥¦
¬O°t¦X MS-DOS ¾Þ§@¨t²Îªºµ{¦¡Àô¹Ò¡A§Q¥Î¾Þ§@¨t²Îªº§U¯q©M°ò¥»ªº 80*86
¾÷¾¹¡A¥¦¦³±j¤Oªº½s¿è¾¹©M 8086 ½s;¹¡A¤]¦³¤@Ó«K§Qªº¶W¤j¤å¦r¨t²Î¨Ó
À°§U¨Ï¥ÎªÌ¾r¶¿¤Î±´ÀI Forth ¨t²Î¡C
¡@¦¹«ü¾É¬O°w¹ï²Ä¤@¦¸¨Ï¥Î Forth ªÌ¾Ç²ß¨ä°ò¥»«ü¥O¶°¡A¥i¥H¦bµu®É¶¡¤º¥[
¥H¹B¥Î¡A¦¹«ü¾É¥u°Q½×¤@¦Ê¤¤Q²Õ«ü¥O¡CµM¦Ó¡A³oÓ¤p«ü¥O¶°¡AÅý¨Ï¥ÎªÌ¹ï
¸Ñ¨M³\¦h¹ê»Ú°ÝÃD©Ò»Ý½ÆÂøºtºâªk±o¥Hªí¹F¡A¦]¦¹¤]¥i¬°§ó¶i¤@¨B¾Ç²ß
Forth »y¨¥©M§¹¾ãªº F-PC ¨t²Î¡A²Ï¤UéTªº®Ú°ò¡C
¦¹«ü¾É¥]§t¤»½Ò¦³³\¦hªº¨Ò¤l¤Î½m²ß¡A¥i¥H³Q F-PC ½sĶ¡A¨Ï¥ÎªÌ¥i¥H¥ß
§Y°µ¨Ò¤l¥H¤U¬O¦p¦ó¶}©l F-PC ¤Î½sĶ½Ò¤å¡A¾\Ū»¡©ú¡A´ú¸Õ¨ÒÃD¤Î°µ½m²ß
Forth «ü¥O¡C
¤@¡B ¦w¸Ë F-PC
.¥»¤å
¦pªG¦³¥þ³¡ªº F-PC ºÏ¤ù¡A§A¥²¶·°õ¦æ¨t²ÎºÏ¤ù¸Ìªº INSTALL µ{¦¡¨Ó±N¥¦
¦w¸Ë¤J§Aªº PC ¡C
±N Disk ©ñ¤J A ¼ÑÁä¤J¡G
A>INSTALL
¦w¸Ëµ{¦¡·|«ü¤Þ§A¡A¨Ã¥B«Ø¥ß¤@Ó F.EXE °õ¦æÀÉ¡A§A»Ýn¤j¬ù 4MB ªÅ¶¡
ªºµwºÐ¨Ó¦w¸Ë¥þ³¡ªº F-PC ¨t²Î¡A¦b C ºÐ·|²£¥Í¤@Ó F-PC ¤l¥Ø¿ý¡A§A¥i¥H
°õ¦æ¥¦¡AÁä¤J¡G
C:\F-PC>F
¡@¡@´X¬í«á¿Ã¹õ·|¥X²{ F-PC ªºµe±¡A«h FORTH ¥i¥H¨Ï¥Î¤F
¦pªG§A¨S¦³¥þ³¡ªº F-PC ¡A§A¥i¥H¨Ï¥Î«ü¾É¸Ìªº F.EXE ÀɨӬã¨s½Ò¤å¡A¨Æ
¹ê¤W§A¤£»Ý¥ÎµwºÐ¡A¸Ë°t©ó 360K ºÏ¤ù¸Ìªº½Ò¤å©M F.EXE ÀÉ¡A¥un¤@ӼѴN
¯à¨Ï¥Î¡A§â«ü¾ÉºÏ¤ù©ñ¤J A ¼Ñ¥´¤J¡G
A>F
¤G¡B ¾Ç²ß½Ò¤å
§â½Ò¤åºÏ¤ù©ñ¤J A ¼Ñ¥B Forth ¤w¸ü¤J¡AÁä¤J¡G
A:
½T©w A ¼Ñ¬O¹w³]ªººÏºÐ¾÷¡A§A¥i¥H¥´¶}²Ä¤@½ÒŪ»¡©ú¡AÁä¤J¡G
open lesson1
b
"b"«ü¥O¬O´M¨D F-PC ½s¿è¾¹ªºÀ°§U¡A¨Ã¥B¦b½s¿èµøµ¡Åª lesson1.seq ÀÉ
¡A¥i¥H§Q¥Î´å¼Ð©M PqUp¡BPqDn ¨ÓŪ¡A«ö F10 ¸õ¥X¡A¦^¨ì Forth¡C
½sĶ©M´ú¸Õ²Ä¤@½Òªº¨Ò¤l¡AÁä¤J¡G
ok
"OK"¬O½sĶ¥Ø«e¶}±ÒªºÀÉ¡A§A¥i¥HÁä¤J²Ä¤@½Ò©Ò©w¸qªº«ü¥O¡A¨ÓÃÒ©ú©M½Ò
¤å¤¤°Q½×ªº¬O°µ¬Û¦Pªº¤u§@
²Ä¤@½Ò¤§«á¡A¥H¬Û¦Pªº°Ê§@Ū»¡©ú
open lesson2
b
¡@ §A¥i¥H½sͲĤG½Ò¡AÁä¤J¡G¡@
open lesson2
ok
¥þ³¡¤»½Ò¬Ò¥H¬Û¦P¤§¤è¦¡
¤T¡B½m²ß
¦pªG°ÝÃD²³æ¡A§A¥i¥HÁä¤J·s«ü¥Oªº©w¸q¡A°¨¤W´ú¸Õ¡A¦ý¬O³Ì¦n±N·s«ü¥O«Ø
ÀÉ¡A§A¥i¥H×§ï¤Î«Âдú¸Õ¡C
¡@n°µ½m²ß¡A§A¥²»Ý¶}±Ò·sÀÉ¡AÁä¤J§Aªº·s«ü¥O¡AÁä¤J¡G
newfile exercise
"newfile"«Ø¥ß¤@Ó¦W¥s exercise.seq ªº·sÀÉ¡A¨Ã´M¨D½s¿è¾¹ªºÀ°§U¡A¥i
¥H¶}©l¿é¤J·s«ü¥Oªº©w¸q¡A¨Ï¥Î¨Ò¤l°µ¬°·s«ü¥Oªº¼ÒÀÀ¡A·í§A§¹¦¨«ü¥O½X¿é
¤J¡A«ö F10 ¸õ¥X½s¿è¡A¦^¨ì Forth¡@Áä¤J¡G
¡@¡@ ok
¡@¡@½sͧAªº·s«ü¥O¡AµM«á¥[¥H´ú¸Õ¡C
¡@¦pªG Forth ¦b½sͧAªº«ü¥O½X¦³°ÝÃD®É¡A¥¦·|´M¨D½s¿è¾¹ªºÀ°§U¡A¥B´å¼Ð·|
°±¦bµLªk¿ë»{¤§«ü¥O³B¡A§A¥i¥H°µ¥¿½Tªº×§ï¡AÂ÷¶}½s¿è¡AÁä¤J¡G
¡@¡@ok
¡@¡@¦A½sĶ«ü¥O½X
¦pªGnª½±µ½s¿è exercise.seq ÀÉ¡AÁä¤J¡G
open exercise
e
" e " ©M " b "Ãþ¦ü¡A¦ý " e " ¥i¥H¦bÀɮ׸̽s¿è¤å³¹ " b " ¥u¯àÂsÄý¡A
¤£¯à×§ï§A¥i¥H¤£¶·¸g¹L " open<filename>OK " ¤§¹Lµ{¨Ó½sĶ¥ô¦óÀÉ¡A¥u
nÁä¤J¥H¤U¤§«ü¥O
include lesson1
include lesson2
include exercise
¥H¦¹Ãþ±À¡A¦pªG¦b exercise.seq ÀÉ»yªk¿ù»~ " include exercise "±N´M¨D
½s¿è¾¹ªºÀ°§U¡A¥B´å¼Ð·|«ü¥X¸Ó«ü¥OÅý§A½s¿è
¡@½s¿è¾¹¬O«D±`ª½Ä±ªº¡A¥¦±µ¨ü Werdstar ªº±±¨î«ü¥O¡A¦pªG§A«ö ESCÁä¡A¥i
¥H¦b¿Ã¹õ³»ºÝ¬Ý¨ì¥D¥\¯àªí¡A¥i¥H¥Î´å¼Ð¨Ó¿ï¥X¤@Ó¨D§U¶µ¡A¨Ã¥B©Ô¤U¤@Ó
¸Ô²Ó½s¿è¾¹¥\¯à¤§¨D§U¥\¯àªí¡C
¡@¦¹½s¿è¾¹¤¹³\§A¦b·s«ü¥O¸Ì§ï¥¿»yªk¿ù»~¡A·í§A¦¨¥\ªº½sĶ·s«ü¥O«á¡A¤´»Ý
¤£Â_´ú¸Õ¡A½T©w¥¦Ì¥¿½Tªº°µ¸Ó°µªº¡A§A¥i¯à°µ¿ù·í¾÷¡A¦ý¨Ï¥Î½Ò¤å¤¤ªº«ü
¥O¡A¹ï¹q¸£©ÎºÏºÐ¤¤ªº¸ê®Æ¤£·|¦³ÄY«ªº¶Ë®`¡A³ÌÁVªº¥u¬O«·s¶}¾÷¦A¦¸°õ
¦æ F.EXE
À°§U§A±N©w¸qªº«ü¥O°£¿ù¡AF-PC ´£¨Ñ¤@Ó¦³¤Oªº°£¿ù¾¹¡A¦³³æ¨B°£¿ùªº¯à¤O
¡An´ú¸Õ©M°£¿ù§A©w¸qªº«ü¥O¡A¦pn¹ï mycommand °£¿ù«hÁä¤J¡G
dbg mycommand
¡@·|¥X²{¨â¼h¿Ã¹õ¡A¤W¥b³¡«ü¥X¦b mycommand ©w¸q¤Uªº«ü¥O¡A¤U±µøµ¡®i¥Ü¥X
¸ê®Æ°ïÅ|ªº¤º®e©M¤U¤@Ó°õ¦æªº«ü¥O¡A«ö<Enter>«ü¥O·|¤@Ó±µ¤@Ó´ú¸Õ¡AÂÇ
µÛÀ˵ø¸ê®Æ°ïÅ|ªº§ïÅÜ¡A§A¥i¥HÀHµÛ°õ¦æªº¶¶§Ç¨Ó½T»{¿ù»~ªºì¦]¡A¥Î½s¿è
¾¹§ï¥¿¥¦ªº½sĶ«ü¥O½X¨Ã¦A¸Õ¤@¦¸¡C
µ{¦¡¬O½s¿è¡B½sĶ¤Î´ú¸Õªº¤£Â_´`Àôª½¨ì¨C¤@¼Ë³£°µ¹ï¡A¥¦¸g±`¨Ï§Ú̱¡ºü
«ÜÃa¡A¦ý¦pªG°µ¹ï¤F¡A·|«Üº¡¨¬¡C
¥|¡Bµ{¦¡®æ¦¡©Mµ{¦¡§U¤â
½Ò¤å¬O¥H¤@ºØ§An¸òÀH¼g¦Û¤vªº«ü¥O½Xªº§Î¦¡¼gªº¡A¤j¶q¦³Ãö«ü¥O½Xªº»¡©ú
¤å¦r¬O¥Î¨Ó¸ÑÄÀ©Mµù¸Ñ¦¹«ü¥O½X¡A¦pªG§Aªá®É¶¡¥h§â«ü¥O½X¥[¥H¸ÑÄÀ©Î°µ¦¨
¤å¥ó¡A¨º»òµ¥§A¼g¦n«ü¥O½X§Y¨Ï¬O¤Q¦~¤§«á¨Ó¾\Ū¤]²@µL§xÃø¡A¦Ó¥B§O¤H¨Ó
ºûÅ@¤]«Ü®e©ö¡A¥H¤U¬O´XÓµù¸Ñ«ü¥O½Xªº¤è¦¡
(comments) \ ( ªí¥Ü¶}¨Ï¤@Óµù¸Ñª½¨ì¥k¬A¸¹¬°¤î
\comments \ ªí¥Ü¶}¨Ï¤@Óµù¸Ñª½¨ì³Ì«á¤@¦C¬°¤î
comment: \ ¦h¦Cµù¸Ñª½¨ì comment; ¬°¤î
comment 1 \ µù¸Ñ 1
comment 2 \ µù¸Ñ 2
..... \ ...
comment n \ µù¸Ñ n
comment; \ µ²§ôµù¸Ñ
EXIT \ °±¤î½sĶ¡A¥H«á©Ò¦³¦æ¦C¬Òµø¬°µù¸Ñ
¡@¡@¿ï¾Ü¦nªº«ü¥O¦WºÙ¡A¨Ïµ{¦¡©öŪ¡A¥H¤U¬O¦nªº Forth µ{¦¡©R¦Wªºì«h
(¤@)¨Ï¥Î¦³·N¸qªº^¤å¦r¡C
(¤G)¤£nÁY¼g¡C
(¤T)¨Ï¥Î½Æ¦X¦r¦p CountEggs , InitDataArray ¦W¦r¥i¦³ 31 Ó¦r¡C
(¥|)¨Ï¥Î´yz«ü¥O°µ¤°»òªº¦W¦r¡AÅý«ü¥O½X¸ÑÄÀ¥¦¦p¦ó°µ¨Æ¡C
(¤)¤£n¨ÒÁ|¹³ DataAray1,DataArray2 µ¥¡Aµ¹¤©¥\¯àªº´yz¹³
TemperatureArray , PressArray 杭C
(¤»)«ü¥O½X¤À¸Ñ¦¨µuªº¤ù»y¨Ã¥[¥Hµù¸Ñ¡C
(¤C)©w¸qµuªº©w¸q¨Ã¨Ï«ÂШϥΥLÌ¥H´£°ªµü·Jªº¦A¨Ï¥Î¯à¤O¡C
(¤K)¦b·s©w¸q¸ÌÁ×§K¥[¤J¤º³¡°j°éªº±_ª¬µ²ºc¡C
(¤E)¹ï¿é¤J©M¿é¥X°ïÅ|(Stack)¶µ¥Ø¡A®É®É¥[¥Hµù¸Ñ¡C
(¤Q)¦b¤@ÓÀɸ̲զ¨¬ÛÃö³sªº«ü¥O¡C
²Ä ¤@ ½Ò ¦L¥X¦r¦ê
¦¹½Ò¥Î³Ì²³æªº¨Ò¤l¨Ó»¡©ú Forth ªºì«h¡F±q²{¦³ªº«ü¥O¶°¸Ì«Ø¥ß·s«ü¥O§Ú
̨ϥβ³æªº Forth «ü¥O" XXXX "¨ÓÅã¥Ü¿Ã¹õ¤Wªº¦r¡A¨Ã¨Ï¥Î¥¦¨Ó«Ø¥ß¤@«ü
¥O¶°¤¹³\§Ú̦b¿Ã¹õ¤W«Ø¥ß¥ô¦ó¤@²Õ¦r¡A¬°¤F»¡©ú " ." " «ü¥Oªº¥Îªk¡AÅý
§Ų́Ӽg²Ä¤@Ó Forth µ{¦¡¡C¡@¡@
ª÷«° µù²¨¡G
." ¬O¤@Ó FORTH ªºµü(word)¤]´N¬O¨ä¥L»y¨¥©Ò¿×ªº«ü¥O¡A©Ò¥H¨ä«e
«á¬Òn¦³ªÅ¥Õ¡A¤~¯à³Q¤À¿ë(¸ÑĶ)°õ¦æ¡C
¨ÒÃD¤@¡B´¶³qªº°Ý«á
: hello ." hello, world!" ;
¡@²{¦b¡A¦pªG§A¥´¤J"hello"µM«á«ö<Enter>¡A" hello, world! "·|¥X²{¦b
" hello " ¤§«á
: \ ¶}©l·s«ü¥O
hello \ ·s«ü¥O¤§¦WºÙ
." \ ¦L¥X¦r¦ê¡A¤£¥]¬A¤U¤@Ó "
; \ µ²§ô·s«ü¥O
¡@¡@"hello"¬O·s«ü¥O¨ä¥\¯à¬O¦b¿Ã¹õ¤W¦L¥X"hello, world!"
¨ÒÃD¤G¡B ¤j F
²{¦b§ÚÌn°µªº¬O¨Ï¥Î²³æ§Þ¥©¨ÓÅã¥Ü¤j«¬ªº^¤å¦r¤¸¦b¿Ã¹õ¤W¡A¥H F ¬°¨Ò
: bar cr ." ***** " ;
: post cr ." * " ;
: F bar post bar post post post ;
¡@¥´¤J" F "«ö Enter¡A§A¥i¥H¬Ý¨£¿Ã¹õ¤W¤§ F ³QÅã¥Ü¤F
*****
*
*****
*
*
*
F ¦³¨âÓ¦¨¤À¡A¤@ 5 Ó * ²Õ¦¨ªº bar ¤Î¤@Ó¥i¥Ñ¤@өΦhÓ * ¥N´À
ªº Post¡A§ÚÌ©w¸q¨âÓ·s«ü¥O" bar" ¤Î" Post "¤À§OÅã¥Ü 5 Ó * ©M¤@Ó
* ³Ì«áªº«ü¥O F ©w¸q¬°Åã¥Ü¤@Ó bar¡B¤@Ó Post¡B¤@Ó bar¡A¤TÓ Post¡C
¡@«ü¥O" cr "¶}©l·sªº¤@¦æ¡A¨Ï±o«á¨Óªº¦r¥Ñ¿Ã¹õ³Ì¥ªÃäÅã¥Ü
ª÷«° µù²¨¡G
¦¹¨ÒÃDµ¹¤F¤@ӳ̫nªº FORTH ·§©À¡A±N¤@Ó½ÆÂøªº°ÝÃD¥ý"¤ÀªR
²¤Æ"¡A¦A±N¨ä»s³y¦¨¹s¥ó(¤@Ó FORTH ªºµü)¡A³Ì«á¦A¤©²Õ¦X¡C
½m²ß¤@¡B
¨Ï¥Î·s«ü¥O bar ¤Î Post ©w¸q·s«ü¥O" C "¡B" E "¡B" L "¦b¿Ã¹õ¤WÅã¥Ü¹ïÀ³
ªº¤j«¬¦r¤¸¡C
½m²ß¤G¡B
¤ÀªR§Aªº©m¡A¤@²Õ¹³ bar ¤Î post ªº«ü¥O¡A¨Ï¥Î¥¦Ì¨Ó²Õ¦X§A¦³©m¸Ì©Ò¦³ªº
¦r¥À¡A§Ú¥H" TING "¬°¨Ò
ª÷«° µù²¨¡G
FORTH ªººë¯«¡A´N¬O²¤Æ°ÝÃD¡C¦]¦¹¡A¨c°O FORTH ªº²Ä¤@±øµL¤W¤ß
ªk "¦pªG§A¤£¯à±N°ÝÃD¤ÀªR²¤Æ¡A¨º¥Nªí§A¨Ã¥¼¯u¥¿³z¹ýªº¤F¸Ñ°ÝÃD
¡A©Ò¥H½Ð¦^ÀY¥h±´¯Á¡B¤ÀªR°ÝÃDªº¥»¨¡C
¨ÒÃD¤T¡B§Úªº¦W¦r
: center cr ." * " ;
: sides cr ." * *" ;
: triad1 cr ." * * *" ;
: triad2 cr ." ** *" ;
: triad3 cr ." * **" ;
: triad4 cr ." *** " ;
: quart cr ." ** **" ;
: right cr ." * ***" ;
: bigT bar center center center center center center ;
: bigI center center center center center center center ;
: bigN sides triad2 triad2 triad1 triad3 triad2 sides ;
: bigG triad4 sides post right triad1 sides triad4 ;
: TING bitT bigI bigN bigG ;
½m²ß¤T¡B
¥H¦¹¤è¦¡¨Ó²Õ¦X^¤å¦r¥À¬O®e©öªº¡A°ÝÃD¬O¦b 5*7 ªº®æ¦¡¸Ì²Õ¦X 26 Ó¦r¥À
»Ý¦h¤Ö°ò¥»«ü¥O? Ãö©ó¼ÐÂI²Å¸¹©O?
½m²ß¥|¡B
ì«h¤W¡A§ÚÌ¥i¥HÃþ¦üªº§Þ³N¨Ó²Õ¦X¤¤¤å¦r¡A¦ý»Ý 16*16 ¤§®æ¦¡½sͧó¦h¤¤
¤å«h»Ý 24*24 ®æ¦¡¡A¸ÕµÛ¥Î 5*7 ®æ¦¡²Õ¦X²³æªº¤¤¤å¡A¨Ò¦p¤é¡B¤ë¡B¤g
ª÷«° µù²¨¡G
¦¹ÃD¬O»¡©ú¤F¤¤¤å¨t²Î¤¤²Õ¦rªkªºÆ[©À¡A¤´¬O¤ÀªR²¤Æ¡C
¨ÒÃD¥|¡B¦b¿Ã¹õ¤WÅã¥Ü¤jªº¦r¤¸
¡@¸ÕµÛ¦b¿Ã¹õªº¥ô¦ó¦a¤è¼g¥X²Õ¦X¦r¡A¿Ã¹õ¥i¥H 25*80 ®æ¦¡Åã¥Ü¦r¤¸¡A§Y
25 ¦C¡B¨C¦C 80 ¦r¡A¤U¦C«ü¥O¤¹³\§Ú̦b¼g¦r¤¸«e²¾°Ê´å¼Ðªº¦ì¸m¡C
dark \ ²M°£¿Ã¹õ´å¼Ð©ñ¦b¥ª¤W¨¤
at \ ²¾°Ê¼Ð¦Ü¿Ã¹õ«ü©w¦ì¸m
\ 40 12 at §â´å¼Ð©ñ¦b¿Ã¹õ¤¤¥¡
ª÷«° µù²¨¡G
x y at «ü¥Oªº«eªÌ"x"¬O¾î®y¼Ð¡A«áªÌ"y"¬OÁa®y¼Ð¡C
FORTH ±N¿Ã¹õªº¥ª¤W¤èµø¬°(0,0)
¥H¤U«ü¥O§â¤@¤j F ©ñ¨ì¿Ã¹õ¤¤¥¡
: newBar ." *****" ;
: newPost ." * " ;
: new-F
dark
38 10 at newBar
38 11 at newPost
38 12 at newBar
38 13 at newPost
38 14 at newPost
38 15 at newPost
cr
;
¡@ÅãµM¦a¡A³o¬O©ñ¸m¤å¦rªº²Â©å¤èªk¡A¦pªG¥²¶·¦b«ü¥O¸Ì«ü©w¤å¦r©ú½Tªº¦ì¸m¡A
¤@Ó©ñ¸m¤å¦r¸û´¶¹Mªº¤èªk¬O¨Ï¥ÎÅܼÆ(Variables)¨Ó¶J¦s¦ì¸m¡A¥HP©ó¤@Ó
¦r¥À¥i¥H©ñ¦b¿Ã¹õ¤Wªº¥ô¦ó¦aÂI¡C
ª÷«° µù²¨¡G
(¤@)¤u¨ãªº³]pn²³æ¡A¦ý¤]nÅU¤ÎÆF¬¡ªº¼u©Ê¡C§_«h´Nn¼g«Ü¦hª©
¥»¡A¤Ï¦Ó§ó²Ö¤H¡C
(¤G) FORTH ªºµL¤W¤ßªk²Ä¤G±ø "³]p¤u¨ã¤§«e¡A¥ý·Q²M·¡¥¼¨Óªº¨Ï
¥Î¤è¦¡¡A¬O§_²³æ¡BÆF¬¡¡B¶¶¤â¡A¦A¤U¤â¥h°µ"¡C
variable x
variable y
: newLine
x @ y @ at \ ¡@²¾°Ê´å¼Ð¨ì(X¡AY) ¦ì¸m
1 y +! \ ¼W¥[ Y ¦Ü¤U¤@¦C
;
: F newLine newBar
newLine newPost
newLine newBar
newLine newPost
newLine newPost
newLine nwePost
;
§â F ©ñ¦b¿Ã¹õ¤W¥²¶·¥ý«ü©w¨ä¦ì¸m¡G
30 x ! 10 y ! F
¡@³o¸Ì©Ò¾Çªº¬O´XÓ FORTH «ü¥O
variable <name> \ ©w¸q¤@ÓÅܼÆ(Variable)¡A¼Æ¦r¥i¥H
\ ¶J¦s¤Î¨ú¥X
@ ( var -- data ) \ ¨ú¥X¦s¦bÅܼÆ(Variable)¤¤ªº¼Æ¦r
! ( data var -- ) \ ¦s¤@ӼƦr¨ìÅܼÆ(Variable)¤¤
+! ( data var -- ) \ §â¦s¦bÅܼÆ(Variable)¤¤¤§¼Æ¦r¼W¥[¤@
ª÷«° µù²¨¡G
(¤@)¦b FORTH ¤¤¥Ñ¤p¬A¸¹¬A°_¨Óªº½d³ò¬Oµù¸Ñ¡A§O§Ñ¤F¤p¬A¸¹¥»¨
¤]¬O¤@Ó«ü¥O¡C
(¤G)n¯d¤ß FORTH ªºÅܼơA¬O°Êµü¡A¦Ó¤£¬O¥N¦Wµü¡C
(¤T) FORTH ¨t²Î¨S¦³ÃѧO¦rªº³W©w¡A¤]¨S¦³«O¯d¦rªºÆ[©À¡A©Ò¦³ªº
µü(word)¤@«ß¬Ý¦¨¬Ûµ¥¦a¦ì¡A¥i¿×¤§"¦³®e¤D¤j"
: F-demo
dark
0 x ! 0 y ! F
70 x ! 10 y ! F
10 x ! 18 y ! F
40 x ! 15 y ! F
;
½m²ß¤¡B
©w¸q¤@Ó·s«ü¥O¨Ó²M°£¿Ã¹õ¡A¨Ã§â Forth ¦¹°T®§¥H²Õ¦X¦r¥À©ñ¨ì¿Ã¹õ¤¤¥¡¡C
: bar newLine ." *****" ;
: post newline ." * " ;
: triad1 newline ." *** " ;
: sides newline ." * *" ;
: tetra newline ." **** " ;
: duol newline ." ** " ;
: duo2 newline ." * * " ;
: duo3 newline ." * * " ;
: center newline ." * " ;
: F bar post bar post post post ;
: O triad1 sides sides sides sides trial1 ;
: R tetra sides tetra duo2 duo3 sides ;
: T bar center center center center center ;
: H sides sides bar sides sides sides ;
: FORTH dark
25 x ! 10 y ! F
32 x ! 10 y ! O
39 x ! 10 y ! R
46 x ! 10 y ! T
53 x ! 10 y ! H
;
½m²ß¤»¡B
¦Û¤v³]p¤@Ó°T®§¡A±N¨äÅã¥Ü©ó¿Ã¹õ¤¤¥¡¡C
ª÷«° µù²¨¡G
(¤@) FORTH ªºµ{¦¡³]p¡A²³æªº»¡´N¬O¬°¤@ÓÀ³¥Î°ÝÃD¡A³Ð³y¥X¤@
¸s²³æ¡BÆF¬¡¡B¶¶¤âªº·s«ü¥O¡C¨CÓ·s«ü¥O¡A´N¦¨¤F«ü¥O¸s¤¤ªº
¤@³¡¥÷¡A¦¹¬° FORTH ³Ì¤jªº¯SÂI¡A»P APL ªºÆ[©À¬Û¦ü¡C
(¤G)¦pªG«ü¥O³]pªº¦n(²³æ¡BÆF¬¡)¡A«h¥i¥H°T³t¦³®Äªº¸Ñ¨M¥¼¨Ó©Ò
¾D¹J¨ì§ó½ÆÂøªºÀ³¥Î°ÝÃD¡C©Ò¥H¤u¨ã«~½èªº¦nÃa¡Aª½±µ¼vÅT¤u§@
ªº®Ä²v¡C¦]¦¹¡A¦³¤H»¡ FORTH ¬Oµ{¦¡³]p®v¯à¤Oªº©ñ¤jÃè¡A
¨ÒÃD¤¡B«ÂЪº¹Ï¼Ë
¹q¸£«D±`¾Õ©ó«ÂгB²z¨Æ¥ó¡A«Ü¦h FORTH «ü¥O³Q³]p¨Ïµ{¦¡®e©ö³B²z«
ÂЪº¤u§@
DO ( limit index -- ) ¡@\¡@³]©w LOOP µ¹·¥©M«ü¼Æ
LOOP ( -- ) \ ±q 1 ¼W¥[«ü¼Æ¨Ã¤ñ¸û·¥¡@
¦pªG Index=limit ¸õ¥X LOOP¡A§_«h
«ÂÐ DO ¤§«áªº«ü¥O
I ( --index ) ¡@\¡@¶Ç¦^¥Ø«e LOOP «ü¼Æ
n©w¸q loop ¥²¶·¦b«_¸¹¸Ì©w¸q¡A I ¥u¯à¥Î©ó DO ©M LOOP ¤§¶¡¡A·í
DO....LOOP »yªk³Q°õ¦æ¡ALoop ¼W¥[«ü¼Æ¨Ã»P Limit ¤ñ¸û¡A¦pªG indexµ¥©ó
©Î¤j©ó limit ¡Aµ²§ô Loop ¡A¦pªG¼W¥[ªº«ü¼Æ¤´¤p©ó limit¡A¦b Loop¸Ì¤§«ü
¥O·|«Âаõ¦æ
¡@¥H¤@¨Ç¨Ò¤l¨Ó´ú¸Õ DO....LOOP «ü¥O
VARIABLE width ¡@\¡@¦L¥X¬P¸¹ªº¦r
: Asterisks \ ¦b¿Ã¹õ¤W¦L¥X n Ó¬P n = width
width @ 0 \ ¶}©l«ü¼Æ=0 ¡Alimit=¼e
DO ." *" \¡@¤@¦¸¦L¤@Ó¬P¸¹
LOOP ¡@\¡@«ÂÐ n ¦¸
: Rectangle ( height width -- , ¦L¥X¬P¸¹ªºªø¤è§Î )
width ! \¡@¦L¥X³Ìªì¤§¼e
0 \¡@limit=°ª¡Aindex=0
DO CR
Asterisks \ ¦L¥X¤@¦C¬P¸¹
LOOP
;
: Parallelogram ( height width -- )
width !
0
DO CR I SPACES \¡@²¾°Ê¦æ¦C¦Ü¥kÃä
Asterisks \¡@¦L¥X¤@¦C¬P¸¹
LOOP
;
: Triangle ( width -- , ¡@¦L¥X¤@Ó¬P¦r¤T¨¤§Î )
1 \ limit=width, initial index=1
DO CR
I width ! \¡@¼W¥[¨C¤@¦Cªº¼e
Asterisks \¡@¦L¥X¤@¦C¬P¸¹
LOOP
;
´ú¸Õ¤Wz¤§«ü¥O
3 10 Rectangle
5 18 Parallelogram
12 Triangle
½m²ß¤»¡B
·Q¥X¤@¨Ç¦³½ìªº¹Ï§Î¡A¥i¦b¿Ã¹õ¤WÅã¥Üªº¡A¨Ã¼gµ{¦¡¨Ó²£¥Í¦¹¹Ï§Î¨Ò¦p¡C
*
* *
* * *
* * * *
* * *
* *
*
¨ÒÃD¤»¡Bµe®Ø®Ø
¡@ IBM-PC ¦³¤@²Õµ¹¿Ã¹õÅã¥Üªº¹Ï§Î¦r¤¸¡A¥¦Ì¥i¥H¦b¿Ã¹õ¤Wµe¥X²³æ¹Ï§Î¡A¨Ó
¥[±j§Aªº¤å¦r°T®§¡A·í¦b F-PC ½s¿è¾¹¡A«ö ESC A ©M Enter ¡A´N¥i¥H¬Ý¨£³o
¨Ç¦r¤¸¡A¦b¦¹¨Ò¤¤¡A§ÚÌnµe¥X¤@ÓÀô¶¤@½g¤å³¹ªº®Ø®Ø¡A©Ò»Ýªº«ü¥O¦p¤U¡G
218 EMIT \¡@¦L¥X¥ª¤W¨¤ ¢z
191 EMIT \¡@¦L¥X¥k¤W¨¤ ¢{
192 EMIT \¡@¦L¥X¥ª¤U¨¤¡@¢|
217 EMIT \¡@¦L¥X¥k¤U¨¤ ¢}
176 EMIT \¡@¦L¥X««ª½½u ¢x
196 EMIT \ ¦L¥X¤ô¥½u ¢w
¡@Åý§Ú̬ݬݦp¦ó¦b¿Ã¹õ¤Wµe¥X¤@ӮخءA§Ṵ́²©w®Ø®Ø¥ª¤W¨¤¬O(X¡AY)¡A¥k¤U
¨¤¬O(X1¡AY1)
VARIABLE x1
VARIABLE y1
: TopSide ( -- )
x @ y @ AT \¡@´å¼Ð²¾¦Ü¥ª¤W¤è
x1 @ x @ \¡@¤ô¥·¥(²×ÂI¤Î°_ÂI)
DO 196 EMIT \¡@¦L¥X¤W¤è¤§Ãä½u
LOOP
;
: BottomSide ( -- )
x @ y1 @ AT \¡@´å¼Ð²¾¦Ü¥ª¤U¤è
x1 @ x @ \¡@¤ô¥·¥
DO 196 EMIT \¡@¦L¥X¤U¤è¤§Ãä½u
Loop
;
: LeftSide ( -- )
y1 @ y @ \¡@««ª½·¥
DO x @ I AT \¡@´å¼Ð¦ì¸m
179 EMIT \¡@µe¥X¥ªÃä½u
LOOP
;
: RightSide ( -- )
y1 @ y @ \ ««ª½·¥
DO x1 @ I AT \ ´å¼Ð¦ì¸m
179 EMIT \ µe¥X¥kÃä½u
LOOP
;
: Corners ( -- )
x @ y @ AT
218 EMIT \¡@¥ª¤W¨¤ ¢z
x @ y1 @ AT
192 EMIT \¡@¥ª¤U¨¤ ¢|
x1 @ y @ AT
191 EMIT \¡@¥k¤W¨¤ ¢{
x1 @ y1 @ AT
217 EMIT \¡@¥k¤U¨¤ ¢}
;
: Box ( x y x1 y1 -- )
y1 ! x1 ! ¡@\ ¶J¦s¥k¤U¨¤
y ! x ! ¡@\ ¶J¦s¥ª¤W¨¤
LeftSide RightSide ¡@\ µe¨âÃä
TopSide BottomSide ¡@\ µe³»©M©³
Corners
;
: demo FORTH ¡@\ ¦L¥X¤j Forth
20 8 62 17 box \ ¦b¥¦¥|©Pµe¥X®Ø®Ø
0 21 at ; ¡@\ ²¾°Ê´å¼Ð¥X¨Ó
¥´¤J DEMO §A¥i¥H¬Ý¨ì Forth ³Q³ò¦b®Ø¸Ì
½m²ß¤C¡B
¦b IBM-PC ¸ÌªºÂù½u¦r¤¸¬OALT-205 -----ALT-188(É¡B»¡BÈ¡B¼¡Bº¡BÍ¡BΡBÊ¡B
Ë¡BÌ¡B* ) ¡A¦p¤W¨Ï¥Î¥¦Ì²Õ¦XÂù½u®Ø®Ø¡C
ª÷«° µù²¨¡G
FORTH ªºµ{¦¡³]p¤è¦¡¡A¤@¦p¨ä¥¦»y¨¥ªºµ²ºc¤Æ¼Ò²Õ¡A¦ý FORTH ªº
¬[ºc¹ªÀy¨Ï¥ÎªÌ¡A¼g³\¦hÓµu¦¡¤l¡A¨Ó²Õ¦X¦¨À³¥Îªº¥þ³¡µ{¦¡¡Aµuªº
¦¡¤l¦³³\¦h¦n³B¡A²Ä¤@Ó¬O¯à±M¤ß«ä¦Ò¡C²Ä¤GÓ¬O¸û®e©ö°£¿ù¡C²Ä¤T
Ó¬O¥i«ÂШϥΡC²Ä¥|Ó¬O¬°³v¨B§ïµ½¡C³Ì«á¤@Ó¬O¥ß§Y´ú¸Õ¡C
²Ä ¤G ½Ò ¤GÓ¤å¦r¹CÀ¸
Forth µ{¦¡ªº¥»½è¬O±q²{¦sªº«ü¥O©M¼Ò²Õ¡A«Ø¥ß¤@Ó§ó¤j§ó¦³¤Oªº¼Ò²Õ¡A±q
¤p²Õ«ü¥O¶}©l¡A¥i¥H«Ø¥ß¤º®e¥R¹êªºµ{¦¡³B²z¦³½ìªº¨Æ
¡@§Ú̾ǹL¤F Forth ªº¤p«ü¥O¡A¥]¬A " ." " ¦b¿Ã¹õ¤WÅã¥Ü¦r¦ê¡A§Ú̱N¨Ï¥Î
¦¹«ü¥O¨Ó³]p¨âÓ¹CÀ¸¤§µ{¦¡¡A¨Óª±§Ë¤å¦r¦ê
¨ÒÃD¤@¡B
¡@ " The Theory that Jack built " ³o½g¤å³¹¬O¥ý©w¸q¤@¨Ç¤ù»y¡AµM«á¥Î¥¦¨Ó
«Ø¥ß¥y¤l©M³¹¸`¡A¦¹¨Ò¤l±Ð§Ú̦p¦ó¦b Forth ¸Ì¥H¤pªº¼Ò²Õ«Ø¥ß¤jªºµ{¦¡
¡@º¥ý©w¸q¤@¨Ç²³æ¤ù»y
: the ." the " ;
: that cr ." That " ;
: this cr ." This is " the ;
: jack ." Jack Builds" ;
: summary ." Summary" ;
: flaw ." Flaw" ;
: mummery ." Mummery" ;
: k ." Constant K" ;
: haze ." Krudite Verbal Haze" ;
: phrase ." Turn of a Plausible Phrase" ;
: bluff ." Chaotic Confusion and Bluff" ;
: stuff ." Cybernatics and Stuff" ;
: theory ." Theory " jack ;
: button ." Button to Start the Machine" ;
: child ." Space Child With Brow Serene" ;
: cybernatics ." Cybernatics and Stuff" ;
²{¦b«Ø¥ß½ÆÂøªº¦X¦¨ªº¤ù»y
: hiding cr ." Hiding " the flaw ;
: lay that ." Lay in " the theory ;
: based cr ." Based on " the mummery ;
: saved that ." Saved " the summary ;
: cloak cr ." Cloaking " k ;
: thick IF that ELSE cr ." And " THEN
." Thickened " the haze;
: hung that ." Hung on " the phrase ;
: cover IF that ." Covered "
ELSE cr ." To Cover "
THEN bluff ;
: make cr ." To Make with " the cybernatics ;
: pushed cr ." Who Pushed " button ;
: without cr ." Without Confusion, Wxposing the Bluff" ;
: rest \ ¦b¨Ï¦æ°Ê¤¤¤î
." . " \ ¦L¥X¤@¸`
10 SPACES \ ªÅ10Ó¶¡¹j
KEY \ µ¥¨Ï¥ÎªÌ«ö¤@Áä
DROP CR CR CR ; ¡@¡@
: recite \¡@®ÔŪ¸Ö½g
dark cr this theory rest
this flaw lay rest
this mummery hiding lay rest
this summary based hiding lay rest
this k saved based hiding lay rest
this haze cloak saved based hiding lay rest
this bluff hung 1 thick cloak
saved based hiding lay rest
this stuff 1 cover hung 0 thick cloak
saved based hiding lay rest
this button make 0 cover hung 0 thick cloak
saved based hiding lay rest
this child pushed
cr ." That Made with " cybernatics without hung
cr ." And, Shredding " the haze cloak
cr ." Wrecked " the summary based hiding
cr ." And Demolished " theory rest
;
ª÷«° µù²¨¡G
FORTH µ{¦¡ªº¾ãÅé¬[ºcÃþ¦ü¾ðª¬µ²ºc¡A¥Ñ¸¤l»P¾ðªKºc¦¨¾ðªº¤ä·F¡A
¦A¥Ñ¤ä·Fºc¦¨¥D·F¡C¦Ó°õ¦æ®É¤]Ãþ¦ü¾ð¤ìªº¾i¥÷¿é°e¡A¥Ñ¥D·F±N¤ô¥÷
°e©¹¤ä·F¡A¤ä·F¦A¤À°e¾ðªK©M¸¤l¡A¨ì¹F¤p¸¤l¤W¦æ¥ú¦X§@¥Î(¯u¥¿ªº
¦³®Ä¹B§@)¡C¥H¸ê°T±M·~ªº²´¥ú¨Ó¬Ý´N¬O¨ä¥L»y¨¥ªº¨ç¼Æ©I¥s»P°Ñ¼Æ¶Ç
»¼¡C
KEY ( --char ) \ µ¥Ô«öÁä¡A¨Ã¶Ç¦^¸Ó«öÁ䪺 ASCII ½X
DROP ( n-- ) \¡@¥á±ó¦b°ïÅ|(stack)³»ºÝªº¼Æ¦r
SPACE ( -- ) \¡@Åã¥Ü¤@ӪťÕ
SPACES ( n-- ) \¡@Åã¥Ü n ӪťÕ
IF ( f-- ) \¡@¦pªGºX¼Ð(flag) ¬O0¡A¸õ¦Ü ELSE or
THEN ¦pªGºX¼Ð(flag) ¤£¬O0¡A°õ¦æ
¡@ ©³¤Uªº«ü¥O¡A
¦Ü ELSE µM«á¸õ¦Ü THEN
ELSE ( -- ) \ ¸õ¹L¥H¤Uªº«ü¥O¨ì THEN
THEN ( -- ) \ µ²§ô IF-ELSE-THEN
©Î IF-THEN
ª÷«° µù²¨¡G
(¤@) FORTH ªº THEN 쥻¬O ENDIF ªº·N«ä¡A½Ð¤£n§Ë²V¤F¡C
(¤G)¤W¦C¦¡¤l¤¤¥Ñ¤p¬A¸¹¬A°_¨Óªºµù¸Ñ³¡¥÷¡A¬° FORTH ªº°ïÅ|ª¬ºA
¹Ï¡AÂù´î¸¹¤§«eªº¬°¦¹°Êµü©Ò»Ýªº¿é¤J¸ê®Æ¡A¤§«áªº¬°¿é¥Xµ²
ªG¡C
(¤T) FORTH ªº±ø¥ó«ü¥O»P²Õ¦X»y¨¥ªº¨Ï¥ÎÆ[©À¤@¼Ë¡C
KEY¡BDROP µy«á°Q½×¡A¥Ø«e¨ä§@¥Î¬OÅý¹q¸£¼È°±¡Aµ¹§A®É¶¡¥hŪ¸Ö³¹¡A·í«ö
¥ô·NÁä¡A¹q¸£·|Ä~Äò°õ¦æ¤U¤@Ó«ü¥O" rest "·|¦b¨C¤@³¹µ²§ô®É°õ¦æ¡C
¡@ IF---ELSE---THEN ¤¹³\¹q¸£¨Ì¨ä°õ¦æª¬ªp¿ï¾Ü¥æ´Àªº«ü¥O¡A³o¨Ç«ü¥O¥H¸sÅé
¤è¦¡¨Ï¥Î¡C
(flag) IF <true-clause> ELSE <false-clause> THEN
(flag) IF <true-clause> THEN
False Clause ¬O¥ô·Nªº¡AÁ|¨Ò¡G" 1cover "¬O¬Ûµ¥©ó
that ." Covered " bluff
¡@¦Ó" 0cover "¬Ûµ¥©ó
cr ." To Cover " bluff
¡@³oÓ±ø¥óªº¤À¤äµ²ºc¡A¹ï¹q¸£¿ï¾Ü¤@©Î¤GÓ¤£¦P¸ô®|¨Ó°õ¦æ¬O«Ü¤è«Kªº¡C
¡@²{¦b§ÚÌ¥i¥H«Ø¤@Ó¤j¦Ó§ó½ÆÂøªº«ü¥O¡A¤@³¹¤@³¹ªº¦L¥X³¹¸`°õ¦æ¡C
RECITE
¥H¤å³¹¶¶§Ç¦L¥X¥þ³¡ªF¦è
½m²ß¤@¡B
¥H¤Wz§Þ¥©¿é¤J§A³ßÅwªº¸Ö½g¡Aµ¹¨C¤@½g¿W¯Sªº¦W¦r¡A§@¬°·sªº Forth «ü¥O
¡A·í§A¥´¤J¤@º¸Öªº¦W¦r¡A©Ò¦³ªº¸Ö·|¥H°Ê¤Hªº§Î¦¡¦b¿Ã¹õ¤W³QÅã¥Ü¡C
¨ÒÃD¤G¡B
³o¬O¤@Ó¹ï¸Ü¹CÀ¸¡A¹q¸£±N¹ï¤£¦P°ÝÃDµ¹¤©©¾§i¡A¤ñ¦p©Ê¡B°·±d¡B¿ú¡B¤u§@¡A
¬O±q " Basic Computer Games "§ï½s¦Ó¨Ó¡C
: Advisor
CR ." Hello! My name is Creating Computer."
CR ." Hi there!"
CR ." Are you enjoying yourself here?"
KEY 32 OR 89 =
IF CR ." I am glad to hear that."
ELSE CR ." I am sorry about that."
CR ." maybe we can brighten your visit a bit."
THEN
CR ." Say!"
CR ." I can solved all kinds of problems except those dealing"
CR ." with Greece. What kind of problems do you have"
CR ." ( sex, health, money or job )?"
CR
;
: question
CR ." Any more problems you want to solve?"
CR ." What kind ( sex, job, money, health ) ?"
CR
;
: sex CR ." Is your problem TOO MUCH or TOO LITTLE?"
CR
;
: much CR
." You call that a problem?!! I SHOULD have that problem."
CR
." If it really bothers you, take a cold shower."
question
;
: little
CR ." Why are you here!"
CR ." You should be in Tokyo or New York of Amsterdam or"
CR ." some place with some action."
question
;
: health
CR ." My advise to you is:"
CR ." 1. Take two tablets of aspirin."
CR ." 2. Drink plenty of fluids."
CR ." 3. Go to bed (along) ."
question
;
: job
CR ." I can sympathize with you."
CR ." I have to work very long every day with no pay."
CR ." My advise to you, is to open a rental computer store."
question
;
: money
CR ." Sorry! I am broke too."
CR ." Why don't you sell encyclopedias of marry"
CR ." someone rich or stop eating, so you won't "
CR ." need so much money?"
question
;
¶}©l¹ï¸Ü¡AÁä¤J¡G
ADVISOR
¡@¡@
¡@¦¹¹ï¸Ü§Q¥Î Forth ¾ã¦Xªº¥æ½ÍÀô¹Òªº¤Ñ©Ê¡A¨Ï¥ÎªÌªº¦^µª³Q©w¸q¬° Forth ªº
«ü¥O¡A·í¥´¤J«ü¥O®É¡A¦ü¥G¦b¦^µª¹q¸£ªº°ÝÃD¡A³o¨Ç«ü¥O¦L¥Xµ¹¨Ï¥ÎªÌªº¥¿½T
©¾§i¡C
ª÷«° µù²¨¡G
¦¹½d¨Ò§Æ±æ¯àÅý¨Ï¥ÎªÌÅé·|¨ì¡Aì¨Ó¨ä¥L»y¨¥n¼g¤@ªø¦êªº«ü¥O¨Ó
§PÂ_¨Ï¥ÎªÌ¿é¤Jªº¦r¦ê¡A¦A¼h¼h¹LÂo§ä¥X¾A·íªº°Ê§@¡A¦Ó FORTH «o
¥u¥Î¤F´X¬q¸Ü´N©w¸q¤F¾ãӰݵªªº¹Lµ{¡A©MµªÂЪº¤º®e¡A«D±`ªº¦Û
µM¡B¬yºZ¡C
½m²ß¤G¡B
¨Ï¥Î¨Ò¤l¤Gªº§Þ¥©©w¸q§ó¦h©¾§i(±B«Ã¡B«Ä¤l¡Bªk«ßÃö«Y......)¡C
½m²ß¤T¡B
«Ø¥ß¤@Ó¤¤°ê©¯¹B»æ¤u¼t¡A©w¸q³\¦hªº©¯¹B»æ·í Forth «ü¥O¡A§â¦W³æµ¹¨Ï¥Î
ªÌ¡A¥L¥i¥HÁä¤J¦W¦r¡AÀò±o©¯¹B®ø®§¡Aµy«á§Ú̾ǶüƦrªº²£¥Í¾¹¡A¨Ï¥Î¶Ã¼Æ
¨Ó¿ï¾Ü©¯¹B»æ¡C
²Ä ¤T ½Ò ¼Æ ¦r
³o¤@½Òn°Q½× Forth ³B²z¾ã¼Æªº¤èªk¡A 16¦ì¤¸¾ã¼Æ¬O±q -32768 ¨ì 32767
ªº¼Æ¡A¦b Forth ¸Ì«Ü¤è«K¶J¦s©M°õ¦æ¡A Forth ¤]¥i¥H³B²z«Ü¤jªºÂù¿ºë±K«×
¼Æ¡A¬Æ¦Ü¯BÂI¼Æ¡A¦ý¤w¶W¥X©ó¥»½Ò¤§½d³ò¡C
ª÷«° µù²¨¡G
FORTHªº¼Æ¦r¨Ï¥Î¤è¦¡¡A³ßÅw¾ã¼Æªº¹Bºâ¡A¦]¬° FORTH ªº¶Ç²ÎÆ[©À
¤¤¡A¦b¨S¦³µwÅé¯BÂI¹Bºâ¯à¤Oªº CPU ¤W¡A¨Ï¥Î¾ã¼Æ¨Ó¹Bºâ¡A¥H¨D±o
³t«×»Pºë±K«×ªº³Ì¨Î®ÄªG¡C
¨ÒÃD¤@¡B
¼Æ¦r¦b Forth ¸Ì¦p¦ó¨Ï¥Îªº²Ä¤@Ó¨Ò¤l¬O´«¿úµ{¦¡¡A¤£¦P³f¹ô¤§§I´«¡G
24.55 NT 1 Dollar
7.73 HK 1 Dollar
5.47 RMB 1 Dollar
1 Ounce Gold 356 Dollars
1 Ounce Silver 4.01 Dollars
¡@¥H¬ü¤¸¬°¼Ð·Ç³f¹ô¡A§â©Ò¦³³f¹ô§I´«¦¨¬ü¤¸¡A©Ò¦³ªº¼Æ¾Ç¾Þ§@¡A·|¦b¬ü¤¸¸Ì°õ
¦æ¡A¿ú¤]¥i¥H±q¬ü¤¸§I´«¦¨¨ä¥L³f¹ô
¡@§ÚÌ¥H³f¹ô¦WºÙ¬°©w¸q¦r±N¨ä´«¬°¬ü¤¸¡A¦Ó§I´«¬ü¤¸¬°¤@ºØ³f¹ô¡A°õ¦æ¦r¬O
" $ "°O¸¹
: NT ( nNT -- $ ) 10 245 */ ;
: $NT ( $ -- nNT ) 245 10 */ ;
: RMB ( nRMB -- $ ) 100 547 */ ;
: $jmp ( $ -- nJmp ) 547 100 */ ;
: HK ( nHK -- $ ) 100 773 */ ;
: $HK ( $ -- $ ) 773 100 */ ;
: gold ( nounce -- $ ) 356 * ;
: $gold ( $ -- nounce ) 356 / ;
: silver ( nounce -- $ ) 401 100 */ ;
: $silver ( $ -- nounce ) 100 401 */ ;
: ounce ( n -- n, a word to improve syntax ) ;
: dollars ( n -- ) . ;
¥H¦¹²Õ´«¿úªº¦r¡A¥i¥H°µ¤@¨Ç´ú¸Õ
5 ounce gold .
10 ounce silver .
100 $NT .
20 $RMB .
ª÷«° µù²¨¡G
¤@Ó¼g FORTH µ{¦¡ªº«n·§©À¬°¥ý·Q³Ì«án«ç»ò¥Î¡A¦A¥Ñ¨Ï¥Îªº¤è¦¡
¤¤¤ÀªR¦¹°Êµü(«ü¥O)©Ò»Ý§¹¦¨ªº¤u§@¤º®e¡AµM«á¸g¹L¾ã²z©M²¤Æ¡A¤~°Ê
¤â¼g§@¡C¤Á°O¡G" ¥ý·Q²M·¡n«ç»ò¥Î¡A¤~·|ª¾¹Dn«ç»ò¼g "¡C
¡@ ¦pªG§A¥Ö§¨¸Ì¦³¤£¦Pªº¯È¶r¡A§A¥i¥H§â¥¦Ì³£¥[°_¨Ó´«¦¨¬ü¤¸
1000 NT 500 HK + .s
320 RMB + .s
dollars \ ¥H¬ü¤¸¦L¥Xµ|È
¡@ " dollars " »P " ¡D" ¬Û¦P¡A¶ÈÅã¥Ü¤@ӼƦr¡A¨Ï¥Î" dollars "¨ÓÅã¥Ü¿ú
ªºÁ`¼Æ¡A¦b^¤å»yªk¤W¬O«Ü¦ÛµMªº
¡@¦¹®É¦pªG§Ú¦b»´äÁ`¼Æ¤]¥i§Ö³tªº´«¦¨´ä¹ô
1000 NT 500 HK + 320 RMB + .s
$HK dollars ¡@ \¡@¥þ³¡´«¦¨´ä¹ô¡A¦L¥X
ª÷«° µù²¨¡G
¼g¤@Ó FORTH ªºµ{¦¡¤@¦p¼g¤@º¸Ö¡An«H¡B¹F¡B¶®ÝÅU¡A©Ò¥H
dollars ªº¥Î³~´N¬O¦b´£ª@¡u¶®¡vªº¹Ò¬É¡C
½m²ß¤@¡B°Óª«®È¦æ
±a 1000 ¬ü¤¸Â÷¶} S.F ¨ì H.K ¥Î¥h 1200 HK ¦] S.H ±o¨ì 2000 RMB ¦b
H.K¥Î¥h 900 HK ¦b»O¥_¥Î¥h 30000 NT ³Ñ¦h¤Ö¬ü¤¸¡G
µª®×¬O :
1000 1200 HK - 2000 RMB + 900 HK - 30000 NT - dollars
¸Õ¤@¸Õ
¨ÒÃD¤G¡B·Å«×´«ºâ
Äá¤ó©MµØ¤ó¤§´«ºâ»P´«¿ú¤£¦P¡A¤D¦b¦¹¨âºØ·Å«×¡A°£¨è«×¦]¯À¥~¦³¤@Ó®t¶ZÈ
: F>C ( nFarenheit -- nCelcius )
32 -
10 18 */
;
: C>F ( nCelcius -- nFarenheit )
18 10 */
32 +
;
90 F>C . \ Åã¥Ü®L¤Ñ¥Õ¤Ñªº·Å«×
0 C>F . ¡@ \ Åã¥Ü¥V¤Ñ±ß¤W·Å«×
ª÷«° µù²¨¡G
¦b FORTH ¤¤¡A */ ªº¹Bºâ¡A¥Dn¬OÀ³¥Î¦b¤À¼Æªº¼ªk¤W¡C
¨Ò¦p¡G 10 18 */ ´N¬O¼¥H 9 ¤À¤§ 5¡C
¦b¥H¤Wªº¨Ò¤l¡A§Ų́ϥΤU±¤§ Forth ¼Æ¾Ç¹Bºâ¤l
+ ( n1 n2 -- n1+n2 ) \ ¥[ N1 ©M N2¡A§â©M¯d¦b°ïÅ|(Stack)
- ( n1 n2 -- n1-n2 ) \ ±q N1 ´î N2¡A§â®t¯d¦b°ïÅ|(Stack)
* ( n1 n2 -- n1*n2 ) \ N1 ¼ N2¡A§â¿n¯d¦b°ïÅ|(Stack)
/ ( n1 n2 -- n1/n2 ) \ ¥HN2°£¥H N1¡A§â°Ó¯d¦b°ïÅ|(Stack)
*/ ( n1 n2 n3 -- n1*n2/n3 ) \ N1 ¼ N2 ¤§¿n°£¥H N3¡A
§â°Ó¯d¦b°ïÅ|(Stack)
.s ( ...--... ) \ §â°ïÅ|(Stack)³Ì¤W¤èªº 4ӼƦrÅã
¥Ü¥X¨Ó¡A¦¹¦r¤£·|§ïÅܰïÅ|(Stack)
ªº²`«×¤Î¤º®e¡C
§ÚÌ¥²¶·¤¶²Ð°ïÅ|(Stack)¤§·§©À¡B°ïÅ|(Stack)¬O¹q¸£¤§°O¾Ð°Ï¨ÓÀx¦s¤Î¨ú¦^
¼Æ¦r¡A»P²Ä¤@½Ò¤§ÅܼÆ(Variables)¤£¦P¡AÅܼÆ(Variable)¬O¦b°O¾ÐÅ餤©R¦W
ªº¦ì¸m¡An¥H«ü©w¤§¦WºÙ§ì¨ú¡A°ïÅ|(Stack)¬O¤@±i¥ý¶i«á¥X
(First-In-Last-Out)ªºªí¡A·íµ¹ Forth ¤@ӼƦr®É·|©ñ¦b°ïÅ|(Stack)¤W¡A
¥ô¦ó¹Bºâ¤l©Ò»Ý¤§¼Æ¦r¡A¥²¶·¥Ñ°ïÅ|(Stack)¤W¼u¥X©Ò»Ý¼Æ¦r¡A³Ì®e©ö¨ú±oªº
¦r¬O°ïÅ|(Stack)³Ì³»ºÝªº¦r¡A«Ü¦hªº Forth «ü¥O¡A¥i¥H»s³y¤@өΫܦhÓ¼Æ
¦r¦Ó³o¨Ç¼Æ¦r²£¥Í®É·|©ñ¦b°ïÅ|(Stack)¤W¡C
" + "¨Ï°ïÅ|(Stack)³Ì³»ºÝ¤§¨âӼƦr¼u¥X¡A¬Û¥[«á¡A±N©M©ñ¦^°ïÅ|(Stack)
¡A-¡B*¡B/ ¬O³B²z²³æ¼Æ¾Ç±`¨Ï¥Îªº¹Bºâ¤l¡A¥²¶·ª`·Nµ¹" + "©M" * "¨âÓ¼Æ
¦rªº¥ý«á¶¶§Ç¬OµLÃöºònªº¡A¦Óµ¹" - "©M" / "¤§¥ý«á¶¶§Ç¬O«nªº¡A¥æ´«³o
¨âӼƦr¡A¤À§O·|²£¥Í¤£¦P®t©Î°Ó¡C
¡@¦b Forth " */ "¬O¤@ºØ¤ñ¨Ò¹Bºâ¤l¡A¤×¨ä¦b¾ã¼Æªº¤ñ¨Ò¹Bºâ¤¤¡A¥H N2/N3¤§
¤ñ¨Ò¼ N1 ¡A¥Ñ¨Ò¤@¡B¨Ò¤GÅã¥Ü¡A¦¹ºØ¤ñ¨Ò¹Bºâ¤l¬O«D±`¦³¤Oªº¡A¤À¼Æ¼ªkªº
¹B¥Î¥i¥H§K¥h¨Ï¥Î¯BÂIÂI¤§¥²n¡C
.S ¬O¦³¤Oªº°£¿ù¤u¨ãÅã¥Ü¥X°ïÅ|(Stack)³Ì¤W±¥|Ó¶µ¥Ø¤§¤º®e¡A¥¦±`¦b°£¿ù
®É¨Ï¥Î¡A¨Ó½T©w¦bpºâ®É°ïÅ|(Stack)¤§¼Æ¦r¬O¥¿½Tªº¡A¥¦³q±`¤£¥Î¦b³Ì²×µ{
¦¡¥H§K¦L¥X¤Ó¦h¤¤¶¡È
¤@¨Ç¤£±`¥Î¡A¦ý«n¤§¼Æ¾Ç¹Bºâ¤l¡G
MOD ( n1 n2 -- rem ) \¡@N1°£¥HN2¡A¾l¼Æ¯d¦b°ïÅ|(Stack)¤W
/MOD ( n1 n2 -- rem quot ) \¡@N1°£¥HN2¡A§â¾l¼Æ©M°Ó¯d¦b
°ïÅ|(Stac k)
ABS ( n -- ¢xn¢x ) \ ´«ºâ°ïÅ|(Stack)³»³¡¤§¼Æ
¦r¬°µ´¹ïÈ
NEGATE ( n -- -n ) \ §ó§ï°ïÅ|(Stack)³»ºÝ N ¤§¥¿t¸¹
·í§ÚÌÄ~Äò¾Ç¤U¥h¡A³o¨Ç¹Bºâ¤l¥²µM·|¨Ï¥Î¨ì
°ïÅ|(Stack)¾Þ§@«ü¥O
°ïÅ|(Stack)¬Oӳ̫nªº¦a¤è¡A¥ý«e°õ¦æªºµ²ªG¡A¥Ñ«e¤@Ó«ü¥O¯d¨ì²{¦b°õ
¦æªº«ü¥O¡A«ü¥O±q°ïÅ|(Stack)¨ú¨«°Ñ¼Æ¡A±Nµ²ªG¯d¦b°ïÅ|(Stack)µ¹«á¨Ó¤§«ü
¥O¡A°ïÅ|(Stack)¥i¥H«Ü®e©ö¦a³Q¦¨¦êªº°Æµ{¦¡¦@¥Î¡A¦¹°Æµ{¦¡¥i¥H©I¥s§O°Æ
µ{¦¡¡A¥H¦¹Ãþ±À¡A¦¹°Æµ{¦¡¬O Forth ªºµü¡A¥¦Ì¥i²@µL¨îªº²Õ¦X¡A³o¬O¬°
¤°»ò Fortrh µ²ºc©Mªº»yªkºc³y¤W¦p¦¹Â²³æªº«nì¦]¡C
¡@µM¦Ó¡A¦b°ïÅ|(Stack)¸Ì§â¤£¥¿½Tªº¼Æ¦r¶¶§Çµ¹«ü¥O¬O±`µo¥Íªº¹³ - ¤Î /¡A¦³
¤@²Õ°ïÅ|(Stack) ¾Þ§@«ü¥O¥i«·s±Æ°ïÅ|(Stack)¤Wªº¼Æ¦r³o 5ӳ̫nªº°ª
¶¥°ïÅ|(Stack) ¾Þ§@«ü¥O¬O¡G
DUP ( n -- n n ) \ ½Æ»s°ïÅ|(Stack)¤§³»ºÝ¤§¼Æ¦r
SWAP ( n1 n2 -- n2 n1 ) \ §â°ïÅ|(Stack)³»ºÝªº¨âӼƦr¤¬´«
OVER ( n1 n2 -- n1 n2 n1 ) \ ½Æ»s°ïÅ|(Stack)ªº²Ä¤GӼƦr
ROT ( n1 n2 n3 -- n2 n3 n1 ) \ §â²Ä¤TӼƦr´«¦Ü°ïÅ|(Stack)³»ºÝ
DROP ( n -- ) \ ©ß±ó°ïÅ|(Stack)ªº³»ºÝªº¼ÆÈ
ª÷«° µù²¨¡G
è¶}©l¾Ç FORTH ªº®ÉÔ¡A·|«Ü¤£²ßºD°ïÅ|(stack)ªº¹B§@¤è¦¡¡A¤×¨ä
¬O¨Ï¥Î¹L¨ä¥L°ª¶¥»y¨¥ªº¤HÌ¡A¹ï¨Ï¥Î¤j¶qÅܼƪºµ{¦¡¼g§@¤è¦¡¤wµM
¦b¤ß¤¤©w«¬¡A©Ò¥H¾Ç FORTH «K¿·P¦Y¤O¡C¦ý°ïÅ|(stack)¬O FORTH
³Ì«nªºÆ[©À¡A©Ò¦³ªº°Ñ¼Æ¶Ç»¼»P¹Bºâ¬Ò¦b°ïÅ|(stack)¤¤§¹¦¨¡C¥i
¿×¤§¾Ç FORTH ªº¥ô·þ¤G¯ß¡C¦pªG¾ÇªÌ¯uªºµLªk¤F¸Ñ°ïÅ|(stack)ªº¾Þ
§@Æ[©À¡A¥i¥H·Q¹³°ïÅ|(stack)´N¬O°Ï°ìÅܼƻP°Ñ¼Æªº¦@¥Î°Ï¡C¨ä¹ê
¦pªG¯uªº²`¤J¤F¸Ñ¦UºØ°ª¶¥»y¨¥ªº½s͵{¦¡¡A«K·|ª¾¾å°ïÅ|(stack)
ªº¹ê¥Î»ùȤF¡C
¨ÒÃD¤T¡Bªø¤è§Î
¡@ªø¤è§Î¬O¥Ñ(X¡AY)®y¼Ð¨Ó«ü©w¨ä¥ª¤W¤Î¥k¤U¨¤¡A¥H°ïÅ|(Stack)¸Ìªº³o4 Ó¾ã
¼Æ¡A§ÚÌ¥i¥Hpºâªø¤è§Î¤§±¿n¡B¤¤¤ß¤Î©Pªø¡C
: area ( x1 y1 x2 y2 -- area )
ROT - ( x1 x2 y2-y1 ) \ ¨D°ª
SWAP ROT - ( y2-y1 x2-x1 ) \ ¨D¼e
* ( area ) \ ¼e¼°ª¦¨±¿n¯d¦b
; °ïÅ|(stack)³»ºÝ
: center ( x1 y1 x2 y2 -- x3 y3 , center coordinates )
ROT - 2/ ( x1 x2 y3 ) \ ¨D°ªªº¤¤¤ßÂI
SWAP ROT - 2/ ( y3 x3 ) \ ¨D¼eªº¤¤¤ßÂI
SWAP ( x3 y3 )
;
: sides ( x1 y1 x2 y2 -- sides )
ROT - ABS ( x1 x2 y2-y1 ) \ ¨D°ª
SWAP ROT - ABS ( y2-y1 x2-x1) \ ¨D¼e
+ ( sides ) 2*
;
ÅÞ¿è¹Bºâ¤l
¹q¸£¨Ï¥ÎÅÞ¿è¹Bºâ¨Ó¨M©w¤Î¿í´`¤£¦P¤§°õ¦æ³q¹D¤]´N¬O©Ò¿×ªº¤Àª[¡AÅÞ¿è¹Bºâ
¥»¨«D±`²³æ¥B®e©öÁA¸Ñ¡AµM¦Ó¦hºØÅÞ¿è¹Bºâªº²Õ¦X¤Î¦b¤@Ó¤jµ{¦¡¸Ì¹ï²³¦h
¤£¦Pªº³q¸ô¤W°µ¤Àª[ªº§à¾Ü·|¨Ï±o¹q¸£ªº¹B§@Åã±o«Ü½ÆÂø¡A¬Æ¦ÜÅã¥Ü¥X¤@¨Ç´¼
¼zªº¯S½è¡C
³o¸Ì§Ṳ́¶²Ð¤@¨Ç»P¼Æ¦r¦X¨Ö¨Ï¥ÎªºÅÞ¿è¹Bºâ¦Ó¥B¤Àª[¤§¸õÅD¹Bºâ·|¨Ï¥Î¥LÌ
¡C¥HÅÞ¿è¹Bºâªºµ²ªG¨Ó¿ï¾Ü¤£¦P¤§¹B§@¡C
Forth ¨Ï¥Î¾ã¼Æ¨Óªí¥ÜÅÞ¿èÈ¡A¥u¦³ 2 ºØÈ¯u»P°°¡A¤Z¤£¬O 0 ªº¥ô¦ó¼Æ¥N
ªí¯u¡A¥H 0 ªí¥Ü°°¡A¤@Ó Forth ÅÞ¿è¹Bºâ©Ò¶Ç¦^ªº¯uȳq±`¶Ç¦^ -1 ¡A¦¹¼Æ
¦r¥NªíÅ޿誺Ȥ]ºÙ§@ºX¼Ð(Flog)¡A¦¹ÂI»P C »y¨¥ªºÆ[ÂI¬O¤@Pªº¡C
> ( n1 n2 -- f ) \ ¦pªGN1>N2¶Ç¦^¹ï¡A§_«h¶Ç¦^°°
< ( n1 n2 -- f ) \ ¦pªGN1<N2¶Ç¦^ºX¼Ð¬°¯u.
= ( n1 n2 -- f ) \ ¦pªGN1=N2¶Ç¦^ºX¼Ð¬°¯u.
0= ( n -- f ) \ ¦pªGN = 0¶Ç¦^ºX¼Ð¬°¯u.
0< ( n -- f ) \ ¦pªGN < 0¶Ç¦^ºX¼Ð¬°¯u¡A¥Î¨ÓÀˬd
¬O§_¬°t¼Æ
NOT ( f1 -- f2 ) \ ¦pªGf1¬O¿ù¶Ç¦^¯u
¡A¦pªGf1¬O¯u¶Ç¦^¿ù
AND ( n1 n2 -- n3 ) \ n3 ¬O n1 ©M n2 ¨C¤@¦ì¤¸§@ AND ªºµ²ªG
OR ( n1 n2 -- n3 ) \ n3 ¬O n1 ©M n2 ¨C¤@¦ì¤¸§@ OR ªºµ²ªG
¦b¬°¯u©M¬°°°¤§ºX¼Ð(Flags)¸Ì¡AAND ©M OR ·|¥¿½T¹B§@
-1 -1 AND -1 \ true true AND -- true
-1 0 AND 0 \ true false AND -- false
0 0 AND 0 \ false false AND -- false
-1 -1 OR -1 \ true true OR -- true
-1 0 OR -1 \ true false OR -- true
0 0 OR 0 \ false false OR -- flase
ª÷«° µù²¨¡G
n¤p¤ß 7 8 AND ªºµ²ªG¬° 0 ¡A¥H¤G¶i¦ì¨Ó¬Ý´N©ú¥Õ¤F¡C
¦b«_¸¹©w¸q¤U¡AºX¼Ð(Flag) ¥i¥H¥Î¨Ó¿ï¾Ü¤GÓ°õ¦æ³q¹Dªº¤@Ó¡A¸g¥Ñ¤U±¤§
µ²ºc¡C
( f ) IF <true clause> ELSE <false clause> THEN
¡@¡@¡@
( f ) IF <true clause> THEN
¥¦Ì¦b²Ä¤G½Ò²µu°Q½×¹L¡A²{¦b§Ú̪¾¹D¦p¦ó²£¥ÍºX¼Ð(Flags)¤F¡C¤]ª¾¹D¦p
¦óµ²¦XºX¼Ð»P¤Àª[±Ôzªº¹B¥Î®æ¦¡¤F¡C
ª÷«° µù²¨¡G
¤HÃþ¦]¬°¦³§à¾Ü§PÂ_ªº¯à¤O¡A©Ò¥HºÙ¬°¸Uª«¤§ÆF¡C¦Ó¹q¸£¤]¦]¬°´£¨Ñ
¤F´`§Ç¡B°j¸ô»P¤Àª[ªº±±¨î¬yµ{«ü¥O¦Ó¨Ï±o³nÅéµ{¦¡³z¥X¤@ºØ´X¥Gªñ
¦ü¤HÃþªº´¼¼z¯à¤O¡C¦ý¤d¸U§O˦]¬°ªG¡A¬O¦³´¼¼zªº¤H¤~¯à¼g¥X¦³´¼
¼z¯à¤Oªºµ{¦¡¡A¤£¬O¹q¸£¥»¨ªº¡u¤Ñ¥Í°¶¤j¡v¡C©Ò¥H¦pªG¼gµ{¦¡ªº¤H
¬O¥Õ·ö¡BÄø§÷¡A»ò¨º¼g¥Xªºµ{¦¡¥²µM¤]¤S§b¤S²Â¤F¡C
¨ÒÃD¥|¡B¤Ñ®ð³ø§i
¤U±¤§«_¸¹©w¸q»¡©úÅÞ¿è©M¤Àª[ªº¥Îªk
: weather ( nFarenheit -- )
DUP 85 >
IF ." Too hot!" DROP
ELSE 55 <
IF ." Too cold."
ELSE ." About right."
THEN
THEN
;
§A¥i¥HÁä¤J¤U¦C«ü¥O¡A¨Ã±q¹q¸£Àò±o¤@¨Ç¦^µª
90 weather Too hot!
70 weatehr About right.
32 weather Too cold.
ª÷«° µù²¨¡G
§PÂ_»P¤À§ÁªºÃö©À¡Aºc¦¨¤F±ø¥ó¤l¥y¡A³q±`¥i¥Î©ó°µ¨Ò¥~ªº³B²z©Î¤G
¿ï¤@ªº°õ¦æ¬yµ{¡C¦b FORTH ªº½Ñ¦h¤u¨ã¤¤¡A¥i¥H¥Îµ²ºc¤Æªº D-«¬¹Ï
(Dijestra-Chart)¨Ó±N¤À§Áªº¬[ºc¥±¤Æ¡C¤@¨Ó®e©ö¤F¸Ñ¦Û¤vªº»y·N
(Semantic)¬O§_¥¿½T¡A¤G¨Ó®e©öÂà´«¦¨FORTHªº±ø¥ó¤l¥y¡C¥t¥~¡A§Ú
n´£¿ôªº¬O¡A¹ï FORTH ªºµ{¦¡³]p¦Ó¨¥¡AÀ³¸Ó¶È¶qªº¤Ö¥Î
IF---ELSE---THEN¡C¦]¬°¤À§Áªº¤£·í¨Ï¥Î¡A·|¨Ïµ{¦¡ªº½ÆÂø«×´£°ª¡A
¥iŪ©Ê°§C»P³t«×ÅܺC¡C
¦^ÅU LOOP «ü¥O
¡@¦b«_¸¹©w¸q¤¤¥H¤U¦C¤§®æ¦¡¨Ï¥Î©T©w¦¸¼Æ°j¸ô«ü¥O
< nLimit nIndex > DO <repeat clause> LOOP
<°j¸ô²×È °j¸ô°_È> DO < ÂЪº±Ôz> LOOP
¡@ DO ±q°ïÅ|(Stack)¨ú¥X¨âӰѼơA³»ºÝ¼Æ¦r¬O°j°éªº¶}©l«ü¼Æ¡A²Ä¤GÓ¦r
¬O°j°é«ü¼Æªº¤W¶i¤J LOOP ¤§«á<repeat clause>³Q«Âаõ¦æ¡ALOOP ¼W¥[
«ü¼Æ±q nIndex ¦Ü nLimit ¡A·í«ü¼Æ¬Ûµ¥©ó nLimit ®É¡ALOOP µ²§ô¡A¦b
<repeat clause> ¸Ì¡A¤@Ó¯S®í¹Bºâ¤l I ¶Ç¦^¥Ø«eªº°j¸ô¯Á¤Þ¡A¨Ã±N¤§©ñ¦b
°ïÅ|(Stack)ªº³»ºÝ¡C
¥H¤U¬O¡@LOOP¡@µ²ºcªºÂ²³æ¨Ò¤l
¨ÒÃD¤¡B¦L¥X¼ªkªí
: oneRow ( nRw -- )
CR
DUP 3 .R 3 SPACES
13 1
DO I OVER * \ ¯d©³¼Æ¨Ãpºâ¼¿n
4 .R \ ±N°ïÅ|(stack)³»ºÝªº¼¿n¡A¥H®æ
LOOP ¦¡¤Æªº¤è¦¡¿é¥X
DROP ;
: Table ( -- )
CR CR 6 SPACES
13 1
DO I 4 .R LOOP \ ¦L¥X³»ºÝªºªíÀY
13 1 \ ©I¥s oneRow (¤@¦æ) 12 ¦¸
DO I oneRow
LOOP
;
Áä¤JTable¨Ï¼ªkªí¡A¥H¾ã»ôªº®æ¦¡Åã¥Ü
½m²ß¤@¡B
¬ü°ê¼ªkªí¦b 12*12 µ²§ô¡A¦ý¦b¤¤°ê©M¤½¨î°ê®a¡A¼ªkªí¦b 9*9µ²§ô¡A×§ï
TABLE ©w¸q¡A¨Ï¨äªí®æ©w¦b 1*1 ¦Ü 9*9
ª÷«° µù²¨¡G
§Ú¤@¦V¤Ï¹ïÀݥΰj¸ô¨Ó¸Ñµª°ÝÃD¡A¨Ò¦p¡Gn§A¨D 1 ¨ì 100 ªºÁ`¦X¡A
§A·|¥Î°j¸ô¥[Ó 100 ¦¸¡A¨ºn§A¨D 1 ¨ì 1»õªºÁ`¦X¡A§A¤S·Q¥Î°j¸ô
¥[Ó1»õ¦¸¡C¦n¦ü°j¸ô¬O¤£¥Î¥I¥X¥N»ùªº¡C¨ä¹ê¦pªG§A¤W¹L¤p¾Ç´N·|
¤F¸Ñ¡uº¶µ¥[¥½¶µ¼¥H¶µ¼Æ¤§¥b¡v¬°µ¥®t¯Å¼ÆªºÁ`¦X¡C³o¬O§_¨¬¥H»¡
©ú¬Y¨Ç°ÝÃD¦pªG§A¯à§ä¨ì¹Bºâ¤½¦¡ªº³q«h¡A¤j¶qÀݥΪº°j¸ô¬O¥i¥HÁ×
§Kªº¡C¥t¥~¡A¥Ñ©ó°j¸ô¥N»ù¬Æ°ª¡A©Ò¥H¦pªG«D¥Î¤£¥i¡AÀ³¶È¶qªº¨Ï°j
¸ô¤ºªº¤u§@³æ¯Â¤Æ¡A¤×¨ä¦pªG¥i¯ànÁ×§K¦b°j¸ô¨Ï¥Î¹L¦hªº¤À§Á±ø¥ó
¤l¥y¥H§K¨Ï°õ¦æ®Ä²v¤j¬°°§C¡C
²Ä ¥| ½Ò ¼Æªº¨âÓ½d¨Ò
¡@¦b³o¤@½Ò¡A¨Ï¥Î¤GÓ¬Û·í½ÆÂøªº¨Ò¤l¨Ó¡A»¡©ú Forth «ü¥Oªº²Õ¦X¹Lµ{¨Ó¸Ñ¨M
¯u¥¿ªº°ÝÃD¡A¨Ï¥Î¦b«e¤T½Ò§Ú̾ǹLªº Forth «ü¥O
¨ÒÃD¤@¡B¤é¾ä
¡@§ÚÌn°µªº¬O¦L¥X¥ô¤@¦~¥ô¤@¤ëªº¤ë¾ä¡A¨Æ¹ê¤W¥i±q1950¦~¨ì2050¦~¥ô·N¿ï¥X
¦~¡B¤ë¨Ó¦L¡A¤é´Á¨C¦æ¥H¬P´Á¤é¡A¬P´Á¤@¥H¦¹Ãþ±À¨Ó¦L¡A¦¹°ÝÃD¡A¦³³\¦h¨Æ±¡
n¦Ò¼{¡G¶|¦~¡B¤@Ӥ몺¤Ñ¼Æ¡B¨º¬P´Áªº¨º¤@¤Ñ¬O¬YÓ¤@¤ëªº²Ä¤@¤Ñ¡Apºâ¦~
¡B¤ë¡B¤é¡A¥H(YYYY)ªí¦~¡B(MM)ªí¤ë¡B(DD)ªí¤é¡A§Ú̩ҨD¤§¦~¤ë¤é¥H
(DD MM YYYY)ªí¥Ü¥X¡A¥Î 7°£¥H¦~¡B¤ë¡B¤é¤§¾l¼Æ´N¬O¬P´Á´X¤F¡C
¥H1950,1,1¬°¤é¾äªº 0 ¤é¡Aè¦n¬O Sunday ¡A4¦~¦³ 1461¤Ñ¡A¤@Ó¶|¦~¦³366
¤Ñ¡A¥ô¤@¦~ªº¦~¤ë¤é¡A¥i¥H¥Ñ YEAR pºâ¥X¡A¨Ã¦s©óÅܼÆ(Variable)JULIAN¡A
¦pªG³o¤@¦~¬O¶|¦~¡AÅܼÆ(Variable) LEAP ªºÈ¬° 1¡A§_«h¬° 0 ¡C
¡@¦b¤@¦~¸Ì¨CӤ몺²Ä¤@¤Ñ¬°¦¹¤ëªº²Ä´X¤Ñ«ÜÃøpºâ¡A¦b«ü¥O FIRST ¸Ì³B²z¡F
FIRST ¦C¥X¤ë¥÷¤§¼Æ¦r(1 ¥Nªí 1¤ë¡A2 ¥Nªí 2¤ëµ¥)¨Ã¶Ç¦^ 1¦~¤§¤¤±q 1¤ë
1¤é¦Ü¦¹¤ëªº²Ä¤@¤Ñ¤§¤Ñ¼Æ¡A2¤ë1¤é¬O¤@¦~ªº²Ä31¤Ñ¡A3¤ë1¤é¤£¬O²Ä59¤Ñ¡A´N
¬O²Ä60¤Ñ¡A¨Ì¾Ú¶|¦~¬O§_¦Ó©w¡A4¤ë1¤é¬O²Ä90©Î91¤Ñ¡A¥H¦¹Ãþ±À¡A¤@Ó¾A¤Áªº
¤½¦¡¡A¦bFIRST ¸Ì³Q¥Î¨Ópºâ 5¤ë 1¤é©M¨ä«áªº¥þ³¡¤ë¥÷¡C
¡@«ü¥O DAY ±q°ïÅ|(Stack)¤¤¨ú¥X DD¡BMM ¤Î YYYY¡A¨Ã±N¸Ó¤Ñ¦Û 1950¦~°_ªºÁ`
¤Ñ¼Æ©ñ¦^°ïÅ|(Stack)¡AÁ`¤Ñ¼Æ³Q¨Ï¥Î¨Ó°£¥H 7 ªº¾l¼Æ¨M©w¦¹¤é¬°¬P´Á´X¡A¬P
´Á¤Ñ¬O¥Î 0 ¥Nªí¡A¬P´Á¤»¬O 6 ¡C
.DAY ¦L¥X¤@Ӥ몺¤ë¾ä¡A¥Ñ°ïÅ|(Stack)¤Wªº¤ë¥÷©Ò«ü©w¡A¨Ã¥H¬P´Á±Æ¦C¤§
ªí®æ§Î¦¡¦L¥X¡A¦¹®æ¦¡¥[¤WÃ䮨¨ÓÅã¥Ü¡A¥H«ü¥O MONTH «ü¥X¤ë¥÷¦WºÙ¡B¤é´Á
¦WºÙ¡A¨Ò¦pÁä¤J¡G
1992 YEAR 7 MONTH
¡@·|Åã¥Ü 1992¦~ªº 7¤ë¥÷ªº¤ë¾ä¡A«ü¥O CALENDER ¨ú¥N¥ô¤@¦~ªº 12Ó¤ë¥÷ªº§¹
¾ã¤ë¾ä¡A¥Ñ°ïÅ|(Stack)¤W¦~ªº¼Æ¦r«ü©w¡A§AµLªk¦b¿Ã¹õ¤W¬Ý¨ì¥þ³¡¡A¦ý§A¥i
¥H¥Î¦Lªí¾÷¦L¥X¨Ó¡C
1992 YEAR CALENDAR
VARIABLE JULIAN \ ¥Î¨Ó¦s©ñ¦Û 1950¦~ 1¤ë 1¤é°_¨ì¤µ¦~²Ä¤@¤Ñ
©Ò¸g¹Lªº¤Ñ¼Æ
VARIABLE LEAP \ ¥Î¨Ó¦s©ñ¬O§_¬°¶|¦~
1461 CONSTANT 4YEARS \ ¥]§t¶|¦~¡B¥|¦~ªºÁ`¤Ñ¼Æ
: YEAR ( YEAR --, pºâ Julian »P¶|¦~¬O§_¬° 1 )
1949 - 4YEARS 4 */MOD \ ¦Û 1949¦~ 1¤ë 1¤é°_¸g¹L¤F´X¤Ñ
365 - JULIAN ! \ 0 ¬° 1/1/1950 ªº²Ä¤@¤Ñ
3 = \ Y¾l¼Æ¬° 3 «h¬°¶|¦~
IF 1 LEAP ! \ ¶|¦~
ELSE 0 LEAP ! \ ´¶³q¦~
THEN ;
ª÷«° µù²¨¡G¡@
¤W¦C IF 1 LEAP !
ELSE 0 LEAP !
THEN ; ³¡¥÷¥i¥H§ï¥Î ABS LEAP! ¦Ó¥h±¼§PÂ_¦¡¡C
: FIRST ( MONTH -- pºâ¨C¤ëªº²Ä¤@¤Ñ¬°¥»¦~ªº²Ä´X¤Ñ )
DUP 1 =
IF DROP 0 \ 0 ¬° 1¤ë 1¤é
ELSE DUP 2 =
IF DROP 31 \ 31 ¬° 2¤ë 1¤é
ELSE DUP 3 =
IF 59 LEAP @ 2 \ 3¤ë 1¤é¥i ¬° 59¤Ñ©Î 60¤Ñ
ELSE 4 - 30624 1000 */
90 + LEAP @ + \ 4¤ë¥H«á¨CӤ뼥H 30.624¤Ñ
THEN
THEN
THEN
;
ª÷«° µù²¨¡G
¼¥H 30624 ªº¾ã¼Æ¿nè¦n¯à¨Ï¤C¡B¤K¨â¤ë§¡¬°31¤Ñ¡A¦¹¬°¥»¨ÒÃD³Ì
ºë±m¤§³B¡C0.624 ¬°5¤Ñ°£¥H¤KÓ¤ë´î¤Q¤@¤ë¬°¤p¤ë¦Ó±o¨Ó¡C
: DAY ( DD MM YYYY -- JULIAN-DAY )
YEAR \ pºâ JULIAN »P¶|¦~
FIRST + 1- \ pºâ¤µ¤Ñ¬O¤µ¦~ªº²Ä´X¤Ñ
JULIAN @ + \ pºâ¥Ñ 1950¦~ 1¤ë 1¤é°_¨ì¤µ¤Ñ
; ¤@¦@¹L¤F´X¤Ñ
: STARS 0 DO 42 EMIT LOOP ; \ " * " ªº ASCII ½X¬° 42
: header ( n -- ) \ ¦L¥XªíÀY
cr cr 26 stars space
case 1 of ." January " endof
2 of ." February " endof
3 of ." March " endof
4 of ." April " endof
5 of ." May " endof
6 of ." June " endof
7 of ." July " endof
8 of ." August " endof
9 of ." September" endof
10 of ." October " endof
11 of ." November " endof
12 of ." December " endof
DROP
endcase
space 27 stars cr cr
." SUN MON TUE WED THU FRI SAT"
cr cr \ ¥H¤U¦L¥X¥¿½T¶g¡B¤é´Á¤º®e
;
: BLANKS ( MONTH -- ) \¡@±N¤£¬O¦¹¤ë¥÷ªº¤é¤l¸õ¹L
FIRST JULIAN @ + \¡@pºâ¥Ñ 1950¦~ 1¤ë 1¤é¨ì³o
Ó¤ë¹L¤F´X¤Ñ
7 MOD 8 * SPACES ; \ ¦pªG¤£¬O¬P´Á¤Ñ¸õ¹L«e¤@Ó¤ë
¦b¥»¶gªº¾l§À¤Ñ¼Æ
: .DAYS ( MONTH -- ) \ ¦L¥X¥»¤ëªº¤Ñ¼Æ¡A¥H¶gªº®æ¦¡¦L¥X
DUP FIRST \ ¦¹¤ë¥÷¤§²Ä¤@¤Ñªº¦~¤Ñ¼Æ
SWAP 1 + FIRST \ ¤U¤ë¥÷¤§²Ä¤@¤Ñªº¦~¤Ñ¼Æ
OVER - 0 \ ¥H°j¸ô¦L¥X¼Æ©ó¥»¤ëªº¤Ñ¼Æ
DO I OVER +
JULIAN @ + 7 MOD \ pºâ¬O¬P´Á´X
0= IF CR THEN \ ¦pªG¬O¬P´Á¤Ñ¸õ¦Ü¤U¤@¦æªº°_ÀY¦C¦L
I 1 + 8 U.R \¡@¨C¤@¤Ñ¦û¤KÓ®æ¤l¾a¥k¦L¥X
LOOP
DROP ; \¡@±N¦h¥Xªº¤ë¥÷ªº²Ä¤@¤Ñ±q°ïÅ|³»ºÝ
§R°£
: MONTH ( N -- ) \¡@¦L¥X¤@Ӥ뤧¤ë¾ä
DUP
HEADER DUP BLANKS \¡@¦LªíÀY
.DAYS ; \¡@¦L¥»¤ëªº¤Ñ¼Æ
: CALENDAR ( YEAR --- ) \¡@¦L¸Ó¦~ªº¥þ¦~¤ë¾ä
YEAR \¡@pºâ JULIAN ©M¶|¦~
13 1 DO¡@I MONTH LOOP \ ¦L12Ӥ뤧¤ë¾ä
CR CR 64 STARS ; \ ¦L¥X³Ì«á¤§Ã䮨
ª÷«° µù²¨¡G
¤@Ó¦nªºFORTHµ{¦¡¡AŪ°_¨ÓÀ³¸Ó¦ü´²¤åªº¬yºZ¡A¸Ö¯ëªº¬ü¡C
¦pªGn¦C¦L¥X¤é¾ä¥´¤J¡G
PRINT 1992 YEAR CALENDAR
PRINT ¬O¤@Ó¯S§OªºF-PC«ü¥O¡A·|§â¿Ã¹õ¿é¥XÂà´«¨ì¦Lªíªí¾÷¿é¥X
ª÷«° µù²¨¡G
¤@Ó¦nªºµ{¦¡³]p®a¡A·|«Ü²M·¡¦Û¤v©Ò±¹ïªºÃD¥Ø¤¤¦³¨º´XÓn¬ð¯}
ªº§xÃø¡A¨Ã¤ÀªR¦UºØ¥i¯à¸Ñ¨M¦¹°ÝÃDªº¤è®×¡A¨ä§Q¹ú±o¥¢¸Ô¥[¦Ò¼{«á
¡A¤~°Ê¤â¶}©l¼¶¼gµ{¦¡¡C¨Ã«D¬O¤@¸£½k¶î¡A¨â²´µo§b¡A´N¯à°÷Â\¥°Ý
ÃDªº¡C¦b¦¹ÃD¤¤¥i¸Ô¥[«~¨ý¨ä«ä¯Á°ÝÃDªº¤è¦¡»P²¼ä©ú§Öªºµ{¦¡¼g§@
·®æ¡C¦pªG¤@¤U¤l¬Ý¤£À´¨º´N¦h©CÄZ´X¦¸¡A¥H¤£©È®À§éªº¤ß±µ¨ü¦ÒÅç
»P¿iÁå¡AÅé·|¨ü¤@¤U FORTH ·M¤½²¾¤sªººë¯«¡C
½m²ß¤@¡B ¯u¥¿¤§ Julian ¤é´Á
¡@¦b¤W±ªº¨Ò¤l¡A§ÚÌ¥H1950¡A1¡A1¬° 0¤Ñ¨Ópºâ¦~,¤ë,¤é³o¬O¦]¬°§Ų́ϥΤ@
Ó¾ã¼Æ¨Ó¥Nªí¤é´Á¡A¦Ó¨ä½d³ò¨ü¦b-32768¨ì32767¡A¤j¬ù¬O¥H¥]§t89¦~¡A¯u
¥¿¤§ Julian ¦~¤ë¤é¡A¶}©l©ó¦è¤¸«e 4713¦~ 1¤ë 1¤é¬O¥@¬Éªº¶}©l(¦è¤èªºÆ[
©À)¡Anªí¥Ü¦p¦¹¤j½d³òªº¦~¤ë¤é¡A§ÚÌ¥²¶·¨Ï¥ÎÂù¿ºë±K«×¾ã¼Æ¡A
-2,294,967,295¦Ü 2,294,967,294¤§½d³ò¡AJulian ¤é´Á¤~°÷¥Î¡C
: JULIAN-DATE ( DD MM YYYY -- d, ¥H32¦ì¤¸¾ã¼Æ¨Ópºâ Julian ªºÈ )
>R \¡@¦sYYYY©ó¦^ªð°ïÅ|(return stack)
DUP 9 + 12 / \ 1¤ë¡B2¤ë¬°0¡A¨ä¾l¬°1
R@ + 7 * 4 / NEGATE \¡@¨C¤@¦~¨ú¥X1.75¤Ñ
\ 365.25 = 367-1.75
OVER 9 + 12 / NEGATE
R@ +
100 / 1 + 3 * 4 / - \ ¦U¥@¬ö²£¥Í¤§¶|¦~
SWAP 275 9 */ \ ³oӤ뤧«e¡A¥»¦~ªº¤Ñ¼Æ
+ + \¡@¥[DD¡A¬°¥»¤é¤§¦~¤Ñ¼Æ
S>D 1.721029 D+ \ ¥[¦è¤¸¡A¤¸¦~¤@¤ë¤@ªº Julian ¤é¼Æ
367 R> UM* D+ \¡@¥[¤W¨ì¤µ¦~ªº¤é¼Æ
;
¦³´XÓ³B²zÂù¿ºë±K«×¼Æªº«ü¥O
S>D ( n -- d ) \ ±N¤@Ó¾ã¼ÆÂX¤j¬°Âù¿ºë±K«×¾ã¼Æ
D+ ( d1 d2 -- dSum ) \ ±N 2ÓÂù¿ºë±K«×¼Æ¬Û¥[¦b
°ïÅ|(stack)ªº³»ºÝ
UM* ( n1 n2 -- dProduct ) \ 2Ó¾ã¼Æ¬Û¼¨Ã¶Ç¦^¤@Ó
Âù¿ºë±K«×ªº¾ã¼Æ¼¿n
Forth ¦³¥t¤@Ó°ïÅ|(Stack)¡A°µ¬°©I¥s°Æµ{¦¡¤Îªð¦^¦ì¸m¤§«O¦s¡AºÙ¬°¦^ªð
°ïÅ|(return stack)¡A¨ä¥\¯à¹ïªì¾Çªº¨Ï¥ÎªÌ¬OÁôÂ꺦ӨϥΪ̤]¤£¶·¶O¯«¥h
¨Ï¥Î¥¦¡CµM¦Ó¦^ªð°ïÅ|(return stack)³Q¥Î¦b¼È¦s°Ñ¼Æ°ïÅ|(Parameter Stack
)¤W¤§¼Æ¬OºØ±`¨£ªº§Þ¥©¡A¨Ã¥B¼È®É±N¨ä¦b¨âÓ°ïÅ|(stack)¶¡²¾°Ê¡A±N¼Æ¥Ø¦b
°Ñ¼Æ°ïÅ|(Parameter Stack)©M¦^ªð°ïÅ|(return stack) ¤§¶¡²¾°Êªº Forth
«ü¥O¬O¡G
>R ( n -- ) \ ¨ú¥X°Ñ¼Æ°ïÅ|(Parameter Stack)³»ºÝ¤§¼Æ
¡A±N¥¦²¾¨ì¦^ªð°ïÅ|(return stack)ªº³»ºÝ
R> ( -- n ) \ ¨ú¥X¦^ªð°ïÅ|(return stack)³»ºÝ¤§¼Æ
¡A±N¥¦©ñ¦^°Ñ¼Æ°ïÅ|(Parameter Stack)
R@ ( -- n ) \ ½Æ»s¦^ªð°ïÅ|(return stack)³»ºÝ¤§¼Æ
©ñ¨ì°Ñ¼Æ°ïÅ|(Parameter Stack)
ª÷«° µù²¨¡G
½Ð¤p¤ßªº¨Ï¥Î°jªð°ïÅ|
(¤@)>R»PR>¥²¶·n¦¨¹ïªº¨Ï¥Î
(¤G)¦b½sĶ¼Ò¦¡¤U¤~¯à¨Ï¥Î¡C
¨ÒÃD¤G¡B ¥Í©Rªº¹CÀ¸
¥Í©R¹CÀ¸¬O¤@Ó¦³½ìªº¹q¸£µ{¦¡¥i¥H¦b¹q¸£ªº°O¾ÐÅé¡A¼ÒÀÀ¸sÅéªÀ·|¤§¦¨ªø©M
°I±Ñ¡A°²³]¹q¸£ªº°O¾ÐÅé¬O±i¥±¹Ï¡A¨C¤@Ó°O¾ÐÅ餣¬OªÅªº´N¬O¦³¤@ӥͩR
Åé¡A¤@Ó¦ì¸m¦³µL¥Í©R²{¶H¡A³£¨ú¨M©ó¾Fªñ¦ì¸m¤§¥Í©RÅé¡A¥Í¬¡¹CÀ¸¤§³W«h¡G
¡@ 1.¡@¦pªG¤@Ó¦ì¸mªº8Ó¾F©~¥]§t3ӥͩRÅé,´N¥i¥H²£¥Í¤@Ó·s¥Í©RÅé¡C
2. ¦pªG8Ó¾F©~¥]§t¤§¥Í©RÅé¡A¤Ö©ó2өΦh¹L3Ó¡A«h¦¹¥Í©RÅ馺¤`¡C
¥Í©RÅ馺¤`¡A¦]¬°©t³æ(¾F©~<2)©Î¾ÖÀ½(¾F©~>3)¡A·í¦³3Ó¬¡¾F©~¡A°²©w¤@Ó
¤÷¿Ë¡B¤@Ó¥À¿Ë¡B¤@Óªª®v¡B¤@Ó·s¥Í©R·|²£¥Í¡C
¡@¥H¹q¸£¿Ã¹õ¬°¹Ï¡A¥]§t 25*80 ¤§¦ì¸m¡A¤@Ó # ¥Nªí¦b¤@Ó¦ì¸m¤Wªº¥Í©RÅé¡A
¤@Ӫťիü¥X¦b¨ºÓ¦ì¸m¨S¦³¥Í©R¡A¦b°O¾ÐÅé¸Ì¤@±i¹Ï°t¦³2048 ¦ì¤¸²Õ.¥u¦³
1920 Ó¦ì¸m(24*80)¡A¥i¦b¿Ã¹õ¤WÅã¥Ü¡A°O¾Ð°Ï¬O¥H 80 Ó³sÄòbytes ¾F±µ
80 Ó³sÄò¦ì¤¸²Õ¤§§Î¦¡±Æ¦C¡A©Ò¥H N ¦ì¸mªº¾F©~¦ì¸m¬O¬ON+1¡BN-1¡BN+79¡B
N-79¡BN+80¡BN-80¡BN+81¡BN-81 ¦Ó©Ò¦³¼Æ¦r³£¬O 2048¤§¾l¼Æ¥i¥Î 2047 AND
¤@ӼƨÓÀò±o°£¥H 2048¤§¾l¼Æ¡C
¡@°O¾Ð°Ï¥i±q PAD ¤§ 2048bytes «ü¬£¡APAD «ü¥X¨Ï¥ÎªÌ¯à¥Î¤§¦Û¥Ñ°O¾ÐÅéªÅ¶¡
¡A¨Æ¹ê¤W§ÚÌ»Ýn 2Ó 2048¦ì¤¸²Õ°Ï°ì¡A²Ä¤@°Ï¶J¦s¥Í©RÅ餧¹Ïªí¡A²Ä¤G°Ï
¶J¦s¤U¤@¥N¥Í©RÅ餧¤À§Gª¬ªp¡A·ípºâ¤@¥N¤§«á¡A¦b²Ä¤G°Ï¤§¹Ïªí·|½Æ¦L¦Ü²Ä
¤@°Ï¡C
ª÷«° µù²¨¡G
¦pªGn¨D°£¥H 2 ªº´X¦¸¤èªº¾l¼Æ¡A¦b FORTH ªº§Þ¥©¤¤¡A§ÚÌ·|¨Ï¥Î
¦ì¤¸ªº¸nÂ_(MASK)¨Ó¨D±o¡A¦]¬°¤@Ó°£ªk«ü¥Oªº³t«×¥N»ùÄ묹¤Ó¤j¤F
¡A¥H 8086 ¬°¨Ò°£ªk«ü¥On 192 Ó CPU ®É¯ß¦ÓÅÞ¿è«ü¥O¶È»Ý 4Ó®É
¯ß¡C·íµM¡A³oºØÃþ¦ü²Õ¦X»y¨¥ªº¬DçºA«×¡A¤]¬O FORTH ¦b³t«×¤Wª½
¹G²Õ¦X»y¨¥ªºì¦]¡C
35 CONSTANT white \ ASCII #
32 CONSTANT black \ ªÅ¥Õ
: address1 ( n -- addr ) \¡@¥Í©RÅ餧²Ä¤@°Ï
2047 AND \¡@N °£¥H 2048 ¤§¾l¼Æ
PAD + \ ¥[¦ì²¾¦ÜPAD
;
: address2 ( n -- addr ) \ µ¹¤U¤@¥N¤§²Ä¤G°Ï
address1 \ ¥[2048¦Üaddr1
2048 + \ ¥Ñ addr1 ³B²z¾l¼Æªº°ÝÃD
;
: neighbors ( -- )
2048 0 \ ¼fµø¥þ³¡¹Ïªí
DO I 1 + address1 c@ \ ¦b8Ó¾F©~¤º¥[¥Í©RÅé¡B¥kÃä
I 1 - address1 c@ + \ ¥ªÃä
I 79 + address1 c@ + \ ¥ª¤U¨¤
I 79 - address1 c@ + \ ¥k¤W¨¤
I 80 + address1 c@ + \ ¤UÃä
I 80 - address1 c@ + \ ¤WÃä
I 81 + address1 c@ + \ ¥k¤U¨¤
I 81 - address1 c@ + \ ¥ª¤W¨¤
I address1 c@ \ ¥Í©RÅé¦b³o¤@¦ì¸m¶Ü?
IF DUP 2 = \ ¬Oªº¡A2©Î3Ó¾F©~?
SWAP 3 = OR \ ¦pªG¬O 2¦Ü 3Ó¾F©~«h¬¡¤U¨Ó
IF 1 ELSE 0 THEN \ ¤Ó¾ÖÀ½«h¦º±¼
ELSE 3 = \ ªÅªº¦ì¸m
IF 1 ELSE 0 THEN
\ ¦pªG3ӥͩR¾F©~µ¹¤©¥X¥Í
THEN
I address2 c! \ ¶J¦s¤U¤@¥N
LOOP
;
: refresh ( -- ) \ ½Æ¦L¤U¤@¥N¨ì³o¤@¥N
PAD 2048 + PAD 2048 CMOVE
;
: display ( -- ) \ ¦b¿Ã¹õÅã¥Ü³o¤@¥N¹Ïªí
0 0 AT \ ²¾°Ê´å¼Ð¦Ü¥ª¤W¨¤
PAD 1920 0 \ ¼fµø1920¦ì¸m
DO DUP C@ \ ¥Í©RÅé¦b³o?
IF WHITE ELSE BLACK THEN \ Åã¥Ü¥¦
EMIT
1 + \ ¤U¤@Ó¦ì¸m
LOOP DROP
;
: init-map ( addr -- ) \ ±q¬Y¤@°O¾ÐÅé²£¥Í¤@ӹϪí
2048 0 \ ª`·N2048bytes°Ï
DO DUP C@ 1 AND \ ¨Ï¥Î³Ì¤p¦³®Ä¦ì¤¸¨ÓÀˬd
IF 1 ELSE 0 THEN \ «ü¬£¥Í©RÅé
I address1 C! \ ¦b§Ú̪º³o¤@¥N¹Ïªí¸Ì
1 +
LOOP DROP
;
: generations ( n -- ) \ «ÂÐN¥N
0 DO neighbors \ pºâ¤U¤@¥N
refresh \ ½Æ¦L¦Ü³o¤@¥N¹Ï
display \ ¨ÃÅã¥Ü¥¦
LOOP
;
slow \ Åã¥Ü¨C¤@Ó¤å¦r¡A¨Ï¥Î BIOS ªº¤¤Â_¨ÓÅã¥Ü
statoff \ ÁôÂêíÀY¡A±N F-PC ªºª¬ºAÅã¥Ü¼È®ÉÃö±¼
500 init-map \ ¶}©l¹Ïªí¡A¥Ñ°O¾ÐÅ餤¥ô¿ï¤@¶ô°O¾ÐÅé¡A·í
²Ä¤@¥Nªº¥Í©R¨Ó·½
10 generations \ °µ10¥N
¦b¦¹¨Ò¤¤¤¶²Ð¤§Forth·s«ü¥O
CONSTANT ( n -- ) \ ©w¸q·s«ü¥O¡A·í°õ
¦æ®É¶Ç¦^¨ìN
C@ ( addr -- char) \ ±q¤@Ó°O¾ÐÅé¦ì¸m¨ú¤@Óbyte
C! ( char addr --) \ ¶J¦s¤@Óbyet¦Ü°O¾ÐÅé¦ì¸m
CMOVE ( a1 a2 n -- ) \ ±q°O¾ÐÅé¦ì§}a1½Æ»s¡ANÓbytes¦Ü
°O¾ÐÅé¦ì§}a2
PAD ( -- addr ) \ °e¦^¨ì¤@ӦۥѰO¾ÐÅé½w½Ä°Ïªº¦ì§}
AND ( n1 n2 -- n3 ) \ ³v¦ì¤¸AND 2Ó 16¦ì¤¸¼Æ¦r
OR ( n1 n2 -- n3 ) \ ³v¦ì¤¸OR 2Ó 16¦ì¤¸¼Æ¦r
½m²ß¤G¡B
·Q¤@Ó§A³ß³ß·Rªº´Ñ½L¹CÀ¸¡A¨Ã¦Ò¼{¹q¸£¤Æªº¥i¯à©Ê¡A¤]³\¥þ½L¹q¸£¤Æ«D±`§x
Ãø¡A¦ý¬O§AÀ³¸Ó§ä¥X¤@¨Ç¤èªk¨Ï¥¦³¡¥÷¹q¸£¤Æ¡A·Q¨Ç¤èªk¨Ï¹q¸£¯àÀ°§U§A´ÑÃÀ
¶i¨B¡C(¤B³¯³Õ¤h¥»¨´N´¿¥Î FORTH ¼g¤F¤@Ó³ò´Ñµ{¦¡)
ª÷«° µù²¨¡G
±N FORTH ¬Ý¦¨¤@ÓÂù°ïÅ|µ²ºcªºµêÀÀ CPU ¡A«h FORTH ªº°ò¥»«ü
¥O¡A«K¥i¥H¬Ý¦¨¬O¦¹µêÀÀ CPUªº¾÷¾¹«ü¥O(¨ä¹ê¡A¦b¯u¥¿ªº FORTH
µwÅé CPU ¤W¡A©Ò¦³ªº FORTH «ü¥O§¡¬O¥HµwÅé¶¥¼hª½±µ°õ¦æ¡A¦b¨º
ºØ CPU ¤W¨S¦³²Õ¦X»y¡A¦]¬° FORTH ´N¬O³Ì§C¶¥ªº¾÷¾¹»y¨¥¤F)¡A
¦b FORTH ªºµêÀÀ CPU ¤W¡C
CONSTANT ¥i¥H¬Ý¦¨ push Constant
VARIABLE ¥i¥H¬Ý¦¨ push Address of Variable
¤]´N¬O¸ü¤JÅܼƪº¦³®Ä¦ì§}
¦b FORTH ¤¤©Ò¦³¹ïÅܼƪº¾Þ§@§¡¦³²Î¤@©Ê¡Aµ¹¤©¤@¦a§}¦b°ïÅ|ªº
³»ºÝ¡An¥[¡B´î¡B¼¡B°£¡An¦s¡Bn¨ú¡An¤K¦ì¤¸¡Bn¤Q¤»¦ì¤¸¡B
n¤T¤Q¤G¦ì¤¸¡A¬Ò¥Ñ¨Ï¥ÎªÌ¦Û¤v¿ï°t¨Ï¥Î¡Aè¶}©l·|¤£²ßºD¡A¦ý¤[
¤F¡A¤Ï¦Ó·|³ßÅw³oºØÂ²¼ä¦³¤Oªºªí¹F¤è¦¡¡C
²Ä ¤ ½Ò ¼Æ¦rªº§Þ¥©
¨ÒÃD¤@¡B¥¿©¶©M¾l©¶
¤T¨¤¨ç¼Æ¤§ SIN¡BCOS ¤j³£¦bø¹Ï¨ç¼Æ¥\¯à¸Ì¹J¨ì¡A¦bµe¶ê©·¤Î¨ä¥¦¥Î³~¤W¬O
±`±`¥Î¨ìªº¡C³q±`¨Ï¥Î¯BÂI¼Æ¦r¨Ó°µ¬°·Ç½T©Ê©M¬¡°Ê©Ê½d³ò¤§pºâ¡AµM¦Ó¹ï¦b
¼Æ¦r¨t²Î¸Ìªº»s¹Ï¹Lµ{¤¤¾ã¼Æ½d³ò -32678¦Ü 32767 ¤jP¤w°÷¥Î¡A§ÚÌÀ³¸Ó¾Ç
²ß¨Ï¥Î¤Q¤»¦ì¤¸ªº¾ã¼Æ¨Ópºâ SIN ¤Î COS¡C
¤T¨¤¨ç¼Æªº SIN ©Î COS ªºÈ°ì¤¶©ó -1.0¤Î+1.0 ¶¡¡A§Ú̥ΤQ¶i¦ì¾ã¼Æ
10000¥Nªí 1.0 ¨Ópºâ¡A¨Ï SIN©MCOS ¯à¥H³Ì¤jªººë±K«×ªí¥X¡C
pi ¬O 3.1416 ¡A¦Ó90«×¨¤¥Ñ15708 ¨ú¥N¡A¨¤«×¥ýÂà´«¦¨ -90«×¦Ü+90 «×¶¡¤§
½d³ò¡AµM«á¦A¥Ñ-15708¦Ü+15708 ¤§¶¡ªº¼Æ´«ºâ¦¨Ñy«×¡A¥ÑÑy«×pºâ SIN¡BCON
¤§È¡C
¡@ Sin©MCos¤§pºâºë·Ç¨ì1/10000 ¡A¦¹ºtºâªkº¥ý¥Ñ John Bumgarner µoªí©ó
Forth Dimension ²Ä¥|¨÷²Ä¤@´Á²Ä¤C¶¡C
31415 CONSTANT PI
10000 CONSTANT 10K \ ¤ñ¨Ò±`¼Æ
VARIABLE XS \ ¨¤«×¶qªº¥¤è
: KN ( n1 n2 -- n3, n3=10000-n1*x*x/n2 ¦b¦¹³B x ªí¥Ü¨¤«× )
XS @ SWAP / \ x*x/n2
NEGATE 10K */ \ -n1*x*x/n2
10K + \ 10000-n1*x*x/n2
;
: (SIN) ( x -- sine*10K, x ¬°Ñy«×¼¥H 10kªºÈ )
DUP DUP 10K */ \ ¥H10K¬°X*X¤§¤ñ¨Ò
XS ! \ ±N¤§¦s¤J XS
10K 72 KN \ ³Ì«á¶µ
42 KN 20 KN 6 KN \ ¶µ3¡A2©M1
10 K */ \ ¼ X
;
: (COS) ( x -- cosine*10K, x ¬°Ñy«×¼¥H 10kªºÈ )
DUP 10K */ XS ! \ pºâ¨Ã¦s¤JX*X
10K 56 KN 30 KN 12 KN 2 KN \ ¼ÆÓÂX¤j§Î¦¡
;
: SIN ( degree -- sine*10K )
PI 180 */ \ ¡@´«ºâ¬°Ñy«×
(SIN) \ ¡@pºâ Sin ªºÈ
;
: COS ( degree -- cosine*10K )
PI 180 */ \ ¡@pºâ cos ªºÈ
(COS)
;
ª÷«° µù²¨¡G
¦b¦¹½Ò¤¤¡A§ÚÌ·|µo²{ FORTH ªº¡u¾ã¼Æõ¾Ç¡v¡A«D±`¬ð¥Xªºn¨D
¥H¾ã¼Æ¨Ó¸Ñ¨M¨ä¥L»y¨¥¨Ï¥Î¹ê¼Æ¤~¯à¸Ñ¨Mªº°ÝÃD¡C¤@¨Ó¬O FORTH
»{¬°nµo´§µwÅé CPU ªº¯u¹ê¥\¯à¡C¦pªG¡A¨S¦³¹ê¼Æªº¯BÂI¹Bºâ¾¹
¡A´N¤£¥Î¹ê¼Æ¡A¦Ó°ª«×§Þ¥©¨Óµo´§¾ã¼Æªº¥\¯à¡C³o¤@ÂI¤]»¡©ú¤F¬°
¤°»ò¤HºÙ FORTH ¬OÄÝ©ó¤Ñ¤~ªº»y¨¥¡A¦]¬°n¡u¦h«ä¡v¤D¤~¯à¸Ñ¨M
°ÝÃD°Ú¡I
¨Ó´ú¸Õ¦¹µ{¦¡¡AÁä¤J:
90 SIN . \ 9999 ¥Î¾ã¼ÆÁö¤£§¹¥þºë·Ç¡A¦ý¤]
«Ü°÷¥Î¤F
45 SIN . \ 7070
30 SIN . \ 5000
0 SIN . \ 0
90 COS . \ 0
45 COS . \ 7071
0 COS . \ 10000
¨ÒÃD¤G¡B ¶Ã¼Æ
¶Ã¼Æ³q±`¨Ï¥Î¦b¹q¸£¼ÒÀÀ©M¹q¸£¹CÀ¸¡C
¤U¦C¶Ã¼Æ²£¥Í¾¹¬O¥Z¸ü©ó Leo Brodie ªº Starting Forth ¤@®Ñ¤¤¡C
VARIABLE RND \ ºØ¤l
HERE RND ! \ ªìȤƺؤl
: RANDOM ( -- n, a random number within 0 to 65536 )
RND @ 31421 * \ RND*31421
6927 + \ RND*31421+6926, ¦A¨D°£¥H 65536 ¤§¾l¼Æ
DUP RND ! \ §ó·sºØ¤l¡A¨Ã¦b°ïÅ|³»ºÝ¯d¤U·s¶Ã¼Æ
;
: CHOOSE ( n1 -- n2, a random number within 0 to n1 )
RANDOM UM* \ n1*random ±o¤@ 32¦ì¤¸ªºÈ
SWAP DROP \ ©ß±ó§Cªº 16¦ì¤¸È
; \ ¨Æ¹ê¤Wµ¥©ó¬O°£¥H 65536 ªº°Ó(¦V¥k
²¾¦ì 16¦ì¤¸)
Áä¤J¥H¤U¼ÆÓ´ú¸Õµ{¦¡¡A¬Ý¬Ý¿é¥Xªºµ²ªG¡C
100 CHOOSE .
100 CHOOSE .
100 CHOOSE .
µ²ªG³QÀH¾÷¤À°t¦b 0 ©M 99 ¤§¶¡ªº¾ã¼Æ³Q²£¥Í¡C
½m²ß¤@¡B
°O±o¤¤°ê©¯¹B»æ¶Ü?¼g¤@Ó¸ê®Æ®wµ{¦¡¿ï¾Ü¤@ÓÀH·Nªº©¯¹Bµüµ¹¤©©¯¹B»æ¡A·í
µM§A¥ýn«Ø¥ß¦¹¸ê®Æ®w¡C
ª÷«° ´£¥Ü¡G
«Ø¥ß¤@Ó¦r¦ê©Ò²Õ¦¨ªº°}¦C¡A¦A¥H¶Ã¼Æ·í¯Á¤Þ¨ú¥X¦r¦êªº¤º®e¡C
ª÷«° µù²¨¡G
¦b¸ê°T¬ì¾Çªº»â°ì¤¤¡A¶Ã¼Æªº²£¥Í¬O¤@ªù»P¼Æ¾Ç¬ÛÃöªº¤j¾Ç°Ý¡C¦p
ªG²£¥Íªº¤À§G¤£¦X¹w´Áªºµ²ªG´N¤£ºâ¬O¤@Ó¡u¦X®æ¡vªº¶Ã¼Æ²£¥Íµ{
¦¡¡C¤@¯ë¥i¥Î»X¦a¥dùªk¨ÓÆ[¹î¨ä¿é¥X¤À§Gªº±¡§Î¡C¦pªGnÀ³¥Î¦b
¹q¸£¼ÒÀÀªº»â°ì¤¤¡A«h§ó¬OÁ¿¨s¶Ã¼Æªº²£¥Í¤èµ{¦¡¡C·íµM¡A¦pªG¬Ý
©x¥»¨¹ï¾÷²v²Îpªºª¾ÃÑ¡u¤£ª¾©Ò¤ª¡v¡A¨º´N®MÓ§O¤Hªº¤½¦¡¥Î¦n
¤F¡C¤Ï¥¿¡u¦³¡v±o¡u§Û¡v¤ñ¡u¨S±o¥Î¡vn¦n¦h¤F¡C
¨ÒÃD¤T¡B ¥¤è®Ú
N+1 ªº¥¤è¬Ûµ¥©ó Nªº¥¤è»P 2N+1ªºÁ`©M¡A±q 0 ¥[ 1,3,5,7...µ¥¡Aª½¨ìÁ`
¼Æ¤j©ó§An¨D®Úªº¾ã¼Æ¡A§A©Ò°±¤î®Éªº¼Æ´N¬O¥¤è®Ú
: SQRT ( n1 -- n2, n2**2<=n1 )
0 \ ®Ú¤§ªìÈ
SWAP 0 \ ³] N1 ¬° limit
DO 1+ DUP \ §ó·s®Ú
2* 1+ \ ( 2n+1 )
+LOOP \ §â 2N+1 ¥[¨ìÁ`©M¡A¦pªG¤p
; ©óN1«h¦A°µ¡A§_«hµ²§ô
¦³°j°éµ²ºc
limit index DO <repeat-clasue> ( inc ) +LOOP
( ·¥ ªìÈ DO «ÂЪº°j¸ôÅé ²Ö¥[¼Æ +LOOP )
¡@¦b«ÂЪº°j¸ôÅ鳡¥÷»P DO...LOOP «ÜÃþ¦ü¡A¨ä¤£¦P¦b©ó +LOOP ¬O³z¹L°Ñ¼Æ°ï
Å|(Parameter Stack)³»ºÝ¼Æ¦r¨Ó¼W¥[«ü¼Æ¡A¦]¦¹¤¹³\ LOOP «ü¼Æ¦b°õ¦æpºâ
®É¥i¨Ï¥Î«D©T©wªº¥ô·N¼Æ¼W¥[©Î´î¤Ö°jªð°ïÅ|³»ºÝªº°j¸ô¯Á¤ÞÈ¡A+LOOP µ²§ô
°j¸ôªº¤è¦¡¬°·í°j¸ô¯Á¤ÞȬ۵¥©Î¤j©ó·¥®É¡C
Wil ¥H«D¶Ç²Î¤è¦¡¨Ï¥Î +LOOP ¦b³o¸Ì°j¸ô¯Á¤ÞȲ֥[¾¹¨Ï¥Î¡A±N³sÄòªº2N+1
(©_¼Æ)¬Û¥[¡Aª½¦ÜÁ`©M¶W¹LN1¡A¥Ñ¦¹Æ[ÂI¡A¯d¦b°ïÅ|(Stack)ªºN2§Y¬ON1ªº¥
¤è®Ú¡C
½m²ß¤G¡B
¥Î¤û¹yªk¨Ó§ä¥¤è®Ú¬O¹q¸£¤¤«D±`´¶¹Mªº¤èªk¡A¦pªGr1¬ON ¥¤è®Úªºªñ¦üÈ¡A
¨º»ò§ó¦nªºªñ¦üȬO¡G
r2=(r1 + n/r1)/2
§A¯à§_¥H¦¹¤èªk¼g¥X§ä¥¤è®Úªºµ{¦¡
ª÷«° ´£¥Ü¡G
r1¥H1¶}©lÁͪñ¡A¦A±N¨D¥Xªºr2·í¦¨r1¶Ç¤J¡A¤ÏÂЦ¹µ{§Ç¡Aª½¨ìr2ªº
¥¤èµ¥©óN)¡C
¡@¡@
½m²ß¤T¡B
¾ã¼Æªº¥ß¤è©M 4 ¦¸¤è¡A·| 16¦ì¤¸¾ã¼Æªº½d³ò«Ü§Ö¥ÎºÉ¡A¨Ï¥Î³sÄò¾ã¼Æ¨D¨ä 3
©Î 4 ¦¸¤èªº¼Æ¾Ç¤èµ{¦¡¡A¥i¥Î³sÄòªº¥[ªk§ä¥X¥ß¤è®Ú¡A¨Ã»P§A©Ò¨ú±o¤§®Úªº
¾ã¼Æ¤ñ¸û¡A¼g¥X·s«ü¥O Cubic Root ¨Ó§ä¥X¥ô·N¥¿¾ã¼Æ¤§¥ß¤è®Ú¡A4¦¸¤è®Ú¡C
ª÷«° µù²¨¡G
¨D¥¤è®Úªº SQRT µ{¦¡¬O¥þ²y»D¦WªºFORTH°ª¤â¡AWil Baclon ¥ý¥Í
ªº¡u¤Ñ¤~§@«~¡v¡Aµoªí©ó 1984¦~¦b¥xÆW¥æ¤jÁ|¦æªº FORML¦~·|¤W
¡C¦¹µ{¦¡µu¤p¨¯»¶¬°Ãm¥@¤£¤G¤§§@¡A¨C¤@Ó«ü¥O³£¥Î±o¥X¯«¤J¤Æ¡A
¦ÊÁå¦Ó¦¨¡C¦pªG¬Ý©x¯à¤@²´¬Ý¬ï¨ä¶ø§®µ´Û¤§³B¡A«h¥i³ß¥i¶P¡A¥²
¯à«C¥X©óÂŦӳөóÂÅ¡C·íµM¡A¦pªG¬Ý©x̹惡¨Î§@¤£¯à«~¨ý¡A«h¥u
¦n¦b¯È¤W¦n¦nªºµeÓ°ïÅ|¹Ï¨ÓºCºC°l¡AºCºCK¤F¡C¦¹ÃD¤]¬O¾Ç
FORTH ªº³Ì¨Î½d¨Ò¡C
´£¥Ü¡G¦¹ÃDªººtºâªk¬°¤@»¼°jªº©w¸q¡A¦¹½u©Êªº¤è¦¡®i¶}°õ¦æ¡C
¨ÒÃD¥|¡B³Ì¤j¤½¦]¼Æ ( GCD )
¥j¥N¼Æ¾Ç¤j®v¼Ú¨ä²z¼w( Euclid )ªº¤èªk
If m>n,find GCD(n,m)
If m=0,GCD(m,n)=n
Otherwise,GCD(m,n)=GCD(m,MOD(m,n))
ª÷«° µù²¨¡G
¦¹ºtºâªk¬°³Ì¤j¤½¦]¼Æªº»¼°j(Recursive)©w¸q¡C
±N¤W¦Cºtºâªk§ï¼g¬° Forth §Ú̱o¨ì
: GCD ( m n -- gcd )
BEGIN 2DUP > \¡@if m>n ¥æ´« m ©M n
IF SWAP THEN
OVER \ if m=0 Â÷¶}loop
WHILE OVER MOD \ §_«h¥H MOD [m¡An]´À´«n
REPEAT \¡@«ÂЪ½¦Ü m=0
SWAP DROP \ ¦] m=0 ©Ò¥H©ß±ó m ¡A¦Ó¯d¤U
; ¨Óªº n ´N¬O³Ì¤j¤½¦]¼Æ¤F
³o¬O¤@Ó·¥¦nªº¨Ò¤l¨Ó»¡©ú±ø¥ó°j°éªº¥Îªk
BEGIN <repeat-clause> (f) WHILE <true-clause> REPEAT
BEGIN <°j¸ô¤l¥y³¡¥÷> ºX¸¹ WHILE <¬°¯uªº¤~°õ¦æªº³¡¥÷> REPEAT
¦pªGºX¸¹¸g WHILE ´ú¸Õ¬O¯uªº¡A«Âаj¸ô¤l¥y³¡¥÷©M¬°¯uªº¤~°õ¦æªº³¡¥÷¡A
YºX¸¹¬O 0(°°)¡Aµ²§ô¦¹°j¸ô¡C
´ú¸Õ GCD ¡AÁä¤J
123 456 GCD .
½m²ß¥|¡B ³Ì¤p¤½¿¼Æ
¨â¼Æªº³Ì¤pªº¤½¿¼Æªº¨Dªk¡A¥i±N¨â¼Æ¤§¿n°£¥H¦¹¤G¼Æ¤§ GCD ¼g¤@Ó·s«ü¥O
LCM ±N 2Ó¾ã¼Æªº LCM ©ñ¦^°ïÅ|(Stack)
ª÷«° µù²¨¡G
(¤@)è¾Ç FORTH ªº¤H¹ï°ïÅ|ªºÅé´¿¤£°÷²M´·¡A¬O³Ì¥i©Èªº²~ÀV¤§¤@
¡A¤×¨ä¬O¤@Ó¤pµ{¦¡¤¤¥Î¤F¥|¡B¤Ó°ïÅ|¾Þ§@«ü¥O(¦p¡GDUP¡B
SWAP¡BOVER¡BROT¡BDROPµ¥)§ó¦p¦Ê¨½°gÃú¡A»î¸¾z´²¡C¦¹®É¡A
n«rºò¤ú¡B¨H¦í®ð¡Bæí¤ß¡B©w¦í¯«¡CµM«á¥Î¯ÈµeÓ°ïÅ|¹Ï°l
Âܤ@¨B¡AÀ´¤F¡A¦A°lÂܤ@¨B¡AºCºC§ËÀ´¥¦¡C¦A²`¤J¾Ç²ßÅé·|¥Î
°ïÅ|¯B¨Hªº¯«Ãý¡A¬°¤°»ò FORTH ªº°ª¤â¡A¦p¦¹¼F®`¡A¨S¦³ÅܼÆ
¡A¥u¥Î¨âÓ°ïÅ|¡A´N¯à¸Ñ¨M³o¨Ç¤@¯ë©Êªº°ÝÃD©O¡S¨ä¤ßªk¥u¦³¤@
¥y¸Ü¡G¡u¦b±zªº¸£¤¤¡A¤]«Ø¨âÓ¬¡ªº°ïÅ|¡A±z´NÀ´ FORTH ¤F¡v¡C
(¤G) FORTH ªº WHILE °j¸ô»P¨ä¥L»y¨¥¡A¦p C¡BPASICAL µ¥§¡¤£¬Û
¦P¡AFORTH ªºWHILE-LOOP ¬O¦b°j¸ôÅ骺¤¤¶¡Àˬd¬O§_Â÷¶}°j¸ô
¡A¦Ó¤£¦ü¨ä¥Lªº°ª¶¥»y¨¥¬O¦b³Ì«e±Àˬd¡C©Ò¥Hn¤p¤ß¡CY¯à
Åé·|¤¤¶¡§PÂ_ªºÀuÂI¡A¤~¯àµ½©ó¨Ï¥Î¦¹ºØ°j¸ôªº¼u©Ê¡A¦Óµo´§
¨ä¥\¯à¡C
¨ÒÃD¤¡B¶OÃ伯¦C
¡@ Fibonacc¡G¬O¤¤¥@¬ö¼Æ¾Ç®a Leonardo ªºµ§¦W¥L´£¥X¦¹°ÝÃD¨Ópºâ¤@¹ï¨ß¤l
©Ò¯à²£¥Íªº«á¥N¼Æ¶q¡C
¡@§â¤@¹ï¨ß¤l©ñ¤J¥ÑÀð³ò¶ªº¦a¤è¡A¦pªG¨CÓ¤ë¡A¨C¹ï¨ß¤l·|¥Í¥X·sªº¤@¹ï¨ß¤l
¡A±q²Ä¤GӤ뤧«á©Ò¥Íªº·s¨ß¤l¤S¯à¥Í¥X¤@¹ï¨ß¤l¡A¤@¦~¤º·|¥Í¥X¦h¤Ö¹ï¨ß¤l
¨Ó?
¡@¡@¶¶§Ç·|¬O¡G
1 1 2 3 5 8 13 21 34 55 89 144 233 337...
ª÷«° ´£¥Ü¡G
¶OÃ伯¦Cªº»¼°j©w¸q¬° Fib(N)=Fib(N-1)+Fib(N-2)
¡@¡@§Ú´£¨Ñ¨âÓ¬Ûµ¥ªº¸Ñµª
: Fib1 ( -- , ¦L¥X©Ò¦³¤p©ó 5000 ªº¶OÃ伯¦C )
1 1 ¡@\¡@¨âÓ¶}ÀYªº Fib ¼Æ¦r
BEGIN OVER U. ¡@\¡@¦L¥X¸û¤pªº¼Æ¦r
SWAP OVER + ¡@\¡@pºâ¤U¤@Ó Fib ¼Æ
DUP 50000 U> \ ¦pªG¼Æ¦r¤Ó¤jÂ÷¶}
UNTIL ¡@\¡@§_«h«ÂÐ
2DROP ¡@\¡@©ß±ó¦¹¼Æ¦r
;
: Fib2 ( n -- , ¦L¥X©Ò¦³¤p©ó¥¿¾ã¼Æ n ªº¶OÃ伯¦C )
1 \ ³Ì¥ýªº¼Æ¦r
SWAP 1 \ ³]©w½d³ò
DO DUP U. \ ¦L¥X¥Ø«e2ªº¼Æ
I \ ¤U¤@Ó Fib ¼Æ
SWAP \ ¹w³Æ¤U¤@Ó¨ì¨Ó
+LOOP \ §â²{¦³ªº¥[¦Ü°jªð°ïÅ|ªº³»ºÝ
&nbs