《C++ Primer 中文版》導讀
侯捷 jjhou@ccca.nctu.edu.tw
1999.08.08 第一次發表於
清大.楓橋驛站(140.114.87.5).電腦書訊版(Computer/CompBook)
本文將於日後整理於 侯捷網站/電腦散文/散文1999
侯捷網站:www.jjhou.com
----------------------------------------------------------------
《C++ Primer 中文版》導讀
侯捷
這一部份闡述我(譯者)對於《C++ Primer 中文版》的製作理念。
由於此書採用許多原文術語,因此本篇後段整理出各術語的中英文
對照意義,並利用簡短的程式片段,解釋各術語的技術意義。
●翻譯風格
首先讓我援引一篇不久前發表的文章,說明我對此書的翻譯態度。
此文發表於網路 CompBook 論壇,並收錄於【侯捷網站/電腦散文1999】
之中。文中的時態與所有論述主題皆予保留,以為紀念。
【技術引導乎 文化傳承乎】
[delete]
●原文術語的採用原則
我觀察人們對於英文詞或中文詞的採用,似乎有一個習慣:如果
中文詞發音簡短(或至少不比英文詞繁長)並且意義良好,那麼
就比較有可能被業界用於日常溝通;否則業界多採用英文詞。例如,
polymorphism 音節過多,所以意義良好的中文詞「多型」就比較
有機會被採用。例如,虛擬函式的發音不比 virtual function
繁長,所以使用這個中文詞的人也不少。但此並非絕對法則,否則
就不會有絕大多數工程師說 data member 而不說「資料成員」、
說 member function 而不說「成員函式」的情況了。
以下是本書採用原文術語的幾個簡單原則,但是沒有絕對的實踐,
因為有時候要看上下文情況。同時,請容我再謙卑地強調一次,
這些都是基於我與業界和學界的接觸經驗,而做的選擇。
⊙程式設計基礎術語,採用中文。例如:函式、指標、變數、常數。
本書採用的英文術語,絕大部份都是與 C++/OOP 相關的英文術語。
⊙簡單且朗朗上口的詞,不譯:input, output, lvalue, rvalue...
⊙讀者應該認識的原文名詞,不譯:template, class, object,
exception, scope, namespace…
⊙長串、有特定意義、中譯名稱拗口者,不譯:explicit specialization,
partial specialization, using declaration, using directive,
exception specialization…
⊙運算子名稱,不譯:copy assignment 運算子,member access 運算子,
arrow 運算子,dot 運算子,address of 運算子,dereference 運算子...
⊙業界慣用詞,不譯:constructor, destructor, data member,
member function, reference…
⊙6, 17 兩章為範例而取的資料結構名稱,不譯:word location map,
solution set, location pair…
⊙牽涉到 C++ 關鍵字者,不譯:public, private, protected, friend,
static,
⊙有良好譯詞,發音簡短,用者頗眾的詞,譯之:多型(polymorphism),
虛擬函式(virtual function)
⊙譯後可能失掉原味而無法完全彰顯原味者,時而中英並列。
⊙重要的動詞、形容詞,時而中英並列:模稜兩可(ambiguous),
決議(resolve),改寫(override)
援用原文詞,或不厭其煩地中英並列,獲得的一項重要福利是:
搭配著一頁對譯一頁的作法,本書得以最經濟方式保留原書索引。
索引對於一本工具書的重要性,不言可喻。
●中英術語對照(按字母順序排列)
以下術語某些在書中以英文呈現,某些以中文呈現,某些則中英並列。
部份術語的翻譯我勉力為之或參考坊間習慣,但不認同,僅做參考之用。
[delete]
●原書勘誤和修正
《C++ Primer 中文版》係根據 C++ Primer 第三版第一刷翻譯,
並根據原書網站的勘誤資料加以修正(截至 1999.07.30 為止)。
最後再以 C++ Primer第三版第二刷為本,重新檢閱。如有新的
中英文版勘誤資料,將於網上公佈,網址請見封底。
●版面字形風格
⊙一般文字:[delete]
⊙斜體文字(常用於動詞或形容詞):[delete]
⊙class名稱、變數名稱、函式名稱:[delete]
⊙長串術語:[delete]
⊙特殊意義詞:[delete]
⊙運算子名稱及某些特殊動作:[delete]
●範例程式注意事項
我曾以本書繁多的各個小型範例,在不同的 C++ 編譯器上試驗,
發現各編譯器仍然不同程度地不相容於 Standard C++(其間細節
瑣碎,不及備載)。尤其是在較新、較高階的議題上,如 template
相關議題。讀者在練習書中範例時,宜先有心理準備。
●關於索引
本書和原英文版頁次完全對應,並保留大量英文術語,所以此份與
英文版份量完全相同之索引,可直接應用於本書。本索引以英文為主,
中文為輔;中文的出現是為了說明某些術語在本書中的譯名。此份
索引完全未減去任何內容,所有中文皆為增補,而非改寫。
由於英文索引皆以極簡潔之用詞如 for, as, with, by, of 表達
上下層索引關係,不適合譯為中文,故本份索引的中文補註絕大部份
僅及於上層索引名詞。或有不夠週延之處,實為多方考量下的權宜結果。
●重要術語的技術意義(各章重點整理與導讀)
初次面對本書英文術語而欲瞭解其意義,一個方法是查閱書後索引,
一個方法是查閱本節。此處以各章出現次序,將能夠以簡短程式碼
形式表現意義的重要術語,列出於後。內容挑選標準以 C++/OOP 的
新術語為主。本處之選擇及解說或未臻理想,純粹是為了提供一個
快速導引。
[delete]
--- the end
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ Mail: jjhou@ccca.nctu.edu.tw