exercism/dart/forth
2023-04-06 11:35:43 -05:00
..
.dart_tool Learning Dart 2023-04-06 11:35:43 -05:00
.exercism Learning Dart 2023-04-06 11:35:43 -05:00
lib Learning Dart 2023-04-06 11:35:43 -05:00
test Learning Dart 2023-04-06 11:35:43 -05:00
analysis_options.yaml Learning Dart 2023-04-06 11:35:43 -05:00
HELP.md Learning Dart 2023-04-06 11:35:43 -05:00
pubspec.lock Learning Dart 2023-04-06 11:35:43 -05:00
pubspec.yaml Learning Dart 2023-04-06 11:35:43 -05:00
README.md Learning Dart 2023-04-06 11:35:43 -05:00

Forth

Welcome to Forth on Exercism's Dart 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

  • @matthewmorgan

Contributed to by

  • @AlexeyBukin
  • @kytrinyx