車 忱
(機械工業出版社,北京 100037)
計算機圖書是近年來國內科技圖書市場的熱點。特別是隨著人工智能、大數據和通信技術的飛躍發展,計算機圖書出版迎來一個新高峰。優秀的計算機圖書不僅能傳授最新的計算機知識,也能給讀者帶來閱讀的享受。但是,筆者在審讀計算機稿件和閱讀計算機圖書時,常常發現用錯計算機術語和人名拼寫錯誤的情況。有些錯誤,筆者追蹤了十幾年,發現它們始終沒有被消滅,已經成了影響了讀者閱讀體驗的“痼疾”。這個問題應該引起圖書作者和編輯的注意。
術語錯誤包括術語混淆、術語解釋錯誤、術語翻譯錯誤和臆造術語。茲舉數例。
1. 密鑰與密匙。這兩個詞看起來都和鑰匙有關。鑰匙是個常見詞,是指開鎖或上鎖的用具。這個詞由“鑰”和“匙”組成,“鑰”字即指鑰匙,而“匙”字的意思是勺子(念chí,遲),出現在湯匙、銀匙等詞中。因此,當講到一段用來完成加密、解密的信息時(就像上鎖、開鎖的鑰匙一樣),應該用密鑰(key)。而密匙是某些人臆造的錯誤術語,不應該使用。英語中有一句成語born with a silver spoon in one's mouth,本來譯作“銜著銀匙出生”,意思是指某人家境優越。結果因為后來有人不知道“匙”的意思,把譯文變成了“銜著銀鑰匙出生”。
2. 函數式語言。筆者在審讀一本計算機稿件時,發現這樣一句話:“Python提供了大量函數,因此它是一種函數式語言”。從邏輯上講,這句話是錯誤的。按照作者的理解,有函數的語言就是函數式語言,那么,絕大多數計算機語言都是函數式語言了。實際上,在計算機科學中,“函數式”是編程范式的一種。編程范式是指在編程時遵循的規范,可以通俗地理解成“風格”。常見的編程范式有指令式(imperative)、結構式(structured)、函數式(functional)、面向對象式(object oriented)等。Python既屬于函數式語言,又屬于指令式語言(一種語言可能同時屬于多種范式),同屬這類語言的還有C、C++和Java等。而常見的函數式語言有C++、JavaScript、Lisp等。但一些傳統語言如C、Pascal等雖然都提供了大量函數,卻不屬于函數式語言。
3. 自由軟件與免費軟件。自由軟件的原文是free software,而free還有“免費”的意思,所以國內許多作(譯)者把free software譯成了免費軟件。其實免費軟件的原文是freeware,二者的內涵是不同的。免費軟件是可以免費使用的軟件,但源代碼不公開,不允許用戶對其進行銷售、逆向工程。而自由軟件的源代碼是完全公開的,任何人都可以免費使用、修改甚至銷售。例如,著名的Linux操作系統就是自由軟件。
4. 字節與位。這兩個術語,稍有經驗的計算機圖書編輯都知道是什么意思。不過在具體應用中,卻容易出錯,特別是在遇到計算機網絡設備的傳輸速率時。例如,在計算機稿件中,如果有“100M寬帶”這樣的文字,許多編輯知道,此處只有物理量,而沒有單位,需要修改。那么,單位是字節還是位?應該是位,也就是說,寬帶的傳輸速率是100Mbit/s,也就是12.5MB/s。許多網絡用戶抱怨家里的百兆寬帶網下載速度“每秒鐘只有10多兆”,還以為自己上當了,原因就在于他們不知道網絡傳輸速率的單位到底是什么。
5. m×n矩陣與m×n維矩陣。矩陣常見于計算機圖形學和數字信號處理等稿件。描述矩陣的形狀時,應該用m×n,而不是m×n維?!熬S”字是多余的,一個m×n矩陣在計算機中實際上是一個二維數組,m×n的結果是這個矩陣的元素個數,而不是維數。與此類似,一個n×n矩陣可以稱作n階方陣,或n×n方陣,但不能稱作n×n階方陣。
6. 閾值與閥值。閾值是指最高限值,常出現在計算機、自動化等稿件和圖書中。閥值是個較少見的詞,出現在“閥值電壓”這個術語中(見《辭?!?,1999年版縮印本)。“術語在線”網站中也沒有收閥值。筆者建議,如果在稿件中,閥值作為一個詞單獨出現,最好將其改為閾值。
7. 二元運算與二進制運算。二進制運算是指二進制數的四則運算以及與其他進制數的轉換,是計算機科學稿件和圖書中的常見內容。二元運算常出現在離散數學、信息編碼等計算機相關教材和圖書中,是指在一個集合中的兩個元素(可以是二進制數,也可以是非二進制數)經過運算形成第三個元素。它的英文是binary operation。很多作(譯)者看到binary這個詞,就想當然地把它翻譯成了二進制運算。其實,編輯在加工稿件時,從上下文可以看出,兩個術語有很大的區別。
8. 浮點數。在許多計算機語言中,小數通常定義為浮點數(floating-point),而且浮點數這個術語中有個“點”字,所以一些不求甚解的作者會寫出諸如“浮點數就是小數”這樣的句子。這其實是錯誤的。早期的計算機由于其體系局限,只能直接表示一部分實數。后來為了擴大表示范圍,引入了浮點數的機制。浮點數并不全都是小數,也不能表示所有小數。
9. 登錄與登陸。登錄是指在計算機系統中登記注冊。而登陸是指渡過海洋和江河登上陸地,現在常常比喻商品打入某個市場。計算機稿件中頻頻出現“登陸”,是受了近二十年來網絡文章的影響?,F行的《信息技術詞匯 第1部分:基本術語(GB/T 5271.1-2000)》要求使用“登錄”。
10. 正則表達式。正則表達式是對有限自動機所接受的語言或時序開關電路的行文的形式描述。這個概念相當抽象,通俗地講,它是一個能夠根據一定的模式對輸入的內容(如一篇文章、一段程序代碼)進行匹配并輸出的字符串。它的英文是regular expression。中文譯法在20世紀80年代已定型。如果譯成“正規表達式”尚可接受,但有些作(譯)者寫成“正規的表達式”,說明他們顯然不了解這個術語。
11. 計數與記數。在計算機科學中,計數是指利用一定方法統計或計算數目,核心在于計算,而不是記憶。因此,在這個語境中,不應該使用“計數”。
12. DOS與DoS。DOS的三個字母都是大寫,全稱是disk operating system,是一種比較古老的操作系統,已經很少用了,但在計算機稿件和圖書中還是很常見的。DoS的首、尾字母是大寫,中間字母是小寫,全稱是denial-of-service,譯為“拒絕服務”,是一種網絡攻擊方法。常常有圖書作者把DoS寫成DOS。
另外,許多計算機稿件中會出現“程式”“作業系統”等詞,它們其實都是我國港臺地區的說法(分別對應“程序”“操作系統”),編輯在進行稿件加工時應予以改正。出現大量這類詞匯,也很可能說明稿件有抄襲的情況。特別要注意的是,在一些我國臺灣的計算機讀物中,“行”和“列”的意思和大陸的意思正好相反。下面再列出一些這樣的術語,它們都是筆者在工作中遇到過的。其中,半字線后面是大陸用法。

