- 内容提要
- 序 1:程序里的世界
- 序 2:最后一层表象
- 关于本书
- 致谢
- 引言:简单的本源
- 篇一:计算系统
- 第 1 章 数,以及对数据的性质的思考
- 第 2 章 逻辑
- 第 3 章 抽象
- 篇二:语言及其面临的系统
- 第 4 章 语言
- 第 5 章 从功能到系统
- 篇三:程序设计的核心思想
- 第 6 章 数据结构:顺序存储
- 第 7 章 数据结构:散列存储
- 第 8 章 执行体与它在执行过程中的环境
- 第 9 章 语法树及其执行过程
- 第 10 章 对象系统:表达、使用与模式
- 篇四:应用开发基础
- 第 11 章 应用开发的背景与成因
- 第 12 章 应用开发技术
- 第 13 章 开发视角下的工程问题
- 第 14 章 应用程序设计语言的复杂性
- 篇五:系统的基础部件
- 第 15 章 分布
- 第 16 章 依赖
- 第 17 章 消息
- 第 18 章 系统
- 篇六:系统的基本组织方法与原理
- 第 19 章 行为的组织及其抽象
- 第 20 章 领域间的组织
- 附一:主要编程范式 及其语言特性关系
- 附二:继承与混合,略谈系统的构建方式
- 附三:像大师们一样思考——从 UML 何时死掉 谈起
- 附四:VCL 已死,RAD 已死
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
8.6 一门语言与一个程序的区别,仅在于参考环境的差异——后者被称为运行时环境 (Runtime)
对于 ship()
来说,所谓 合适的条件 就是类似这样的一个上下文环境:
1 2 3 4 5 6 7 |
|
我们来考虑类似环境的可能性。例如,假设我们将原始问题中的“水”和“检测岸”确定下来,则 ship
将可能有许多种方案。如:
1 2 3 4 5 6 7 |
|
假设我们也将“人”确定下来,那么方案就只剩下一种:
1 2 3 4 5 6 |
|
除非我们——人——能有不同样的 row()
方法。
在从 _ship_env_0
到 _ship_env_1
的演变过程中,我们把 ship()
和它相关的环境 _ship_env
绑定在了一起。这是一个不小的变化,因为它的含义是语义与语用之间的绑定关系。如果我们将 _ship_env
分离出去,则 ship()
将是 DSL(领域特定语言,Domain Specific Languages)的一个实现;如果将 _ship_env
与 ship()
绑在一起,那么 ship()
就是一个应用程序中的确定求解。
前者创建了一门语言,后者创建了一个程序。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论