commodorejohn wrote:
One of my oneathesedays projects which I haven't touched in a million years is to come up with some kind of uber-simplified object-oriented system (ala Smalltalk, but CLI-oriented - so, ala GNU Smalltalk, I guess) which could run on a reasonably-specced 8-bitter.
For the past five years I've been intermittently working on a little vanity project that touches on this. It's a modular application framework that provides useful (to me) features including:
- Objects: User-definable functions, handle-based creation and deletion of instances of the function. Data and parameters can have default and inheritable values.
- Reactive Finite State Machine: Uses hierarchical nested state charts that have inheritance, internal and external actions, guards on those actions, etc.
- Domain Specific Language shell with built-in shared features such as loops, call-backs and pattern generation.
- Decision Tables: Nested and linked, caching, actions, column/row short-circuit, call-backs, absolute and indirect evaluation modes.
- Tabular iterator/evaluation: Point the variable-step iterator at a user-defined handler/transformation routine and multi-dimentional data tables. Trades speed for extreme compactness.
- Lots of other esoterica such as array and record management systems, general memory allocation, x-windows style nested windowing system for text and bitmap graphic modes, pattern-code generator, multi-dimensional deque shifter and comparison system...
Whether or not I ever finish it is an entirely different matter.