主要观点:
- Chuck Moore 回顾 Forth 语言在过去 15 年的演变,强调硬件问题解决后应关注硬件,其开发了多个 Forth 处理器及相关 Forth 版本。
- 主张简化硬件软件组合的复杂性,Forth 应是高度分解的代码,基于栈操作,避免过多参数和复杂结构。
- 提出新的 Forth 语法,如用“红色”定义、简化“:**”操作、限制栈深度等,认为这样能使代码更清晰简单。
- 指出 Forth 程序员常写过多代码,应避免“钩子”“复杂化”,通过分解代码去除不必要部分,如文件系统相关代码可大幅减少。
- 探讨在 Color Forth 中字符大小与信息展示的平衡,以及 Machine Forth 中的一些特殊操作和概念,如“IF”“-IF”“@+”等,同时强调局部变量无用且有害。
关键信息:
- 第一个 Forth 处理器是 Novix,速度 8mips,后续有 ShBoom(32 位,50mips)、i21(20 位,500mips)。
- Forth 是高度分解的代码,基于栈,一个 Forth 单词不应有多于一两个参数,栈应较浅。
- 新的 Forth 语法,如红色定义、简化“:**”、用分号表示不同状态等。
- 避免“10x 代码”,即避免写不必要的复杂代码,减少维护成本和漏洞。
- 在 Color Forth 中字符大小与信息展示的权衡,以及 Machine Forth 中的特殊操作和概念。
重要细节:
- 硬件工程师工作不如 Forth 软件工程师,Chuck Moore 尝试解决硬件问题。
- cmForth 因未用于很多应用,其效果难以确定。
- i21 处理器为追求速度添加了复杂性,目前应用受限。
- SETI 项目可能需要更快的处理器。
- 新的循环构造简单方便,需递归版本的 Forth 且消除了“SMUDGE/UNSMUDGE”概念。
- 各种循环结构的来源及选择,新的循环构造优于其他。
- “BLOCK”在 Color Forth 中更简单,用于划分内存。
- 微软程序因兼容过去而代码冗余,程序应尽量简洁,约 1000 条指令。
- 关于屏幕字符大小,要平衡可读性和信息展示。
- Machine Forth 中的特殊操作如“IF”“-IF”“@+”等在不同应用中的使用和效果。
- 坚持局部变量无用且有害的观点,应专注于写应用而非优化工具。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。