Description
Emulate a 'Forth' Programming Environment.
Description
Emulates a 'Forth' programming environment with added features to interface between R and 'Forth'. Implements most of the functionality described in the original "Starting Forth" textbook <https://www.forth.com/starting-forth/>.
README.md
froth: FORTH for R
froth
is a Forth implementation for R. If you're new to froth
or Forth, check out the detailed overview or my in-depth tutorial.
froth
is distributed by CRAN. You can download it for your R installation by running:
install.packages("froth")
This implementation comes with a number of differences from other FORTHs:
- uses R operators for arithmetic, so
3 2 /
returns1.5
- arbitrary R objects can be pushed onto the stack
- built-in R
print
methods; use.R
to format according to the print method for the top of the parameter stack - obfuscated memory (no direct or emulated hardware-level memory access)
- no distinction between compiled and interpreted words (loops are possible outside of definitions!)
- Use of R lists for internal arrays; arrays of bytes are not supported
'
will always look for the next token, not the next token from input stream. This makes it identical to[']
in function definitions. I may change this later.
This will (likely) not be a 1:1 copy of Gforth, I think I'd rather have a forth implementation that is robust and works in R than one that exactly imitates existing Gforth. But...tbd.
TODOs
- any kind of I/O functionality (though you can read files into
froth
from R)