Forth

Welcome to Forth on Exercism's Rust Track. If you need help running the tests or submitting your code, check out HELP.md.

Instructions

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.

Source

Created by

  • @EduardoBautista

Contributed to by

  • @ashleygwilliams
  • @bobahop
  • @coriolinus
  • @cwhakes
  • @EduardoBautista
  • @efx
  • @ErikSchierboom
  • @gefjon
  • @gsauthof
  • @IanWhitney
  • @kytrinyx
  • @lutostag
  • @N-Parsons
  • @nfiles
  • @PaulDance
  • @petertseng
  • @pminten
  • @robkeim
  • @rofrol
  • @stevejb71
  • @stringparser
  • @xakon
  • @ZapAnton