Book description
Tom Stuart,電腦科學家、程式開發人員,也是倫敦一所數位產品顧問公司Codon的創辦人。 他擔任顧問、領導者、培訓師,協助公司改善他們創造軟體產品的方法,尤其是這些方法的品質和清晰度。
終於能以既吸引人又極具實用的方式,學習運算理論和程式語言設計。這本書以你所認知的脈絡解說電腦科學的理論,協助你察覺這些概念何以重要,以及如何將它們注入你的日常的程式設計工作。
本書揚棄數學符號或不熟悉的純理論程式語言(例如Haskell或Lisp),而是以簡化的風格,使用Ruby來呈現形式語意、自動機理論和lambda演算的函數程式設計。因此非常適合精通現代語言、但卻欠缺電腦科學正規訓練(或不足)的程式開發人員。
* 瞭解基礎運算概念,諸如語言裡的圖靈完整性
* 發現程式如何使用動態語意將想法傳達給機器
* 將電腦簡化到只剩基本元素,探索它可以做什麼
* 學習通用圖靈機如何引領今日一般用途的電腦
* 使用簡單的語言和細胞自動機來執行複雜的計算
* 判斷哪些程式語言的功能是運算的重要基石
* 檢查停止和自我參照如何使得某些運算問題無解
* 使用抽象解譯和型別系統來分析程式
Table of contents
- 封面
- 書名頁
- 授權聲明頁
- 目錄
- 前言
- 誰該讀這本書?
- 本書編排慣例
- 使用程式範例
- 致謝
- 第1章 夠用的Ruby
- 互動的Ruby殼層
- 值
- 基本資料
- 資料結構
- Procs
- 流程控制
- 物件和方法
- 類別和模組
- 其他的功能
- 區域變數和指定運算
- 字串內插
- 檢閱物件
- 列印字串
- Variadic方法
- 區塊
- 列舉
- 結構
- 猴子修補
- 定義常數
- 刪除常數
- 第1篇 程式和機器
- 第2章 程式的意義
- 意義的『意義』
- 語法
- 操作語意學
- 小步語意
- 大步語意 (1/2)
- 大步語意 (2/2)
- 指稱語意
- 運算式
- 陳述式
- 應用
- 實踐形式語意
- 形式
- 找出含義
- 備擇
- 實作解析器
- 第3章 最簡單的電腦
- 決定論有限自動機
- 狀態、規則、輸入
- 輸出
- 決定論
- 模擬物
- 非決定論有限自動機
- 非決定論
- 自由移動
- 正規運算式
- 語法
- 語意 (1/2)
- 語意 (2/2)
- 解析
- 等價 (1/2)
- 等價 (2/2)
- 第4章 只想加入運算能力
- 決定論下推自動機
- 儲存空間
- 規則
- 決定論
- 模擬物
- 非決定論下推自動機
- 模擬物
- 不等價
- 利用下推自動機解析
- 詞彙分析
- 語法分析
- 實踐
- 多大的運算能力?
- 第5章 終極機器
- 決定論圖靈機
- 儲存空間
- 規則
- 決定論
- 模擬物
- 非決定論圖靈機
- 最大的運算能力
- 內部儲存空間
- 副常式
- 數個磁帶
- 多維磁帶
- 通用機
- 編碼
- 模擬物
- 第2篇 運算和運算能力
- 第6章 無為的程式設計
- 模仿Lambda演算
- 使用Proc
- 問題
- 數值
- 布林值
- 述語
- 對組
- 數值運算 (1/2)
- 數值運算 (2/2)
- 串列
- 字串
- 解決方案 (1/2)
- 解決方案 (2/2)
- 程式設計進階技巧 (1/2)
- 程式設計進階技巧 (2/2)
- 實作Lambda演算
- 語法
- 語意 (1/2)
- 語意 (2/2)
- 解析
- 第7章 四處皆通用
- Lambda演算
- 部分遞迴函式 (1/2)
- 部分遞迴函式 (2/2)
- SKI組合器演算 (1/2)
- SKI組合器演算 (2/2)
- Iota
- 標籤系統 (1/2)
- 標籤系統 (2/2)
- 循環標籤系統 (1/3)
- 循環標籤系統 (2/3)
- 循環標籤系統 (3/3)
- 康威的生命遊戲
- 規則110
- 沃夫瑞的2, 3圖靈機
- 第8章 不可能的程式
- 生命的事實
- 通用系統可以執行演算法
- 程式可以參與圖靈機
- 程式碼就是資料
- 通用系統可以永遠循環 (1/2)
- 通用系統可以永遠循環 (2/2)
- 程式可以自我參照
- 可判定性
- 停機問題
- 建置停機核對器
- 絕對無法運作的狀況
- 其他無法決定的問題
- 令人沮喪的暗示
- 為什麼會這樣?
- 對付不可運算性
- 第9章 Toyland程式設計
- 抽象解譯
- 路線規劃
- 抽象體:乘法的正負號
- 安全和近似值:加法的正負號
- 靜態語意
- 實作物 (1/2)
- 實作物 (2/2)
- 好處和限制
- 應用
- 後記
- 索引 (1/3)
- 索引 (2/3)
- 索引 (3/3)
- 關於作者
- 出版記事
Product information
- Title: 深入理解運算原理|從簡單的機器到無所不能的程式
- Author(s):
- Release date: November 2017
- Publisher(s): GoTop Information, Inc.
- ISBN: None
You might also like
book
React学习手册
如果想学习如何使用React构建高效的用户界面,那么这本书就是为你准备的。本书作者将向你展示如何使用这款小型JavaScript库创建UI,并且可以在不重新加载页面的情况下,在数据驱动的大型网站上轻松显示数据变更。此外,你还将在阅读过程中学习函数式编程和最新的ECMAScript特性的使用。 由Facebook开发,并且被Netflix、Walmart和The New York Times等公司用于构建大部分Web界面,React很快就受到大众的青睐。通过这本实践指南你将学习如何构建React组件,并充分感受React在实际工作中的神奇魅力。 用JavaScript学习核心的函数式编程概念。 了解React在浏览器中的运行机制。 通过挂载和合成React组件来创建应用程序表现层。 使用组件树管理数据,减少调试应用程序的时间。 探索React组件生命周期,并用它来加载数据和提高UI性能。 为浏览器历史、书签和单页应用程序的其他功能选用路由解决方案。 学习如何在服务端构建React应用程序。
book
成為卓越程式設計師的38項必修法則
“本書會引發你對程式設計藝術與科學的熱情。Pete 知道:卓越的軟體,是優秀的人們盡最大努力所完成的。” -Lisa Crispin 《Agile Testing: A Practical Guide for Testers and Agile Teams》作者 如果你熱愛程式設計,想要提升自己的能力,那你就找到正確的資源了。《Code Craft …
book
LINUX系統程式設計 第二版
內容涵蓋 Linux Kernel 3.0 『任何人只要是對 Linux 的應用程式撰寫有興趣,或是想要知道如何提高自己的程式設計技能,書架上都應該有一本《Linux 系統程式設計》。這是一本專業 Linux 程式員必讀的書籍』 —Jeremy Allison Samba 團隊 直接與核心及 C …
book
精實企業|高績效組織如何達成創新規模化
『…對於組織要如何規劃、安排、落實與衡量工作,本書注定是這個領域中經典而且權威的參考…任何企業領導者,只要是關注透過技術創造競爭優勢與建立創新文化的人,都需要閱讀本書。』 — Gene Kim 《The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business …