Program 程式, Code 程式碼, Codebase 程式基底, Source Code 源始碼/源碼(原始碼), Object Code 目的碼

今天來探討一下與中文「程式」一詞,相關的資訊領域英文詞翻譯。

首先,我們先來瞭解一下,什麼是「程式」啊?

打開教育部國語詞典,會看到下列介紹:

  1. 訂立一定的準式以為法則。
    《管子・明法》:「法者,天下之程式也。」近似詞:法式      
  2. 格式。
    如:「公文程式」。
  3. 引導電腦依特定方式運作並產生結果的一組指令。

程式一詞,最早的概念是指法則規範,一套明確的規則系統,給天下人作規範之用。起先中文的「程式」一詞,代表的是英文的 Code。

後來電腦時代開始,所謂 ProgramCode 都是一套寫下的來的規則系統,給機器作執行之用。

Program 一詞偏向有目的導向情境,即為了完成某項作業內容,而設計出來的機器執行規則,隱含目的性質。

Code 一詞偏向物件指稱情境,即專指寫下來的那一套機器執行規則內容,隱含本源性質。

當時的譯者,將 Program 譯為程式,Code 譯為程式碼,透過這個「碼」的詞眼,來強調出給機器(如編譯器、直譯器等)讀的代碼規則內容。

而這裡的代碼,指的是各程式語言(無論高階、低階)所約定使用的指代用詞符碼,像是 if、else、AND、XOR 等等這些「碼」。

最近在協助 Standard for Public Code 作翻譯校對時,看到 Codebase 一詞,以及該專案《詞彙表》中的解釋,讓我在想怎麼稱呼它才合適?是程式碼基底嗎?程式基底呢?或是代碼庫?

Codebase 的解釋翻譯成中文後是這樣子的:

    任何獨立分離的統合包,內含執行部分政策或軟體所需的程式(包含源始碼與政策)、測試與文件等的整套內容。
    舉例而言,這個具體形式可以是文件,或是版本控制的儲存庫。

喔喔喔!所以 Codebase 指的是那一整套讓「程式」可以執行運作的「底下的內容」(含源始碼和其他一切東西),可以放在文件或儲存庫裡。

所以很明顯的,這裡的 Code 指涉程式的本源性質,而 Base 是基底,那麼 Codebase 就是「程式基底」了,和什麼庫無關。值得留意的是,雖然這裡的 Code 描述了程式的本源性質,但不能完全對應為程式「碼」,因為它也同時包含源始碼以外的物件。

也有人將 Codebase 直譯為「源碼庫」的,以源碼二字指出程式的本源概念,雖不那麼適切,但還可以理解與接受。

再來看看 Source code 的解釋翻譯成中文之後是這樣子的:

    人類可讀,並且能夠翻譯成機器指令的電腦程式文字。

將人類語言翻譯成機器指令需要透過編譯器或直譯器的幫忙,而人類可以讀寫的本源稱為 Source,透過機制轉換而出,給予機器執行的目的則稱為 Object。

這就是我們今日口語會講的「原始碼」,不過個人更偏好「源始碼」的表達法,更能強調出其 Source code 本源碼,與 Object code 目的碼彼此相對的概念,這也是「開放源碼」運動、「開源」文化浪潮採用「源」字的寫法來由。源始碼,亦可簡稱為「源碼」,香港譯者多採用此譯詞。

雖然原這個漢字的象形起源就是指水源,不過今日使用上都已將原 (似 Origin,原來) 和源 (似 Source,來源) 分別對待,因此個人還是推薦使用源始碼,來表達出 Source 的起源、本源意象。

留言

這個網誌中的熱門文章

直行橫列,以及 line (列/行), column (欄), row (列)

正體中文、繁體中文?

Permission 權能/取用權; Permission denied 取用遭拒; Ask for permission 請求權能/取用權; Don't have the right permission to 沒有權能/無權