Forth
Hard
1
8.0% Acceptance
Implement an evaluator for a very simple subset of Forth.
Forth
is a stack-based programming language. Implement a very basic evaluator
for a small subset of Forth.
Your evaluator has to support the following words:
+
,-
,*
,/
(integer arithmetic)DUP
,DROP
,SWAP
,OVER
(stack manipulation)
Your evaluator also has to support defining new words using the
customary syntax: : word-name definition ;
.
To keep things simple the only data type you need to support is signed
integers of at least 16 bits size.
You should use the following rules for the syntax: a number is a
sequence of one or more (ASCII) digits, a word is a sequence of one or
more letters, digits, symbols or punctuation that is not a number.
(Forth probably uses slightly different rules, but this is close
enough.)
Words are case-insensitive.