《计算的本质:深入剖析程序和计算机》是本不可多得的好书!才读完前面三章,书中利用Ruby语言实现了一个简单的编程语言,一个完整的有限自动机!但Ruby语言我不是很熟悉,于是在一边读书的同时,我就顺手用Python语言重写了书中的代码,目前是第五章的代码写完了!持续更新,链接如下:

第 2 章 程序的含义

2.3.1 小步语义 - 表达式
https://github.com/cforth/toys/blob/master/Simple/Machine2.3.1-1.py

2.3.1 小步语义 - 语句
https://github.com/cforth/toys/blob/master/Simple/Machine2.3.1-2.py

2.3.2 大步语义
https://github.com/cforth/toys/blob/master/Simple/Evaluate2.3.2.py

2.4 指称语义
https://github.com/cforth/toys/blob/master/Simple/Denotation2.4.py

第 3 章 最简单的计算机

3.1 确定性有限自动机
https://github.com/cforth/toys/blob/master/Automaton/DFA3.1.py

3.2 非确定性有限自动机
https://github.com/cforth/toys/blob/master/Automaton/NFA3.2.py

3.3 正则表达式
https://github.com/cforth/toys/blob/master/Automaton/Pattern3.3.py

3.4 等价性
https://github.com/cforth/toys/blob/master/Automaton/NFASimulation3.4.py

第 4 章 增加计算能力

4.1 确定性下推自动机
https://github.com/cforth/toys/blob/master/Automaton/DPDA4.1.py

4.2 非确定性下推自动机
https://github.com/cforth/toys/blob/master/Automaton/NPDA4.2.py

4.3.1 使用下推自动机进行分析 - 词法分析
https://github.com/cforth/toys/blob/master/Automaton/LexicalAnalyzer4.3.1.py

4.3.2 使用下推自动机进行分析 - 语法分析
https://github.com/cforth/toys/blob/master/Automaton/GrammarAnalyzer4.3.2.py

第 5 章 终极机器

5.1 确定型图灵机
https://github.com/cforth/toys/blob/master/Turing/DTM.py

第 6 章 从零开始编程

6.1 模拟lambda演算
https://github.com/cforth/toys/blob/master/LambdaCalculus/lambda6.1.py

6.1 FizzBuzz游戏
https://github.com/cforth/toys/blob/master/LambdaCalculus/FizzBuzz.py

持续更新中...

代码仓库地址