【读书笔记】计算的本质:深入剖析程序和计算机【本文持续更新中!】


本书概要介绍、内容主线、阅读目标

这本书名为 Understanding Computation: From Simple Machines to Impossible Programs ,作者是 Tom Stuart ,即《理解计算过程:从简单计算机到不可解程序》,不过翻译时改成了《计算的本质:深入剖析程序和计算机》。
在这里插入图片描述

内容提要中说,本书将以使用简单的Ruby代码,深入介绍计算理论和编程语言设计,阐述形式语义自动机理论lambda演算函数式编程等计算问题。啊,听起来就很晦涩的样子,不愧是“深入剖析”加上“程序和计算机”!

不过结合目录内容,个人认为,从英文名的角度来看,这本书的主线实际上是很明晰的:

  • 首先简单介绍Ruby语言(第1章),这是不太重要的一部分;
  • 然后使用Ruby阐明计算机科学,分为两个部分:
    • 第一个部分讲解 程序(第2章)和 (理论)机器(第3、4、5章),程序一章介绍了语法和语义,(理论)机器部分则从最简单的计算机 DFA, NDFA 与正则表达式(第3章),深入到确定性下推自动机、非确定性下推自动机(第4章),最终建立目标机器图灵机,同样包括确定型图灵机和非确定型图灵机;
    • 有了终极机器模型,第二部分则在其基础上介绍 计算 的概念,引入lambda演算,进入函数式编程的世界;之后则简单介绍了可计算性理论,包括可判定性、停机问题、不可判定问题等等。

这样,从(理论)机器(简单机器到复杂机器)到不可解程序(从计算概念、lambda演算到可计算性、不可解程序),就清楚的概括了本书的全部内容,这些内容不仅深入介绍了计算成立的(理论)基础,还阐明了计算的能力,以及计算本身的局限性,从而让我们真正 Understanding Computation

个人愚见,狭义的计算仅仅指的是不包括输入和输出的实际运算过程,而广义的计算则指的是输入->计算->输出的全过程,比如 1 + 2 就有输入 12 、计算 + 、输出 3 。从这样一个角度来看,计算的物理基础或者说物理机器建立在逻辑门与时序电路的组合之上,理论基础或者说理论机器则有正则、DFA、NFA、下推自动机、图灵机等状态机,它们既是计算成立的基础,其自身也是一个计算过程。更高级的抽象又形成了lambda演算、Monad等等,同样是计算过程。因此,计算二字就足以囊括机器与程序的全部,也是本书的全部。理解了计算,就理解了机器、程序乃至整个计算机

这里列出本人阅读本书要达成的目标:

  • 搭建Ruby语言的学习环境:下载对应的编译器或解释器,建立语言文件夹,在VSCode上安装相关插件,书写配置文件; 掌握Ruby语言的基本功能和基础知识——这一个目标整体上,可以和【读书笔记】七周七语言:理解多种编程范型中的Ruby一章相合并,我会全部总结在一篇文章中,然后以超链接的形式记录在这两篇读书笔记中。
  • 将书上的程序范例全部实现一遍:包括程序部分的语法解析器机器部分的DFA/NDFA、确定性/非确定性下推自动机、确定型/非确定型图灵机,然后是计算部分的lambda演算相关程序……统统实现一遍,初步把编译原理这个梦魇击溃。

第一章 刚好够用的Ruby基础——阅读笔记

1.1 VS Code配置Ruby语言环境

首先看一下这篇文章,配置好学习Ruby的语言环境。

1.2 Ruby学习笔记

见这篇文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

memcpy0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值