軟體—軟件 原始碼—源代碼檔、檔案—文件 批次檔—批處理文件資料庫—數據庫 多執行緒—多線程區域化—本地化 物件導向—面向對象基底子集—基本字符集 核心態—內核態
計算機科學起源于歐美,因此在計算機稿件和圖書中出現的大多數科學家和工程師都是歐美人,他們的名字拼寫也是錯誤的重災區。特別是《C程序設計語言》作者之一Brian Kernighan,他的姓Kernighan屢屢被寫成Kernihan或Kernigan,名屢屢被寫成Brain。而UNIX重要貢獻者Douglas McIlroy的姓很奇怪:第三個字母是大寫的I,而不是小寫的l,許多作者和編輯都沒有注意到這一點。寫錯人名,既是對他人的不尊重,也讓讀者感覺作者和編輯很不專業。如果是外版書,在封面或扉頁上寫錯了原作者的名字,更是會引起嚴重問題,影響圖書品牌的傳播和出版社的口碑。下面列出幾位計算機科學家的英文名稱(都是計算機稿件和圖書中的高頻詞),供同行參考。

Dennis Ritchie和Brian Kernighan計算機名著《計算機程序設計的藝術》作者 Donald E. Knuth UNIX發明者 Ken Thompson UNIX重要貢獻者 Douglas McIlroy計算機名著《C程序設計語言》作者Linux發明者 Linus Torvalds C++語言發明者 Bjarne Stroustrup Pascal語言發明者 Niklaus Wirth提出goto語句有害的科學家 Edsger W. Dijkstra
日本的計算機技術也比較先進,因此日本計算機科學家的名字也經常出現在英文計算機文獻中。需要注意的是,在把他們的名字由英文翻譯成漢語時,不能直接音譯,而應該查閱對應的漢語。
編輯在加工、審讀計算機稿件的工作中,要善于發現和解決術語誤用和人名拼寫錯誤問題,這就需要平時的點滴積累。筆者認為,可以勤查字典,多瀏覽計算機技術網站,如果有條件,應該仔細閱讀一些計算機領域的經典著作。