状态的本体论:概念、模型与求解
1. 引言
状态的概念在计算系统分析中无处不在。状态为动态过程引入了无法从外部直接观察到的内涵内容。若没有状态,过程仅由其输入 - 输出行为定义,通常会朝着最终结果运行,即计算某个函数。而引入对系统执行有因果影响的内部数据,可视为将函数概念扩展到过程概念的一步,此时过程不再保证会终止。
1.1 硬件层面
从组合电路到时序电路的发展体现了这一转变。组合电路是仅根据给定输入产生值的逻辑电路;时序电路则具有“记忆”功能,其内部状态不仅取决于输入数据,还依赖于先前的执行历史。实现状态行为的基本电路元件是触发器,它能在虚拟反馈回路中存储一位数据,并且这类电路通常还具备时钟机制。具有状态的电路对于构建功能完备的计算机系统至关重要,因为计算机系统需要寄存器、算术处理器、指令排序、存储等功能。
1.2 软件层面
这一区别表现为执行特定算法后终止的程序(如编译器、文本分析器、定理证明器、数据库搜索程序)与运行时与环境交互的程序(如文本编辑器、Web 服务器、操作系统)之间的差异。对于后者,程序在某一时刻的行为不仅取决于当前用户输入,还可能受先前历史的影响,因此需要额外信息来确定程序在给定时刻的行为。
1.3 语言设计层面
内涵数据的存在是纯函数式语言和命令式(包括面向对象)语言之间的重大区别之一。由于引用透明性,纯函数式语言中表达式的含义独立于执行上下文或历史。相反,命令式语言允许对数据进行破坏性操作,从而使数据结构的内部内容能够随时间变化。
纯函数式语言非常适合编写需要以算法复杂方式转换输入数据的程序,其语法与所计算函数的实际数学定义非常接近,因此比命令
超级会员免费看
订阅专栏 解锁全文
962

被折叠的 条评论
为什么被折叠?



