
第1篇
程式和機器
何謂
運算
(
computation
)?雖然每個人對這個字本身有不同的看法,但人人都同意的
是,當電腦讀取程式、執行該程式、讀取某些輸入,最後產生一些輸出,的確是發生了
某種類型的運算。而這也給了我們很好的起點:運算是電腦某種行為的名稱。
為了建立熟悉的運算環境,我們需要 3 項基本元素:
• 能執行運算的
機器
(
machine
)
• 編寫指令的
語言
(
language
),讓前項的機器能瞭解指令
• 以前項的語言所編寫的
程式
(
program
),此程式應描述前項機器應執行的正確運
算
所以本書這個部分的重點就是機器、語言、程式,包括它們是什麼、如何運作,它們如
何建造、研習,以及如何探索並完成實用的工作。藉由上述 3 項元素的研究,我們可以
針對運算及其運作而發展出更佳的直覺。
在第 2 章,我們將探索各種不同的方式,並詳述其意義,來設計並實作一款玩具程式語
言。瞭解語言的意義,能讓我們將活力賦予沈悶的程式碼;每一項規格技術則提供我們
執行程式的特殊策略,而我們最終將以幾種不同的方式,實作相同的語言。
我們將會看到,程式設計就是將精確定義的結構加以組裝的藝術,而機器將能分解、分
析、最後解譯所組裝的結構,進而建立運算。更重要的是,我們會發現,實作程式語言
是一件容易又有趣的事情:雖然解析、解譯、編譯看似相當嚇人,但實際參與就會發現
它們其實相當簡單而且充滿樂趣。