小苏子
小苏子PDF在线图书

计算的本质 深入剖析程序和计算机 内容简介

计算的本质 深入剖析程序和计算机 内容简介

计算的本质 深入剖析程序和计算机 目录

计算的本质 深入剖析程序和计算机 精彩文摘

《图灵程序设计丛书·计算的本质:深入剖析程序和计算机》借助简单的Ruby代码示例,全面、深入地介绍计算理论和编程语言设计。作者注重实用性,在读者熟知的背景知识下,以明晰的可工作代码阐释了形式语义、自动机理论,以及通过lambda演算进行函数式编程等计算问题,并为读者自行探索打下了良好基础。《图灵程序设计丛书·计算的本质:深入剖析程序和计算机》面向熟悉某种现代编程语言却非科班出身的程序员,是一本帮你真正理解计算机科学和计算原理的优秀参考书。前言第1章 刚好够用的Ruby基础1.1 交互式RubyShell1.2 值1.2.1 基本数据1.2.2 数据结构1.2.3 proc1.3 控制流1.4 对象和方法1.5 类和模块1.6 其他特性1.6.1 局部变量和赋值1.6.2 字符串插值1.6.3 检查对象1.6.4 打印字符串1.6.5 可变参数方法(variadic method)1.6.6 代码块1.6.7 枚举类型1.6.8 结构体1.6.9 给内置对象扩展方法(Monkey Patching)1.6.1 0定义常量1.6.1 1删除常量第一部分程序和机器第2章 程序的含义2.1 “含义”的含义2.2 语法2.3 操作语义2.3.1 小步语义2.3.2 大步语义2.4 指称语义2.4.1 表达式2.4.2 语句2.4.3 应用2.5 形式化语义实践2.5.1 形式化2.5.2 找到含义2.5.3 备选方案2.6 实现语法解析器第3章 最简单的计算机3.1 确定性有限自动机3.1.1 状态、规则和输入3.1.2 输出3.1.3 确定性3.1.4 模拟3.2 非确定性有限自动机3.2.1 非确定性3.2.2 自由移动(freemove)3.3 正则表达式3.3.1 语法3.3.2 语义3.3.3 解析3.4 等价性第4章 增加计算能力4.1 确定性下推自动机4.1.1 存储4.1.2 规则4.1.3 确定性4.1.4 模拟4.2 非确定性下推自动机4.2.1 模拟4.2.2 不等价4.3 使用下推自动机进行分析4.3.1 词法分析4.3.2 语法分析4.3.3 实践性4.4 有多少能力第5章 终极机器5.1 确定型图灵机5.1.1 存储5.1.2 规则5.1.3 确定性5.1.4 模拟5.2 非确定型图灵机5.3 最大能力5.3.1 内部存储5.3.2 子例程5.3.3 多纸带5.3.4 多维纸带5.4 通用机器5.4.1 编码5.4.2 模拟第二部分计算与可计算性第6章 从零开始编程6.1 模拟lambda演算6.1.1 使用proc工作6.1.2 问题6.1.3 数字6.1.4 布尔值6.1.5 谓词6.1.6 有序对6.1.7 数值运算6.1.8 列表6.1.9 字符串6.1.10 解决方案6.1.11 高级编程技术6.2 实现lambda演算6.2.1 语法6.2.2 语义6.2.3 语法分析第7章 通用性处不在7.1 lambda演算7.2 部分递归函数7.3 SKI组合子演算7.4 约塔(Iota)7.5 标签系统7.6 循环标签系统7.7 Conway的生命游戏7.8 rule1107.9 Wolfram的2,3图灵机第8章 不可能的程序8.1 基本事实8.1.1 能执行算法的通用系统8.1.2 能够替代图灵机的程序8.1.3 代码即数据8.1.4 可以永远循环的通用系统8.1.5 能引用自身的程序8.2 可判定性8.3 停机问题8.3.1 构建停机检查器8.3.2 永远不会有结果8.4 其他不可判定的问题8.5 令人沮丧的暗示8.6 发生上述情况的原因8.7 处理不可计算性第9章 在“玩偶国”中编程9.1 抽象解释9.1.1 路线规划9.1.2 抽象:乘法的符号9.1.3 安全和近似:增加符号9.2 静态语义9.2.1 实现9.2.2 好处和限制9.3 应用后记2.3 操作语义考虑程序含义的最实际方法是思考它做了些什么:在运行程序的时候,我们期望发生什么呢?在运行时编程语言中不同的结构都是如何表现的?把它们放到一起组成更大的程序时会是什么效果?这是操作语义学(operational semantic)的基础,这种方法为程序在某种机器上的执行定义一些规则,以此来捕捉编程语言的含义。这个机器常常是一种抽象的机器:为了解释这种语言所写的程序如何执行而设计出来的一个想象的、理想化的计算机。为了更好地捕获编程语言的运行时行为,通常需要针对不同种类的编程语言设计不同的抽象机器。有了操作语义,我们可以朝着严谨而准确地研究语言中特定结构的目标前进了。用英语写成的语言规范可能暗藏着二义性,并且可能遗漏边缘情况,但一个形式化的操作性规范不会如此,为了令人信服地传达语言的行为,它必须明确而且无二义性。

赞(0)
未经允许不得转载:小苏子图书 » 计算的本质 深入剖析程序和计算机 内容简介