Sectorforth:512字节启动扇区里的16位Forth
Sectorforth is a 16-bit x86 Forth that fits in a 512-byte boot sector (2020)
Sectorforth 是一个令人惊叹的 16 位 x86 Forth 实现,它竟然能完整塞进一个 512 字节的启动扇区中。这个项目灵感源自 1996 年 Usenet 上的一个经典讨论,仅包含 8 个基础原语、5 个状态变量和 2 个 I/O 原语。尽管功能极简,但通过 Forth 自身即可构建分支、编译和栈操作等高级功能,甚至支持定义新单词。作者并未尝试将未知单词转为数字,而是利用现有原语实现数字解析。项目使用 NASM 汇编,可编译为二进制文件并生成软盘镜像,支持在 QEMU 中运行。无论是调试还是直接运行,Sectorforth 都展示了在极端限制下构建解释器的可能性,是理解 Forth 和底层系统编程的绝佳案例。
Sectorforth 仅包含 8 个基础原语、5 个状态变量和 2 个 I/O 原语,却足以构建完整的 Forth 解释器。
HN 评论区
16- Saltloaf
512 字节里塞进 8 个原语和一个冒号编译器,很好地展示了如何从几乎一无所有的状态完成自举。而在此基础上构建的那些示例才是精华所在。
- gabrielsroka
2020
- jxnsneb
考虑到这大量依赖 BIOS 例程,其实没什么了不起,毕竟连包含基础解释器的完整操作系统都能塞进几 KiB。