精華區beta CompBook 關於我們 聯絡資訊
《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