新書推薦:
《
3分钟漫画墨菲定律:十万个为什么科普百科思维方式心理学 胜天半子人定胜天做事与成事的权衡博弈之道
》
售價:NT$
249.0
《
1911:危亡警告与救亡呼吁
》
售價:NT$
349.0
《
旷野人生:吉姆·罗杰斯的全球投资探险
》
售價:NT$
345.0
《
笼中王国 : 18世纪法国的珍禽异兽与社会文化
》
售價:NT$
340.0
《
思考的框架3 巴菲特芒格马斯克推崇的思维方式 风靡华尔街的思维训练法 沙恩·帕里什 著
》
售價:NT$
295.0
《
森林疗法:拥抱大自然、获得幸福的季节性方法
》
售價:NT$
340.0
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:NT$
845.0
《
亚马逊六页纸 如何高效开会、写作、完成工作
》
售價:NT$
349.0
|
內容簡介: |
本书提出了一种基于类型系统和结构操作语义的编程语言理论。第2版经过全面修订,几乎每章都包含习题,并新增一章讨论类型细化。本书涉及的概念广泛,包括:基本数据类型,多态和抽象类型,动态定型,动态分派,子类型和类型细化,符号和动态分类,并行和成本语义,并发和分布。书中对不同编程语言的特性做了分析、证明和比较,所提供的方法可直接应用于语言的实现、程序推理逻辑的研发以及语言特性的形式化验证,具有较高的实用性。本书不仅可以作为高等学校计算机相关专业的编程语言理论课程教材,也可供相关领域的科研人员和技术人员参考阅读。
|
關於作者: |
---作者简介---罗伯特·哈珀(Robert Harper) 卡内基·梅隆大学计算机科学系教授,他的主要研究兴趣是类型论在编程语言的设计与实现中的应用,以及其元理论的机械化。Harper是Allen Newell卓越研究奖章和Herbert A. Simon卓越教学奖的获得者,并且是ACM会士。---译者简介---张昱 博士,中国科学技术大学计算机科学与技术学院、网络空间安全学院副教授。研究兴趣包括程序设计语言、操作系统和并行计算等,特别是面向人工智能和量子计算等新领域的编程系统、软件分析、异构计算与系统优化等。胡明哲 中国科学技术大学网络空间安全学院博士研究生。主要研究方向为多语言软件的程序分析。
|
目錄:
|
译者序第2版前言第1版前言部分 判断和规则第1章 抽象语法 21.1 抽象语法树 21.2 抽象绑定树 41.3 注记 8习题 8第2章 归纳定义 102.1 判断 102.2 推理规则 102.3 推导 112.4 规则归纳 132.5 迭代归纳定义和联立归纳定义 142.6 用规则定义函数 152.7 注记 15习题 16第3章 假言判断与一般性判断 173.1 假言判断 173.1.1 可导性 173.1.2 可纳性 183.2 假言归纳定义 203.3 一般性判断 213.4 泛型归纳定义 223.5 注记 23习题 23第二部分 静态语义和动态语义第4章 静态语义 284.1 语法 284.2 类型系统 294.3 结构性质 304.4 注记 31习题 31第5章 动态语义 335.1 转换系统 335.2 结构化动态语义 345.3 上下文动态语义 365.4 等式动态语义 375.5 注记 39习题 39第6章 类型安全 406.1 保持性 406.2 进展性 416.3 运行时错误 426.4 注记 43习题 43第7章 求值动态语义 447.1 求值动态语义 447.2 结构化动态语义和求值动态语义的关系 457.3 重温类型安全 457.4 成本动态语义 467.5 注记 47习题 47第三部分 全函数第8章 函数定义和值 508.1 一阶函数 508.2 高阶函数 518.3 求值动态语义和定义等同 538.4 动态作用域 548.5 注记 55习题 55第9章 高阶递归的系统T 569.1 静态语义 569.2 动态语义 579.3 可定义性 589.4 不可定义性 599.5 注记 61习题 61第四部分 有限数据类型第10章 积类型 6410.1 空积与二元积 6410.2 有限积 6510.3 原始互递归 6610.4 注记 67习题 67第11章 和类型 6911.1 空和与二元和 6911.2 有限和 7011.3 和类型的应用 7111.3.1 void和unit 7111.3.2 布尔类型 7211.3.3 枚举 7211.3.4 选择 7311.4 注记 74习题 74第五部分 类型和命题第12章 构造逻辑 7812.1 构造语义 7812.2 构造逻辑 7912.2.1 可证性 7912.2.2 证明项 8112.3 证明的动态语义 8212.4 命题即类型 8312.5 注记 83习题 83第13章 经典逻辑 8513.1 经典逻辑 8513.1.1 可证性和可反驳性 8613.1.2 证明和反驳 8713.2 推导消去形式 8913.3 证明的动态语义 9013.4 排中律 9113.5 双重否定翻译 9213.6 注记 93习题 94第六部分 无限数据类型第14章 泛型编程 9614.1 引言 9614.2 多项式类型算子 9614.3 正类型算子 9814.4 注记 99习题 99第15章 归纳类型与余归纳类型 10115.1 示例 10115.2 静态语义 10415.2.1 类型 10415.2.2 表达式 10515.3 动态语义 10515.4 求解类型等式 10615.5 注记 107习题 107第七部分 变量类型第16章 多态类型的系统F 11016.1 多态抽象 11016.2 多态的可定义性 11316.2.1 积与和 11316.2.2 自然数 11416.3 参数化概述 11516.4 注记 116习题 116第17章 抽象类型 11717.1 存在类型 11717.1.1 静态语义 11817.1.2 动态语义 11817.1.3 安全性 11817.2 数据抽象 11917.3 存在类型的可定义性 12017.4 表示独立性 12017.5 注记 122习题 122第18章 高阶种类 12318.1 构造器和种类 12318.2 构造器等同 12518.3 表达式和类型 12618.4 注记 126习题 127第八部分 部分性和递归类型第19章 递归函数的系统PCF 13019.1 静态语义 13119.2 动态语义 13219.3 可定义性 13319.4 有限数据结构和无限数据结构 13519.5 完全性与部分性 13519.6 注记 136习题 136第20章 递归类型的系统FPC 13820.1 求解类型等式 13820.2 归纳类型和余归纳类型 13920.3 自指/自引用 14120.4 状态的起源 14220.5 注记 143习题 143第九部分 动态类型第21章 无类型的λ演算 14621.1 λ演算 14621.2 可定义性 14721.3 Scott定理 14921.4 无类型意味着单类型 15021.5 注记 151习题 151第22章 动态定型 15322.1 动态类型化PCF 15322.2 变体和扩展 15622.3 动态定型的批判 15822.4
|
內容試閱:
|
就像构建软件系统的第2版会有风险一样,为教材编写第2版也会带来风险:很难在避免过度修改和不破坏原有基础的情况下做出实质性改进。为了避免“第二系统效应”,我试图通过更正、修订、扩展和删除来提高内容的一致性,删除一些偏离主题的话题,增加一些第1版中遗漏的话题,并为每一章引入习题。此次修订删除了许多印刷错误,纠正了一些重大错误(特别是并行抽象机和Algol并发性的公式),并改进了全书的表述。一些章节被删除(一般模式匹配和极化、多态的受限形式),一些章节被完全重写(关于高阶种类的章节),一些章节被大幅修改(一般的和参数化归纳定义、并发和分布式 Algol),一些章节被重组(以更好地区分部分类型论和完全类型论),另外还新增了一章(关于类型细化)。本次修订删除了一些章节中对资料来源的不清晰引用,以避免混淆这些话题当前和原有的表述。全书引入了一套新的(可发音的)语言名称系统。习题试图扩展正文中的思想,而其解答往往涉及值得研究的重要技术思想。在课后作业中,尽量不包含按部就班的常规练习。撰写本书的目的是建立一个全面阐述和分析编程语言中各种思想的框架。语言设计和编程方法要从手工制作发展到严密的学科,首先必须要有正确的定义。只有这样,才能进行有意义的分析和整合。我希望能帮助建立这样的基础。感谢Stephen Brookes、Evan Cavallo、Karl Crary、Jon Sterling、James R. Wilcox和Todd Wilson对本版书稿的评审,并感谢他们提出的修订建议。感谢我的系主任Frank Pfenning对我完成本版工作的支持。还要感谢编辑Ada Brunstein和Lauren Cowles的指导和协助,感谢Andrew Shulaev对书稿的修正。无论是作者还是出版商都无法保证本书中的定义、定理和证明没有错误,或者符合任何特定的适销性标准,或者满足任何特定应用的要求。使用本书的人员不应依赖它们来解决可能因不正确的解决方案而招致人身伤害或财产损失的问题。如果你执意按这种方式使用本书,后果自负。作者和出版商不承担因此造成的任何直接或间接损失。Robert Harper匹兹堡2015年7月
|
|