用Python實現《計算的本質:深入剖析程式和計算機》中的程式碼

十八哥87發表於2015-01-17

《計算的本質:深入剖析程式和計算機》是本不可多得的好書!才讀完前面三章,書中利用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

持續更新中...

程式碼倉庫地址

相關文章