29.15. Jednoduchý procesor orientovaný na forth

29.15.1. nanoForth
29.15.2. Minimalistické verze

Odkazy:

http://groups.google.com/group/comp.lang.forth/msg/10872cb68edcb526

--- 
FORTH Primitives Comparison (use a fixed width font) 
------------------------------------------------------
3     primitives - Frank Sargent's "3 Instruction Forth" 
9     primitives - Mark Hayes theoretical minimal Forth bootstrap 
9,11  primitives - Mikael Patel's Minimal Forth Machine (9 minimum, 11 full) 
13    primitives - theoretical minimum for a complete FORTH (Brad Rodriguez) 
16,29 primitives - C. Moore's word set for the F21 CPU (16 minimum, 29 full) 
20    primitives - Philip Koopman's "dynamic instruction frequencies" 
23    primitives - Mark Hayes MRForth 
25    primitives - C. Moore's instruction set for MuP21 CPU 
36    primitives - Dr. C.H. Ting's eForth, a highly portable forth 
46    primitives - GNU's GFORTH for 8086 
58-255 functions - FORTH-83 Standard (255 defined, 132 required, 58 nucleus) 
60-63 primitives - considered the essence of FORTH by C. Moore (unknown) 
72    primitives - Brad Rodriguez's 6809 CamelForth 
74-236 functions - FORTH-79 Standard (236 defined, 147 required, 74 nucleus) 
94-229 functions - fig-FORTH Std. (229 defined, 117 required, 94 level zero) 
133-?  functions - ANS-FORTH Standard (? defined, 133 required, 133 core) 
200    functions - FORTH 1970, the original Forth by C. Moore 
240    functions - MVP-FORTH (FORTH-79) 
~1000  functions - F83 FORTH 
~2500  functions - F-PC FORTH 
FIXME   27 ?     - C. Moore's MachineForth
eForth primitives (9 optional) 
---- 
doLIT doLIST BYE EXECUTE EXIT next ?branch branch ! @ C! C@ RP@ RP! R> R@ >R 
SP@ SP! DROP DUP SWAP  OVER 0< AND OR XOR UM+ TX! 
?RX !IO $CODE $COLON $USER D$ $NEXT COLD IO? 
9 MRForth bootstrap theoretical 
---- 
@ ! + AND XOR (URSHIFT) (LITERAL) (ABORT) EXECUTE 
9 Minimal Forth (3 optional) 
---- 
>r r> 1+ 0= nand @ dup! execute exit 

drop dup swap 
23 MRForth primitives 
---- 
C@ C! @ ! DROP DUP SWAP OVER $>$R R$>$ + AND OR XOR (URSHIFT) 0$<$ 0= 
(LITERAL) EXIT (ABORT) (EMIT) (KEY) 
20 Koopman high execution, Dynamic Freq. 
---- 
CALL EXIT EXECUTE VARIABLE USER LIT CONSTANT 0BRANCH BRANCH I @ C@ R> >R 
SWAP DUP ROT + = AND 
46 Gforth 
---- 
:DOCOL :DOCON :DODEFER :DOVAR :DODOES ;S BYE EXECUTE BRANCH ?BRANCH LIT @ ! 
C@ C! SP@ SP! R> R@ >R RP@ RP! + - OR XOR AND 2/ (EMIT) EMIT? (KEY) (KEY?) 
DUP 2DUP DROP 2DROP SWAP OVER ROT -ROT UM* UM/MOD LSHIFT RSHIFT 0= = 
36 eForth 
------- 
BYE ?RX TX! !IO doLIT doLIST EXIT EXECUTE next ?branch branch ! @ C! C@ RP@ 
RP! R> R@ >R SP@ SP! DROP DUP SWAP OVER 0< AND OR XOR UM+ $NEXT D$ $USER 
$COLON $CODE
Licence Creative Commons
Elektronika a počítače, jejímž autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .