ForthHub / discussion

Discussion repository for Forth enthusiasts.
118 stars 4 forks source link

Arduino-Shell: Token Threaded Forth Shell for Arduino #26

Open mikaelpatel opened 8 years ago

mikaelpatel commented 8 years ago

Started a small project last week with the intention to revisit Forth-land and token threading. This time around I wanted to build an interpreter/virtual machine that 1) used printable characters as token (abbreviated forth words), 2) code could be written directly without an outer interpreter (i.e. token compiler), 3) small enough to be added to Arduino sketches for scripting configuration and/or parts of the application.

The result is a strange marriage between some of the concepts from PostScript with the traditional Forth stack machine.

For more details please see the repository.

mikaelpatel commented 8 years ago

Completed the first round of this "natural" token thread interpreter. The latest update includes a unified address space for SRAM, EEPROM and PROGMEM (flash) so that scripts can be run from all address spaces. Script definitions are automatically saved to EEPROM. Together with an op-code to synchronize variables with EEPROM this allow persistent defined scripts and restart.

jjonethal commented 8 years ago

Good job

2016-03-14 9:44 GMT+01:00 Mikael Patel notifications@github.com:

Completed the first round of this "natural" token thread interpreter. The latest update includes a unified address space for SRAM, EEPROM and PROGMEM (flash) so that scripts can be run from all address spaces. Script definitions are automatically saved to EEPROM. Together with an op-code to synchronize variables with EEPROM this allow persistent defined scripts and restart.

— Reply to this email directly or view it on GitHub https://github.com/ForthHub/discussion/issues/26#issuecomment-196206440.

mikaelpatel commented 8 years ago

Completed the second round of performance improvements. Benchmarks are improving but there is a long way to go. Please see benchmark measurements https://github.com/mikaelpatel/Arduino-Shell/issues/40 and ongoing performance improvements, https://github.com/mikaelpatel/Arduino-Shell/issues.