Comments (3)
You're quite right that (my) pForth is not in any simple sense "minimal". (You may or may not have noticed that in 1999 I presented a paper at EuroForth about my experiences implementing Machine Forth, and of course even that is not minimal compared with your efforts.)
A more accurate description might be "minimal effort", in the sense that Bee is designed to be a simple VM with a small instruction set with which one can easily implement a Forth compiler that is not too slow. The actual instruction set was chosen from the minimal set of primitives that pForth itself requires, again, avoiding particularly slow compromises such as implementing /
or ROLL
in Forth; no low-level Forth word should be difficult or terribly slow to implement with Bee's instruction set, while easy combinations (such as : - NEGATE + ;
) are allowed.
The result is (intended to be; I have yet to take full advantage of Bee to simplify pForth, whose back-end interface is currently badly-defined, hacky, and more complicated than it need be) that both Bee and pForth can be easily implemented with a modest amount of code, and acceptable performance for a naive implementation. (Currently, pForth boasts some of the slowest implementations of Forth you're likely to find in terms of machine cycles per Forth primitive.)
Does my description above (something like the second paragraph) sound like a reasonable explanation of Bee's aims? I understand that with Forth systems perhaps more than any other language, the precise trade-offs explored by a particular system need to be delineated if they are to be kind to (potential) readers/users!
from bee.
That's a great explanation. Thanks!
from bee.
(Reopening as I will fix the documentation.)
from bee.
Related Issues (14)
- GDB hangs with "invalid reply" when Bee exits during `si` HOT 1
- Remove build dep on `help2man`
- Remove `BREAK`; use a `TRAP` instead HOT 1
- Fix use of 64-bit off_t on 32-bit systems
- Fail to build on Mac OS X HOT 4
- Move `libtestutil` functions into `libbee` with `_bee` prefix
- More compact instruction encoding HOT 5
- GDB support improvements
- Stack access instructions HOT 1
- GDB stub should use GDB's signal numbers HOT 1
- Fix remaking of bee.h
- Rename (return) stack access instructions and macros
- Indicate use of Mijit in output of `bee --version`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bee.