- 内容提要
- 序 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 已死
序 1:程序里的世界
程序,或多或少地反映了这个世界运行的本质。那么,程序的本质又是什么呢?
爱民写了这本《程序原本》,看起来想部分地回答“程序的本质是什么”这个大问题。
在篇一,“计算系统”。他认为,“算”是程序之表,“数”是程序之本。然后,算的过程体现了数之间的“逻辑”。而算与数在人们的认知过程——当然也包括在计算系统——中的体现,则是对“事物”的“抽象”。当然,这个对事物的抽象,是与事物的“具象”相联系的,也只有这样,计算系统才是在反映现实世界的运行。
人们在“计算系统”中,通过“程序”来描述、虚拟现实世界,跟人们在日常生活中,通过讲述、写作来描述与推理现实世界一样,是通过“语言”来达到的。“语言及其面临的系统”,即是本书篇二的内容。
在计算系统中为计算机所理解的程序语言,也有一系列语法、语义与语用的设定,以尽量避免“计算不确定性”带来的副作用。不同计算范式的程序语言或者设计,均力图从不同的角度来减少这种副作用。比如命令式编程、函数式编程,前者,通过限定计算步骤、命令的严格顺序来避免不确定性;后者,则通过引用透明来避免不确定性。
而系统的构建,即使部件由不同的程序语言写成,只要在交互界面上设计为“可实现的规则集”,以及输出表达为“可计算的数据项”,也可以实现“对话”。或者说,“可实现的规则集”和“可计算的数据项”,实际上也可以归为一套简洁的“语言”。
篇三,“程序设计的核心思想”。作者开始涉及到程序设计中的一些基本要素,包括数据结构、执行体与它在执行过程中的环境、语法树和对象系统等等。这些要素,仍然是从算与数出发,自然延伸出来的。其中“语法树”在本篇提出,我的理解是,“语法树”在很多情况下是可以作为程序设计中的要素加以利用的。
篇四,“应用开发基础”。从本篇起,对“程序”的理解开始上升到“应用”层次,主要是从“软件复用”和“工程化”的角度来陈述“模块/单元”与“项目/工程”这些“应用程序”的组成或者构建过程。并以“模型是一种沟通工具,这是它内在的‘语言’本质特征”来回到“程序语言”这个“程序”最基本的表达方式本身。
篇五,“系统的基础部件”。则在系统的层次来讨论“程序”,认为“系统是‘通过在程序组织上的结构化来解决规模问题’的一种策略,那么程序所解决的问题集‘能否分割’以及‘如何正确地分割’,就是所有系统问题的核心所在”。并提出,“系统应付规模问题的总法则只有两个:运算能力的分布,以及运算对象的分布”。
进一步的,既有了“分布”,则立刻遇到分布的部件之间的“依赖”。而这种依赖,处理的对象则是系统的(分布的)“状态”,并可以通过“消息”来处理这些“状态之间的依赖”。状态和消息,是处理系统分布与依赖问题的主要数据模式。
最后一篇,篇六,“系统的基本组织方法与原理”。探讨“系统”这个带有“规模化”内涵的程序。而“这一规模的定义本身就是由跨领域引申而来”,以应对“跨领域”的系统级“程序”。另一方面,“服务”则更倾向于设计为带有领域逻辑交互界面的“节点”。那么在这种倾向下,服务要处理的对象,也许应该退化到“数据”本身,并作为“数据”节点来提供它的能力。尤其是面对所谓的“海量”数据时,不同领域的交互,需要数据以更灵活(可变)的方式来存贮、获得和传递。
而“程序”,这个即使在“系统”层面上也仍然是——“算”是程序之表,“数”是程序之本——的“玩意”,在规模化到了系统层面之后,其层间的规划与层间关系的模型,以及如何通过系统化方法来实现这些层之间,亦即是领域间的协作开发,就需要在作者《我的架构思想:基本模型、理论与原则》一书中继续展开了。
邓草原
2017.05.27
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论