Forth/FORTH 的核心思想
外观
< Forth
在详细介绍语言规范之前,让我们花点时间指出 FORTH 风格的几个方面,以便在后续页面中牢记它们。
- 传统编程环境的许多需求实际上是不必要的,并且基于历史包袱。
- 系统元素的仔细规范会导致它们在代码大小上变得更小。这个过程会自我循环。
- 单遍编译和一种不鼓励引用尚未定义的事物的风格提供了微妙的压力,消除了大量基于罗素悖论类型代码(循环定义)的编程错误。
- 鼓励分解,因为定义和调用子程序的开销由于数据堆栈上的隐式参数传递而降低。这鼓励为在多个地方使用的操作序列定义子程序。这缩小了代码的大小,并鼓励良好的编码实践,即在单个集中且可维护的子程序中实现每个算法组件。
- 使用结构化编程条件,以最佳的数学计算机科学风格。程序员被引导遵循数学要求,即代码片段只有一个入口点和一个出口点。
- 程序员应该能够按照他们想要的方式阅读代码,消除由于语言语法要求而导致的混淆。代码的含义应该能够从略读中脱颖而出。
- 潜伏在计算机语言中的“巴别塔”问题变得显而易见且民主化。您,而不是语言设计者,可以创建字典并为其中的单词命名。这是你的词典。如果你想与其他人共享词汇,那么你们都需要就特定功能的单词名称达成一致。如果你不喜欢给定的名称,你可以用你喜欢的名称定义一个指向原始定义的新单词。
- 如果软件中已经内置了某种功能,那么它应该始终可以供程序员调用。这就是 Forth 原则:“不要隐藏你的工具”。这与大多数其他系统不同,在其他系统中,您会看到许多应用程序已经包含用于执行您可能希望使用的编程任务的代码,但是如果您坐下来编写程序,这些代码及其组成部分是不可调用或不可用的。
- 对“编译器”概念的去神秘化。编译器及其所需的功能在字典中变成了几个单词,这些单词的行为可以被中等程度的学生掌握。它们可以被使用、扩展和修改。
- 即使是编译器的概念在 Forth 的理解中也被简化了。
- 逗号运算符“编译”一个整数到下一个可用内存位置。
- C 运算符将一个字符(或字节)编译到内存中
- Forth 汇编程序单词 MOV 只是一个用于单个机器指令的“编译器”
- 即使是编译器的概念在 Forth 的理解中也被简化了。
- Forth 指定了它的语言规则,通过这些规则,你和计算机进行交流,这些规则是简单的,并且与其背后的清晰哲学保持一致。没有大量的特殊字符和复杂的优先级规则,双方都将受益。程序员会感觉他们正在与几 KB 的可理解的编译器代码和谐地工作,而不是与数兆字节的编码异常和特殊情况作斗争。编译器编写者有一套定义明确的规则,可以准确无误地实施。因此,编译器错误和语言手册含糊不清之间的模糊时刻被最小化了。