Skip to content

Latest commit

 

History

History
80 lines (75 loc) · 12.4 KB

File metadata and controls

80 lines (75 loc) · 12.4 KB

-*- mode: org -*-

Forth

Logical Elements of a Forth Environment

      ┌──────────────────────────────────────────────────────────────────────┐
      │ Libraries                                                            │
      │                                                                      │
      │ - OO, Logic, Device-specific routines, text manipulation             │
      │                                                                      │
      │                                                                      │
      ├──────────────────────────────────────────────────────────────────────┤
      │ Workbooks and Sheets (IDE)                                           │
      │                                                                      │
      │ - aggregating forth dictionaries as outlines                         │
      │                                                                      │
      │                                                                      │
      ├──────────────────────────────────────────────────────────────────────┤
      │ Compiler                                                             │
      │                                                                      │
      │ - new word creation from text                                        │
      │                                                                      │
      │                                                                      │
      ├──────────────────────────────────────────────────────────────────────┤
      │ Interpreter                                                          │
      │                                                                      │
      │ - text interpretation                                                │
      │                                                                      │
      │                                                                      │
      ├──────────────────────────────────────────────────────────────────────┤
      │ Device Access                                                        │
      │                                                                      │
      │ - display and keyboard                                               │
      │                                                                      │
      │ - disk access (sheets r/w)                                           │
      ├──────────────────────────────────────────────────────────────────────┤
      │ Kernel                                                               │
      │                                                                      │
      │ - run-time word definition and compilation                           │
      │                                                                      │
      │ - inner interpreter (address interpreter)                            │
      │                                                                      │
      │ - hardware access                                                    │
┌─────┴──────────────────────────────────────────────────────────────────────┴────┐
│ Hardware                                                                        │
│                                                                                 │
│ - J1-like                                                                       │
│                                                                                 │
│ - Pi / Arduino                                                                  │
│                                                                                 │
│ - VM (KVVL)                                                                     │
└─────────────────────────────────────────────────────────────────────────────────┘

Kernel Languages

# Lang Name Creator Primitives Notes
3 Forth 3 Instruction Forth Frank Sargent XC@ XC! XCALL https://pygmy.utoh.org/3ins4th.html
8 BrainFuck BF Urban Müller > < + - . , [ ]
9 Forth Forth Bootstrap Mark Hays @ ! + AND XOR (URSHIFT) (LITERAL) (ABORT) EXECUTE
9 Forth Minimal Forth Machine Mikael Patel 1+ 0= NAND >R R> ! @ CALL EXIT https://github.com/fogus/papers-i-love/blob/master/languages/forth/Patel-Vagen_mot_en_minimal_Forth_arkitektur.pdf
9 LISP McCarthy LISP John McCarthy atom car cdr cond cons eq label lambda quote
11 Forth Minimal+ Forth Machine Mikael Patel 1+ 0= NAND >R R> ! @ CALL EXIT FETCH PERFORM
13 Forth Complete Forth Minimum Brad Rodriguez https://www.bradrodriguez.com/papers/moving1.htm
16 Forth F21 instructions, minimal Chuck Moore http://www.ultratechnology.com/f21data.pdf
20 Forth Dynamic Instruction Frequencies Philip Koopman CALL EXIT EXECUTE VARIABLE USER LIT CONSTANT 0BRANCH BRANCH I @ C@ R> >R SWAP DUP ROT + = AND https://users.ece.cmu.edu/~koopman/stack_computers/sec6_3.html
23 Forth MRForth Mark Hays C@ C! @ ! DROP DUP SWAP OVER $>$R R$>$ + AND OR XOR (URSHIFT) 0$<$ 0= (LITERAL) EXIT (ABORT) (EMIT) (KEY) https://github.com/minmus-9/MRForth
25 Forth MuP21 CPU instructions Chuck Moore http://www.ultratechnology.com/mup21.html
29 Forth F21 instructions, full Chuck Moore
30 Forth eForth Bill Muench https://web.archive.org/web/20060108104727/http://www.baymoon.com/~bimu/forth/
36 Forth eForth C.H. Ting 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 http://forthworks.com/forth/papers/compare.pdf
46 Forth GForth for 8086 GNU :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= =
58 Forth FORTH-83 nucleus Forth Inc. https://www.complang.tuwien.ac.at/forth/fth83std/FORTH83.TXT

KRBAG

KVVL

References