把握计算与计算机语言的原理和真实含意
在了解的語言实例中习得更强的工作中方法
清楚讲解有限公司自动机和图灵机
因为你是一名程序编写大神,敲代码对你来讲是游刃有余的事。可是,你明确自身很多年练出的程序编写专业技能并不是创建在某类主观臆断的假定基本上?明确自身并不是每日都会“糊里糊涂”地敲代码?明确真实了解自身的编码是怎样运作的吗?
当你想象“大神”级的程序猿相同做开发设计,或是想解决自身半路出家的专业知识“囧”境,这书可以为了你真实讲搞清楚测算基础理论和计算机语言的原理与真实含意。这书应用简易的Ruby编码做实例,沒有枯燥乏味难记的数学符号。创作者竭力青睐由浅入深和从实践活动中学习培训,他从设备、語言提到程序流程,又一路上从*简易的设备(有限公司自动机)衔接到繁杂的设备(图灵机),从设计构思保持简易的计算机语言到简约的设备,然后又逻辑推理说白了“并不是”处理的难题,为用户极致打造出了轻轻松松趣味的阅读文章感受。《测算的实质:深层次分析程序流程和电子计算机》依靠简易的Ruby编码实例,全方位、深层次地详细介绍测算基础理论和计算机语言设计构思。创作者重视应用性,在用户熟识的背景图专业知识下,以明确的可工作中编码诠释了方式词义、自动机基础理论,及其根据lambda运算开展函数式编程等测算难题,并且为用户自主探寻拿下了良好基础。
《计算的实质:深层次分析程序流程和电子计算机》朝向了解某类当代计算机语言却非科班的程序猿,是1本帮你真实了解电子信息科学和测算基本原理的出色教材。
目录
- 封面介绍
- 前言
- 第1章 刚好够用的Ruby基础
- 1.1 交互式Ruby Shell
- 1.2 值
- 1.2.1 基本数据
- 1.2.2 数据结构
- 1.2.3 proc
- 1.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.10 定义常量
- 1.6.11 删除常量
- 第一部分 程序和机器
- 第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 自由移动(free move)
- 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 rule 110
- 7.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 应用
- 后记