mini is a "complete" Forth-like language / command interpreter hosted by a single 4096-byte Windows executable. New
primitive words can be defined circuitously through assemble_byte and ffi (the internal import table, which also
contains GetModuleHandleA and GetProcAddress), and everything else is achievable through its minimalist memory
management and assembly mode. See Thinking Forth or Threaded Interpretive Languages for context. init.mini is run
on startup and can be used to define your own programs.
You will need NASM 2.16.01 and NMAKE and LINK as provided with Visual Studio. Run nmake to build mini.exe and
nmake report to generate a digest of all defined functions ("instructions") in mini.asm, which is written to
report.md.
I have a plan:
mini.exewill be the exceedingly tiny kernel used for bootstrapping by a full, self-hosted Forth/TIL meta-compiler.- But let's keep compression around purely for the satisfaction and the reference implementation.
- This meta-compiler will be retargeted for UEFI to make a classic block-based multitasking, persistent environment, on which much further work can be done.
- LISP and Smalltalk implementations will follow, hopefully self-hosting and image-based.