车 忱
(机械工业出版社,北京 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维。“维”字是多余的,一个m×n矩阵在计算机中实际上是一个二维数组,m×n的结果是这个矩阵的元素个数,而不是维数。与此类似,一个n×n矩阵可以称作n阶方阵,或n×n方阵,但不能称作n×n阶方阵。
6. 阈值与阀值。阈值是指最高限值,常出现在计算机、自动化等稿件和图书中。阀值是个较少见的词,出现在“阀值电压”这个术语中(见《辞海》,1999年版缩印本)。“术语在线”网站中也没有收阀值。笔者建议,如果在稿件中,阀值作为一个词单独出现,最好将其改为阈值。
7. 二元运算与二进制运算。二进制运算是指二进制数的四则运算以及与其他进制数的转换,是计算机科学稿件和图书中的常见内容。二元运算常出现在离散数学、信息编码等计算机相关教材和图书中,是指在一个集合中的两个元素(可以是二进制数,也可以是非二进制数)经过运算形成第三个元素。它的英文是binary operation。很多作(译)者看到binary这个词,就想当然地把它翻译成了二进制运算。其实,编辑在加工稿件时,从上下文可以看出,两个术语有很大的区别。
8. 浮点数。在许多计算机语言中,小数通常定义为浮点数(floating-point),而且浮点数这个术语中有个“点”字,所以一些不求甚解的作者会写出诸如“浮点数就是小数”这样的句子。这其实是错误的。早期的计算机由于其体系局限,只能直接表示一部分实数。后来为了扩大表示范围,引入了浮点数的机制。浮点数并不全都是小数,也不能表示所有小数。
9. 登录与登陆。登录是指在计算机系统中登记注册。而登陆是指渡过海洋和江河登上陆地,现在常常比喻商品打入某个市场。计算机稿件中频频出现“登陆”,是受了近二十年来网络文章的影响。现行的《信息技术词汇 第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
日本的计算机技术也比较先进,因此日本计算机科学家的名字也经常出现在英文计算机文献中。需要注意的是,在把他们的名字由英文翻译成汉语时,不能直接音译,而应该查阅对应的汉语。
编辑在加工、审读计算机稿件的工作中,要善于发现和解决术语误用和人名拼写错误问题,这就需要平时的点滴积累。笔者认为,可以勤查字典,多浏览计算机技术网站,如果有条件,应该仔细阅读一些计算机领域的经典著作。