diff --git a/README.md b/README.md index c57065c..95150eb 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ ok ``` Here's a Fibonacci implementation: + ``` > : FIB 2DUP + ; ok @@ -55,6 +56,7 @@ ok ``` Propser also has a basic off-stack memory model using variables, constants, and pointers: + ``` > VARIABLE FOO ok @@ -79,4 +81,6 @@ bye ## Future Plans -* Add much better readline behaviors in the interactive console (up-arrow for history, cursor movement...) +* Rearchitect how compilation works -- currently, non-built-in words are stored as raw sets of strings, which means in the case of things like IF/ELSE/THEN we have to re-parse the tree and use the IFStack to track the parse status. It'd be better to compile to some intermediate representation so that the compiler can store the JMP locations inline and execution just flows from instruction to instruction instead of re-parsing the entire descent-tree every time. +* More looping constructs (`EXIT`, `?DO`, and `WHILE` would be nice). +* Add ways for Prosper words to hook into the input/output streams (probably required for self-hosting a prosper compiler in prosper, which is a long way off).