主要观点:介绍了“Tiny Great Languages”系列的第 3 部分 Forth/MOUSE,包括其历史、特点、代码示例及宏的实现等,还对比了不同版本的 MOUSE 及与其他语言的区别,最后提及后续将介绍 Lisp 并鼓励读者关注相关平台。
关键信息:
- 系列文章链接:Part 1: Assembly、Part 2: BASIC、Part 3: Forth/MOUSE、Part 4: Lisp、Part 5: APL/K、Part 6: PL/0。
- MOUSE 特点:1976 年创建,早期计算机可用的连接性语言,用单字母操作符和变量的逆波兰表示法,紧凑可放入几 KB 内存,依赖命名变量而非栈操作。
- 示例代码:一个简单的 MOUSE 阶乘程序,展示了变量赋值、运算、条件循环、宏等语法。
- 宏实现:用
$name...@
定义,用#name...;
调用,参数用%A
等,可嵌套和递归,需在程序末尾定义。 - 解释器代码:用一个函数实现,包含存储宏定义、数据栈等,逐字节执行代码,处理各种操作符和结构。
重要细节:
- 原始 MOUSE 源代码发表于《BYTE》杂志,有新版本,本文使用 1979 年版。
- 解释器先扫描代码找宏位置再执行,宏使代码更有用但使解释器变大。
- 宏参数实现中,解释器将参数转换为在调用参数列表中的位置并找到实际值,每次使用时重新求值。
- 可重写 MOUSE 阶乘程序以更简洁的方式展示宏的用法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。