×

类ALGOL语言。(2卷)。 (英语) Zbl 0882.68023号

理论计算机科学进展。巴塞尔:Birkhä用户。650页(1996年)。
这是一个关于类ALGOL语言的最重要研究的两卷集。第一卷包含关于语言设计的历史和基础材料。初学编程语言和理论计算机科学的研究生可以使用它。第2卷包括处理类ALGOL语言语义的指称模型的作品。该材料适用于在逻辑、领域理论、类型理论和范畴理论方面具有足够背景的高级研讨会和研究人员。每一章都是一篇原创论文,或者是作者对一些初步出版版本的修订。下面是所有包含文档的简短演示,遵循编辑的介绍。为了节省空间,省略了文档的来源。
第1卷。第一部分历史背景。第1章。关于算法语言ALGOL 60的修订报告(P.Naur(编辑),J.W.Backus等人)。这是第一篇正式规定编程语言语法的论文。它介绍了著名的元表示巴克斯-诺尔形式。它还概述了对语义进行形式化处理的必要性。
第2章。编程语言的多样性(C.Strachey)。本文建议对编程语言中使用的域进行分析。它揭示了ALGOL 60中“可存储”和“可表示”值的不相交性,并引入了“连续”的概念,这成为处理标签和跳转的标准方法。
第二部分。基本原则。第3章。ALGOL的精髓(约翰·雷诺兹)。作者认为,作为ALGOL 68和PASCAL的语言并不是真正的ALGOL 60类语言。他列举了描述ALGOL本质的原则,描述了满足这些原则的模型,并用简单的命令式语言说明了该模型。它还描述了“数据类型”和“短语类型”之间的区别。
第4章。ALGOL和函数编程(P.W.O'Hearn)。结果表明,如果不存在“snap-back”操作,类ALGOL语言实际上保留了纯函数片段的所有等价项。“snap-back”操作的一个示例是块表达式,其中执行命令是表达式求值的一部分,但由于可能对非局部变量产生副作用,因此该执行的初始状态将恢复。
第5章。关于ALGOL中赋值和过程的正交性(M.Felleisen,S.Weeks)。本文根据类ALGOL语言的函数片段和命令片段的单独归约演算,形式化了这两个片段的正交性。独立地证明了它们的基本属性,还证明了程序的评估可以分解为功能阶段,然后是命令阶段。
第6章。理想化ALGOL及其规范逻辑(约翰·雷诺兹)。作者介绍了Hoare用于程序规范和验证的公理化方法的几项创新,以便将这些技术应用于具有完整过程和跳跃的语言。规范逻辑可以被视为霍尔逻辑和斯科特“可计算函数逻辑”的组合。
第7章。面向局部变量的完全抽象语义(A.Meyer,K.Sieber)。本文证明,传统的“标记-存储”模型无法验证某些极其简单的预期等价性。这项工作还显示了现有程序逻辑的弱点,因为在带有过程的命令式语言中,大多数逻辑在标记存储模型中都是正确的,规范逻辑是一个明显的例外。
第三部分语言设计。第8章。程序设计语言FORSYTHE(John C.Reynolds)。它是根据第3章的思想描述的一种语言。它包含了一个进一步的创新:使用“交集”类型来进一步简化、统一和概括语言的类型结构。
第9章。应用语言作业(U.Reddy,V.Swarup,E.Ireland)。它提供了一种方法,通过使用类型将程序的命令部分和应用部分分开来组合命令和功能方面。
第10章。干扰的句法控制(约翰·雷诺兹)。这里证明了可以避免混淆和隐蔽干扰,同时以稍微受限的形式保留类似ALGOL的高阶过程。由此产生的编程语言不仅具有ALGOL 60所需的功能属性,但是,简单命令式语言的许多理想属性在添加过程时通常会丢失。
第2卷。第四部分:函数范畴语义。第11章。Functor类别和商店形状(Frank J.Oles)。本章描述了如何使用一类存储形状和扩展来表示通过局部变量声明进行的存储扩展,以及如何使用从存储形状到域的一类函子来获得与局部声明视图一致的过程处理。
第12章。使用函数类别生成中间代码(John C.Reynolds)。本文展示了如何使用类别语义模型以统一的方式定义类ALGOL语言到中间代码的翻译,避免不必要的临时变量,提供布尔表达式的控制流翻译,允许过程的在线扩展,并将关闭过程调用的存储开销降至最低。
第五部分规范逻辑。第13章。规范逻辑的语义分析(Robert D.Tennent)。这里,第3章和第11章的函子范畴方法稍作修改,以允许在形式上的扩展直觉主义一阶理论中处理命令的某些“内涵”属性。事实证明,这种规范逻辑与排除中间律不相容,因此使用底层直觉主义逻辑不仅是自然的,因为底层函子模型,而且在某种意义上是必要的。
第14章。规范逻辑的语义分析,2(Peter W.O'Hearn,Robert D.Tennent)。它给出了不干涉的类型依赖性解释,对于基本类型的短语,可以简化为第13章中给出的定义。
第六部分程序和局部变量。第15章。二阶子集的完全抽象(Kurt Sieber)。第7章的行在此继续,“逻辑关系”的概念被用作排除不良元素的手段。给出了一个完全抽象的结果,表明语义相等与上下文定义的“观察”等价关系的重合,直至二阶类型。
第16章。参数和局部变量(Peter W.O'Hearn,Robert D.Tennent)。
作者使用关系参数为类ALGOL语言构建了一个模型,其中本地实体和非本地实体之间的交互满足一些关系标准。
第17章。用基于运算的逻辑关系推理局部变量(Andrew M.Pitts)。
本章讨论操作语义。它展示了关系参数性原则,如第16章的语义,是如何在没有明确引用语义模型的情况下被公式化的。
第七部分。干扰、不可逆性和并发性。
第18章。《重新审视干扰的句法控制》(P.W.O'Hearn等人)。
描述了一种受线性逻辑启发的新型系统,并验证了约简保留了类型。本文还提出了一种基于新型系统的示例性编程语言的具体模型。这里解决了第10章中提出的某些问题。
第19章。被认为不必要的全球状态:基于对象的语义介绍(Uday S.Reddy)。提出了一种新的命令式程序语义方法。它基于物体的概念,并根据它们可观察的行为来表征它们。状态被视为对象内部结构的一部分,在可观察的行为中不起作用。这使得对象的局部性和单线程属性的语义建模具有相当高的准确性。
第20章。线性、共享和状态:具有主动表达式的理想化ALGOL的完全抽象游戏语义(S.Abramsky,G.McCusker)。作者使用游戏语义框架为理想化的ALGOL(表达式中有副作用)建立了一个隐式状态模型。该模型考虑了状态变化的不可逆性,并明确了实体复制和共享之间的区别。
第21章。平行ALGOL的精髓(斯蒂芬·布鲁克斯)。它是为理想化ALGOL的并行版本建立的一个函数范畴模型;函子范畴的使用表明,在任何命令求值的初始状态和最终状态下,存储的形状都是相同的。

MSC公司:

68甲15 编程语言理论
68问题55 计算理论中的语义学
68-01 与计算机科学相关的介绍性说明(教科书、教程论文等)
PDF格式BibTeX公司 XML格式引用