十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

340字节装下完整FORTH:史上最小真实编程语言milliForth全景概览

340字节装下完整FORTH:史上最小真实编程语言milliForth全景概览 340字节装下完整FORTH史上最小真实编程语言milliForth全景概览【免费下载链接】milliForthA FORTH in 340 bytes — the smallest real programming language ever as of yet.项目地址: https://gitcode.com/gh_mirrors/mi/milliForthmilliForth 是一个仅 340 字节的 FORTH 编程语言解释器截至目前它是已知最小的真实编程语言实现——小到能完整塞进一个 512 字节的硬盘启动扇区boot sector却依然是图灵完备、可以写完整程序的可用语言。对于想理解编程语言到底由什么构成的初学者来说它是极其难得的极限设计教材。340字节意味着什么比扇区还小的编程语言milliForth 的 340 字节指的是整个解释器的机器码体积而非某个高级语言的压缩脚本它比著名的 436 字节 LISP 实现 sectorLISP 还小 96 字节比 99 字节的 Brainfuck 玩具解释器更真实——milliForth 附带了完整的交互式 REPL读取-求值-打印循环和词的定义机制是生产级的可运行语言整个语言就是一个可以dd写进软盘第一扇区的启动程序。用一句话概括milliForth 证明了真实编程语言的下限可以低到令人吃惊。如何运行milliForth克隆仓库后一条make命令启动milliForth 用 x86 实模式汇编编写通过 makefile 驱动 QEMU 运行。前提环境安装yasm和qemu-system-i386。git clone https://gitcode.com/gh_mirrors/mi/milliForth cd milliForth make # 重新汇编 sector.asm 并用 QEMU 启动makefile 中还有几个常用目标命令作用make emulate直接运行预编译好的sector.binmake runfile filehello_world.FORTH自动把示例源码敲进解释器执行make sizecheck汇编并打印sector.bin的真实字节数其中make runfile会借助 py_autotype.py 逐字符向 QEMU 发送源码——模拟人手敲键盘的效果非常直观。⌨️极简词汇表milliForth 只有 11 个原语单词milliForth 的整个解释器只内置了下面这些硬件级单词s返回一个状态结构指针包含解释器状态、输入位置、词表链接等单词功能/!从地址取值 / 向地址存值sp/rp取数据栈顶 / 返回栈顶指针0//nand零判定 / 加法 / NAND 逻辑门exit从返回栈弹地址并恢复执行key/emit读一个按键 / 输出一个字符s取状态结构指针注意nandNAND 是通用逻辑门意味着一切逻辑运算都可以由它推导出来——这也是 milliForth 能把算术、比较、分支全部长出来的根本原因。53行纯FORTHhello_world.FORTH 如何生长出完整语言hello_world.FORTH 是理解 milliForth 设计哲学的最佳入口。它从 11 个原语出发纯 FORTH 逐行定义出完整的语言高层词汇例如: dup sp ; : 2 1 1 ; : - invert 1 ;负数是取反加二的补码运算: - invert 1 ;if / then、begin / while / repeat、do / loop等控制结构全部由branch、?branch和词表地址操作拼出来文件最后一行. hello, world打印出经典的 Hello World也就是说**解释器本体只有 340 字节而完整的 FORTH是这 53 行源码在运行时自己定义出来的。**这正是 FORTH语言即数据思想的极限演绎。bf.FORTH在 340 字节里再套一层解释器为了证明 milliForth 图灵完备项目附带了 bf.FORTH——一个用 milliForth 编写的 Brainfuck 解释器并在末尾直接运行了一段 Brainfuck 程序打印 hello world。在 340 字节的语言里再写一层解释器是检验这是否算真语言的最硬核标准。运行试试make runfile filebf.FORTH项目文件结构速览整个项目小而完整主要文件如下文件说明sector.asmx86 实模式汇编实现核心代码约 250 行sector.bin汇编产物即 340 字节的启动扇区镜像makefile汇编与 QEMU 运行入口hello_world.FORTH示例从原语构建完整语言并打印 Hello Worldbf.FORTH示例milliForth 编写的 Brainfuck 解释器py_autotype.py把源码文件逐字键入QEMU 的小工具README.md项目说明与运行指南从milliForth能学到什么通用门的威力nand 存取就能表达任何计算约束驱动设计必须放进 512 字节扇区这一个约束倒逼出极简状态结构s、无ok.提示的稀疏错误处理极致抠字节的工程文化仓库提交历史里满是 shave another byte 这样一笔一字节抠下来的提交是阅读极限编程案例的最佳素材。如果你只给新手推荐一个最小可用语言去解剖milliForth 就是那个答案——340 字节装得下完整的 FORTH也装得下对编程语言本质的全部思考。【免费下载链接】milliForthA FORTH in 340 bytes — the smallest real programming language ever as of yet.项目地址: https://gitcode.com/gh_mirrors/mi/milliForth创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表