
20
|
第 2 章
意義的『意義』
語言學裡的
語意學
(
semantic
)專門在研究字詞及其意義之間的關聯,例如:『狗』這
個字是頁面上外形的約定,或者是某人聲帶造成的一組空氣震動;這些與實際的狗或一
般對狗的想法截然不同。語意關注的是這些具體的意符如何關聯到它們的抽象意義及抽
象意義本身的基本性質。
在電腦科學的領域,
形式語意
(
formal semantic
)涉及的是程式難以捉摸之意的尋求之
道,以及利用它們發現或證明程式語言的趣事。形式語意的用途廣泛,從像是指定新語
言和設計編譯器最佳化的具體應用,一直到諸如建構程式正確性的數學證明的抽象概
念。
要完全具體詳述某種程式語言,我們需要提供兩件事:一是描述程式外觀的
語法
(
syntax
),再者是描述程式意義的語意
1
。
許多語言並沒有官方的書面規格,只有能運作的直譯器或編譯器。Ruby 本身就屬於這
種『源自實作物的規格』(specification by implementation)的類型:雖然有很多 Ruby
應該如何運作的書籍和教程,但這些資訊的最終來源都是 Matz 的 Ruby Interpreter
(MRI,譯註:Matz 是 Ruby 的原始創造者),這是 Ruby 的參考實作物。如果有任
何 Ruby 文件的隻字片語不同意 MRI 實際的行為,這份就是錯的文件。諸如 JRuby、
Rubinius、MacRuby 之類的第三方 Ruby 實作物都必須竭力且完全模仿 MRI 的行為,
這樣它們才敢聲稱與 Ruby 語言相容。其他像是 PHP