并发的基本现象是共享状态在不同进程间的同步,或迫使进程间通信所产生的事件按照某种特定的顺序进行;从本质上看,在并发控制中,任何时间概念都必然与通信有内在的联系;有意思的是,时间与通信之间的这种联系也出现在相对论里,在那里的光速(可能用于同步事件的最快信号)是与时间和空间有关的基本常量;在处理时间和状态时,我们在计算模型领域所遭遇的复杂性,事实上可能就是物理世界中最基本的复杂性的一种反映。
相关语录
-
这一原则(过程的意义应该不依赖于其作者为形式参数所选用的名字)从表面看起来很明显,但其影响却非常深远。最直接的影响是,过程的形式参数名必须局部与有关的过程体。
-
当然,我们能够将大量复杂事物隐藏起来,这并不意味着该机器的设计是不实际的,因为我们总能用一些更简单的基本操作来取代这些复杂的基本操作
-
本章开始时提出了一个目标,那就是构造出一些计算模型,使其结构能够符合我们对于试图去模拟的真实世界的看法。我们可以将这一世界模拟为一集相互分离的、受时间约束的、具有状态的相互交流的对象。或者可以将它模拟为单一的、无时间也无状态的统一体。每种观点都有其强有力的优势,但就其自身而言,又没有一种方式能够完全令人满意。我们还在等待一个大统一的出现。
-
一个名字的定义被约束于的那一集表达式成为这个名字的作用域。在一个过程定义里,被声明为这个过程的形式参数的那些约束变量,就以这个过程的体作为它们的作用域。
-
过程的形式参数在过程体里扮演着一种非常特殊的角色,在这里,形式参数的具体名字是什么,其实完全没有关系。这样的名字成为约束变量,因此我们说,一个过程的定义约束了它的所有的形式参数。
-
过程用户不必去关心的实现细节之一,就是在有关的过程里面形式参数的名字,这是由实现者所选用的。也就是说,下面两个过程定义应该是无法区分的:
-
请定义一个过程,它以三个数为参数,返回其中较大的两个数之和。
-
说明性描述和行动性描述有着内在的联系,就像数学和计算机科学有内在的联系一样.举个例子,说一个程序产生的结果"正确",就是给出了一个有关该程序性质的说明性语句.存在着大量的研究工作,其目标就是创建起一些技术,设法证明一个程序是正确的.在这一领域中有许多技术性困难,究其根源,都出自需要在行动性语句(程序是有它们构造起来的)和说明性语句(它们可以用于推导出某些结果)之间转来转去
-
对象模型对世界的近似在于将其分割为独立的片段,函数式模型则不是沿着对象的边界去做模块化。当“对象”之间不共享的状态远远大于它们所共享的状态时,对象模型就特别好用。这种对象观点失效的一个地方就是量子力学,在那里,将物体看做独立粒子就会导致悖论和混乱。将对象观点和函数式观点合并可能与程序设计的关系不大,而是与基本认识论有关的论题。
-
虽然代换模型看起来似乎非常简单,但令人吃惊的是,给出代换过程的严格数学定义却异常复杂.问题在于,用作过程中形式参数的名字,可能会与该过程可能应用的那些表达式中的(同样)名字相互混淆.在逻辑和程序设计的语义学文献里,关于代换的充满错误的定义有一个很长的历史.