编程语言、计算机与增量计算的前沿探索
编程语言设计的核心问题与统一模型
在设计编程语言时,有几个关键问题值得深入思考。我们需要明确问题领域变量的自然属性特征是什么,这些变量的基本函数和谓词如何描述问题领域的内在操作,与问题领域相关的计算过程本质是什么,以及如何利用假设的变量、函数和谓词来描述这样的计算过程。
实际上,现有的大多数编程语言在设计时都预设了对上述问题的答案。不过,很多时候这些答案是凭直觉得出的,而非经过深思熟虑的分析。我们提出的模型为不同问题领域的编程语言设计提供了一个统一且高效的框架。
同样的观点也适用于复杂系统程序的设计。其中,定义所涉及的计算过程本质是主要任务。在人机系统、分时系统和其他实时系统中,构建系统程序之所以复杂,主要是因为在进行这项任务时,没有事先按照我们所考虑的方式对过程进行明确描述。
为了实现设计面向问题的语言和与之匹配的计算机的目标,我们详细研究了简单和分层两类编程语言及其相关的计算过程。通过特定的标准模型,我们能够充分研究高效编程语言设计和翻译中出现的实际问题。此外,我们还提出了具有广泛适用性的计算语言规范方案,并借此探讨了编程语言设计和翻译器构建中的一些热点问题。
以ALGOL为例,我们发现它的一些特征实际上是所有分层计算过程共有的。同时,从系统设计的角度来看,ALGOL的结构存在一些固有缺陷。我们所倡导的编程语言标准模型与具有通用宏定义功能的符号汇编语言在结构上密切相关。与当前流行的使用上下文无关文法等语法模型的方法不同,我们拒绝以ALGOL为代表的编程语言设计方法。因为ALGOL中的一些特性,如GO TO语句和大量的标点符号约定,实际上与语言的描述能力无关,只是句子的一种特定表示方式。经过精简后,A
超级会员免费看
订阅专栏 解锁全文
16

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



