译林出版社

首页 » 译林论坛 » 关注《译林》 » 译林版迈克尔.克赖顿名作Prey(猎物)评议
cyberwar - 2005-12-27 18:06:00
译林版迈克尔·克赖顿名作Prey(猎物)评议
——与Prey译者商榷

            
(此文是我在数月前在此版许下的一个愿,现在陆续完成。)
 

一、原文:
At MediaTronics I had run a program division, riding herd over a group of talented young computer programmers. At forty, I was too old to work as a programmer myself anymore; writing code is a young person’s job. So I managed the team, and it was a full-time job; like most Silicon Valley programmers, my team seemed to live in a perpetual crisis of crashed Porsches, infidelities, bad love affairs, parental hassles, and drug reactions, all superimposed on a forced-march work schedule with all-night marathons fueled by cases of Diet Coke and Sun chips.
 
《猎物》译文:
  我在电子媒体公司担任程序设计部门的主管,手下是一帮才华横溢的年轻程序编制员。我在40岁就太老了,自己已经不能担任编写程序的工作了——那是年轻人干的事情。所以,我管理那个团队,那是一份全职工作。与硅谷的大多数程序编制员类似,我的团队似乎处于没完没了的危机当中;。。。。。。(P4页)
 
评议:
    1。此译本中一律把计算机程序设计人员称为“程序编制员”,这种说法是不确切的。因为在计算机行业里,程序设计人员的通常称呼都是“程序员”、“程序设计员”或“程序师”,却从来没有什么“程序编制员”的说法。程序设计就是设计或者编写程序(而非“编制”程序),通俗地说就是写代码,它与把一堆现有材料做成产品(成品)的工作方式是不同的,它是一种纯粹的创造性的工作,是在系统需求任务书(计划或方案)的基础上,在计算机上用代码把这个系统的所有功能用程序实现出来的一种创造性的活动。显然,这种方式与“编制”的一般概念是完全不同的,而“程序编制员”的叫法只会让人想起那些编制报表的人员;

    2。“it was a full-time job”被译成“那是一份全职工作”似乎有误,似应改为“那是一个全天候的工作”。
 

二、原文:
But the work was exciting, in a cutting-edge field. We wrote what are called distributed parallel processing or agent-
based programs. (P4页)
 
评议:
  Agent-Based是个新词,在计算机业界尚无最终的确定译名,它属于人工智能的范畴,在大陆学院派中通常都是直呼其名,称其为“基于Agent的”(系统或程序),以此规避不确切的译文;在台湾地区则有把它译成“代理人基”(即“基于代理人的”)。相应地,把multi-agent称为“多Agent的”。不过在国内的人工智能科技竞赛项目中,已经有了把“agent-based” 称为“基于智能体的”译法,相应的把Multi-agent System称为“多智能体系统”。在这一点上《猎食》的译者译得很到位。
 

三、原文:
These programs model biological processes by creating virtual agents inside the computer and then letting the agents
interact to solve real-world problems.
 
《猎物》译文:
    “···那种程序在计算机里面创造出虚拟的智能体,然后让它们产生互动,以便解决现实世界的问题,从而模拟了生物学过程。”(P4页)
 
评议:
    这段译文没有什么问题,但似乎这样叙述更好一些:“···这类程序在计算机中生成虚拟的智能体,然后让它们相互作用,以此模拟生物的行为,来解决现实世界中的问题。”  这也就是原文中“model sb. to do sth.”的含义,模拟是手段,解决现实问题是目的。
 

四、原文:
Actually, it was my division’s source code—software for distributed processing. That was the code that had been stolen. We knew it was the same code, because the Easter eggs hadn’t been touched.
 
《猎物》译文:
     “实际上,那是我分管部门的源码——用于分布式并行处理程序的软件。那就是被盗的源码。我们知道它是同样的源码,因为没有谁动过那个叫复活节彩蛋的程序。”(P5页)
 
评议:
      这里的译文可能因为限于译者的计算机水平,只好照字面直译,结果弄得含义有些模糊不清。原文中的破折号“——”并不表示其前后的东西是同一个,而仅表示破折号后面的内容是对其前面内容的说明,毕竟源码并不等于软件,软件是体,源码只是构成软件的元素(正如人由骨和肉组成,但我们却不能说骨和肉就是人)。
    试更正为:“实际上,那是我分管部门写的源码——用于分布式并行处理程序中的源码。就是这个源码被盗了。我们知道那就是我们的源码,因为其中的复活节彩蛋代码原封未动。”
 
 
(待续)
cyberwar - 2005-12-27 18:08:00
做此费力不讨好的事没有别的什么目的,只是想强调一下技术翻译既要大胆,还要小心求证。请大家批评。
cyberwar - 2005-12-28 15:03:00
(续)
 
原文:
In fact, assembling atoms to make a new molecule was closely analogous to compiling a computer program from individual lines of code. And computer code never compiled, the first time out. The programmers always had to go back and fix the lines. And even after it was compiled, a computer program never ever worked right the first time. Or the second time. Or the hundredth time. It had to be debugged, and debugged again, and again. And again.
 

原译文:
实际上,装配原子来构成新分子与用单行代码编制计算机程序非常类似。计算机代码初次根本不能正常工作。程序编制员总是得回过头去整理那些单行代码。而且,即使在程序编好之后,一种计算机程序在第一次运行时都不可能正常工作,第二次运行、甚至第100次运行都有问题。必须反复排除程序中的错误,一次又一次地进行修改。(P29页倒数4行始)
 
 
更正:
实际上,装配原子来构成新分子与把一行行的代码编译成一个计算机程序非常类似。对计算机代码的初次编译从来都是不会成功的。程序员总是得回过头去修改那些代码。而且,即使在编译通过之后,计算机程序在第一次运行时也不可能工作得很好,第二次运行、乃至第100次运行都有可能存在问题。需要对程序反复进行调试和排错,不断地修改和完善。
 
 
 
原文:
Eventually, programmers say the agents have beliefs about their environment, and that they are acting on those beliefs. That’s not literally true, of course, but it might as well be true. It looks that way.
 
原译文:
···最后,程序编制员说,那些智能体对它们所在的环境产生信念,会按照那些信念去产生作用。当然,严格说来并不是这样的,但是,这种情景完全有可能是真的。它看起来是那样的。(P52页4段3行)
 

修正:
···这时,程序员们会说,那些智能体已经对它们所在的环境建立起了概念,并且会依照这些概念来行事。当然,严格说来并不是这样的,但是,这种情形有可能真的存在,因为它看上去就是那么回事。
 

 
cyberwar - 2005-12-29 23:40:00
(续)
对上述第五例(序号漏掉了)的一点说明:
  编译(compile or compiling)是程序设计中的一个非常重要的概念,把编译译成编程是不对的;此外,“用单行代码编制计算机程序”这种说法可以说闻所未闻,“整理那些单行代码”的说法也不合情理。
  在程序设计过程中,编译是一道必不可少的工序。一个程序的设计过程大致是这样的:程序员首先进行代码设计(写代码),得到源代码文件(俗称源程序,因为它不能运行,所以它并不是真正意义上的程序),然后用一个链接程序把源文件与一些具有各种功能的函数库链接起来,得到目标文件,最后,再把这个目标文件经编译器编译成一个可执行的EXE文件,这才得到了我们俗称的所谓程序。基于编译在程序设计中的重要地位,计算机专业中专门辟有一门《编译原理》的课程。
 
七、原文:
“Yes. Xymos licensed some agent-based algorithms that your team wrote.”
“No, I didn’t know. Which algorithms?”
“To control a particle network.”
 
《猎物》译文:
  “是的。艾克西莫斯技术公司得到授权,使用了你领导的团队编写的一些基于智能体的演算法。”
  “不,我不知道。哪一种演算法?”
  “用于控制粒子网络的。” (P21页)

辨误:
  algorithm(s)在计算机术语中的正确译名是“算法”而非“演算法”。也许有人会说这有多大区别?当然有区别!这就好比你不能把经济师叫成算帐师一样,是同样的道理。此外,从字面意义上看,“演算法”给人的感觉是某种演算方法或者算式之类的东西,而在软件设计中,算法的含义却要广得多,它不仅包含了普通意义上的运算,更包括了逻辑推理、事物模拟与仿真、概念抽象、博弈运筹等等一切计算机能够处理的事务中待解决问题的方法。一句话,算法是程序设计的灵魂。显然,把算法译成“演算法”是错误的。
 
cyberwar - 2005-12-30 9:48:00
八、原文:
Certainly my team had written a number of programs to control swarms of agents. Those programs were modeled on behavior of bees. The programs had many useful characteristics. Because swarms were composed of many agents, the swarm could respond to the environment in a robust way. Faced with new and unexpected conditions, the swarm programs didn’t crash; they just sort of flowed around the obstacles, and
kept going.
 
《猎物》译文:
  我可以确定,我的团队曾经编写了若干用于控制智能体集群的程序。那些程序是根据蜜蜂的行为来建立模式的。那些程序拥有许多有用的特征。因为集群是由许多智能体构成的,集群能够对环境作出有力反应。在面对新的、没有预计到的状态时,那些集群程序不会崩溃,它们只是绕过障碍,然后继续运行。(P21页倒数第4段)
 
辨析:
  此处的译文晦涩费解,很难让人明白就里。实际上,原文在这里主要是想强调:尽管单个个体适应环境的能力几乎为零,但一旦组成为一个群体,其适应能力就会大大增强,蜜蜂、蚂蚁就是这样的典范。可惜《猎物》的译者没有把这个道理向读者阐述清楚。
 
修正:
  我的团队确实写过不少用于控制智能体集群的程序。那是一些用于模仿蜜蜂行为的程序,具有许多有用的特征。因为集群是由众多智能体组成的,所以它对环境的适应能力非常强。在新的、预想不到的情况发生时,集群程序并不会崩溃,它们在障碍面前只是略显迟钝,但却依然能够继续运行下去。
  
cyberwar - 2005-12-30 12:04:00
九、原文:
“We use them for structure,” she said. “The program makes the swarm structure.”
Of course. It was obvious that a single molecular camera was inadequate to register any sort of image. Therefore, the image must be a composite of millions of cameras, operating simultaneously. But the cameras would also have to be arranged in space in some orderly
structure, probably a sphere. That was where the programming came in. But that in turn meant that Xymos must be generating the equivalent of—
 
《猎物》译文:
  “我们利用它们作为结构,”她说,“该程序形成了集群结构。”
  当然。显而易见,单个的分子摄像头是不能形成任何图象的。因此,图象必须由数百万个同时工作的摄像头组成。但是,那些摄像头也可以在空间中按照某种有序的结构——可能是球形——进行排列。我们的编程就是在这一点上发挥作用的。但是,那反过来又意味着,艾克西莫斯技术公司一定在生成相当于——
 
辨析:
  这里的译文同样让人摸不着头脑。我想原因在于译者并未完全明白原文的技术含义,于是只好逐字死译,使译文偏离了本意。这里的原文有二层意思:一是朱丽亚及其公司是根据智能体程序的设计原理制造出了真实世界中的智能体;二是摄像头集群是在程序控制下进行工作的。注意“in space”在这里的意思不是“在空间中”,而是“片刻间”。
 
更正:
  “我们借用了程序的构架,”她说,“集群是按照程序的设计思想制造出来的。”
  当然,很明显单个的分子摄像头并不适合记录任何图象,必须有数以百万计的摄像头同时工作才能把(那样一幅完整的)图象合成出来。但是,那些摄像头还必须能够在片刻间被排列组合成某种有序的结构,或许是球形的结构。这是通过程序控制来实现的。不过,那反过来又意味着,艾克西莫斯技术公司谅必是正在制造与此类似的——
cyberwar - 2006-1-2 9:20:00
十二、原文:
In evolutionary programs, those agents get killed off. They have no children. In other multi-agent programs, they just get bypassed, pushed to the periphery while the main thrust of agents moves on. Some programs have a “grim reaper” module that sifts them out from time to time, and pulls them off the board.
But the point is, they’re stuck in their own past. Sometimes they pull themselves together, and get back on track. Sometimes they don’t.
原译:
    在逐步发展的程序中,那些智能体被消灭了。它们没有后代。在其它许多智能体程序中,智能体的主要倾向产生了作用,那些过时的东西只是被绕过,被推向边缘。有的程序拥有一种“严厉的收割者”模块,那样的模块定期将它们剔除出去,使它们脱离系统
    但是,现在的问题是,它们被困在它们自己的历史之中。有时候,它们集结起来,回到系统之中。有时候,它们不那样做。(P52页倒数第3、2段)

更正:
    在改进的程序中,这一类智能体将被清除掉,不会有后代留下来。在其它一些多智能体程序中,这类智能体的存在将被忽视,只有那些起主导作用的智能体能发挥作用。有些程序带有一种称为“恐怖割刀”(grim reaper)的模块,它能够定期把那些(变异的)智能体从棋盘上剔除出去。
    但是问题在于,它们被卡在自己过去的经历当中进退维谷。有时,它们能够恢复正常,迷途知返;有时它们又做不到。
 
注:
  grim reaper:这是一个生物学意义上的名词,指那些能够根据生物机体的需要、杀死某些机体细胞的基因,意即“细胞死神”。
cyberwar - 2006-1-2 9:22:00
十三、原文:
“Head of a team to design multi-agent systems for an insurance company that’s doing data mining. It’s an excellent opportunity, and—”

原译:
  “一个研发多智能体系统的课题组主任职位,为开发数据的保险公司工作。这是一个非常好的机遇,而且——”(P65页倒数4、5行)
 
更正:
  “担任一个多智能体系统研发小组的负责人,为一家保险公司从事数据挖掘工作。这是一个非常好的机遇,而且——”
 
注:数据挖掘(data mining):从海量数据中发掘和搜集潜在的有用信息,为用户提供决策依据的技术。
cyberwar - 2006-1-3 23:50:00
十四、原文:
“I don’t get it,” I said. “I’m perfectly positioned in a hot field, multi-agent distributed processing, and—”
“Hot?” she said, squinting at me. “Distributed processing’s not hot, Jack. It’s fucking radioactive. Everybody in the Valley figures that the breakthroughs in artificial life are going to come from distributed processing.”
“They are,” I said, nodding.
 
原译:
  “我不明白”我说,“我在一个热门领域中拥有优势地位,多智能体分布式并行处理,而且——”
  “热门?”她问,半眯着眼睛看着我,“分布式并行处理并不热,杰克。它具有令人讨厌的放射性。硅谷里的每个人认为,人工生命领域的突破性发展将来自分布式并行处理。”
  “它们会出现的,”我点头赞同。          (P67页3—8行)
 
分析:
  上面这段译文充满了矛盾,一会说分布式处理是热门(原文没有“并行”二字),一会又说不是,然后又说人工生命领域的突破性发展将来自分布式处理。此外,“令人讨厌的放射性”这种说法还真有点让人犯糊涂。其实,原文的意思是说:这个热门不仅火热得很,而且是热得来成了个向其它领域到处辐射的放射源了。
 
更正:
   “我不明白”我说,“我在多智能体分布式处理这个热门领域中有个极佳的职位,而且——”
  “热门?”她斜着眼睛看着我说。“分布式处理不是热,杰克。该死的它是个辐射源。硅谷里的每个人都认为,人工生命领域内的重大突破将因分布式处理技术而促成。”
  “的确如此,”我点头赞同。
cyberwar - 2006-1-4 23:58:00
十五、原文:
In the last few years, artificial life had replaced artificial intelligence as a long-term computing goal. The idea was to write programs that had the attributes of living creatures—the ability to adapt, cooperate, learn, adjust to change. Many of those qualities were especially important in robotics, and they were starting to be realized with distributed processing.
 
原译:
  在过去几年中,人工生命已经取代了人工智能,一跃变为计算机业的长期奋斗目标。奋斗的理想是编写出具有生命特征的程序——那些程序能够改写,协作工作,学习新知识,适应出现的变化。许多这样的性质在机器人技术中尤其重要,它们已经借助分布式并行处理开始变为现实。(P67页第5段)
 
分析:
  《猎物》的译者在这里错把idea(想法)看成了ideal(理想);adapt在这的意思是“自适应”而非“改写”。
 
修正:
  在过去几年中,人工生命已经取代人工智能成了计算机领域里的一个长远研究课题。其设想是设计出具有生物属性的程序——这种程序能够自我调节,相互协作,学习新知识,适应出现的变化。这些特征在机器人技术中大多数都非常有用,而且已开始应用分布式处理技术来实现。
 
十六、原文:
For example, they tried to teach computers that if someone bought something at a store, they had to pay before leaving. But this commonsense knowledge proved extremely difficult to program. The computer would make mistakes. New rules would be added to avoid the mistakes. Then more mistakes, and more rules. Eventually the programs were gigantic, millions of lines of code, and they began to fail out of sheer complexity. They were too large to debug. You couldn’t figure out where the errors were coming from.
 
原译:
  例如,他们试图要计算机懂得:如果有人在商店里选择了商品,他们必须在离店之前付钱。但是,结果却很难将这种日常知识编为程序。计算机会出错。必须增添新程序以避免那些错误。结果是错误越多,规则越多。所用的程序最终越来越庞大,涉及数百万条编码,这使它们开始因为复杂性而出错。那些程序太大,无法排除错误。人们无法找到错误出现在什么地方。(P68页第2行始)
 
分析:
  “把日常知识编为程序”这句话容易让人产生误解。原文在这里强调的是力图让计算机具有人的一些最简单的技能而非知识。因为“把知识编为程序”是一件很简单的事情——只要把这些知识输入进计算机,存入数据库中,需要时往外调用就行了。这里的区别在于,让计算机处理人的知识非常容易,但是让计算机按人的一些最简单的常识来行事却异常困难。
  另外要说明一点,从这一段开始,原文对软件设计行业发展过程中经历的“软件危机”、结构化程序设计方法的缺陷等内容做了简略的叙述。其中谈到的“基于规则”(rule-based)的设计方法,更确切的称呼应为“结构化的程序设计方法”(structured programming)。
 
修正:
  例如,他们试图教会计算机明白:如果有人在商店里选择了商品,他们必须在离店之前付钱。但是,实践证明这些习以为常的技能通过编程实现非常困难。计算机总是会不停地犯错误。为避免出错你得在程序中增加这样那样的规则,其结果是错误越来越多,规则也越来越多。最终程序变得异常庞大,动辄就是数百万行代码,然后程序便开始因其过于复杂而走向崩溃。太庞大的程序是无法调试的,人们无法弄清那些错误究竟出自哪里。
 
cyberwar - 2006-1-5 14:58:00
十七、原文:
So it began to seem as if rule-based AI was never going to work. Lots of people made dire predictions about the end of artificial intelligence. The eighties were a good time for English professors who believed that computers would never match human intelligence.
 
原译:
  所以,人们面对的情况好象是,基于规则的人工智能走入了死胡同。许多人作出了可怕的预测:人工智能将会寿终正寝。英国教授们相信计算机绝对可能赶上人类的智能;20世纪80年代是他们的理论大行其道的时期。(P68页第2段)
 
分析:
  这又是一段前后矛盾的译文。前面说“人工智能将会寿终正寝”,后面又说“计算机绝对可能赶上人类的智能”,不知这是译错了还是印刷错了。此外,何谓“英国教授们相信”?美国教授、其它国家的教授们不信乎?
 
更正:
  因此,基于规则的人工智能似乎从来也没有成为现实。许多人悲观地预测说人工智能将会寿终正寝。那些相信计算机绝对不可能拥有人类智力水平的英语教授们的理论,在20世纪80年代曾昌盛一时。
 
cyberwar - 2006-1-22 15:02:00
  西汉时的司马迁因为为李陵说了几句好话,触怒了皇帝,结果被汉武帝施以宫刑。嘿嘿!幸亏我们今天没生活在那个时代,否则罪魁祸首如我定难逃大辟惩罚,而诸位捧场者则要小心象太史公那样挨一刀哟!(哎呀!那滋味想一想都让我屁滚尿流!)
vera_cs - 2006-1-20 14:11:00
其实要我就巴不得有人肯费心思帮我改错,呵呵
 
www.transfun.net
yrj_2001_0000 - 2006-1-20 22:17:00
的确,有人肯帮你指出错误,帮助你提高,该高兴才是
wangt3t - 2006-1-21 13:01:00
《达芬奇密码》等的译者可不是这么想的!
http://www.stph.com.cn/mybbs/Announce/Announce.asp?BoardID=10&ID=99430
yrj_2001_0000 - 2006-1-21 15:15:00
朱某人的那一番学问最是荒谬,偶叹息不止,根本是个没逻辑的辩驳,
 
有错误就要承认嘛,这人从小到大连这都没学会!
cyberwar - 2006-1-6 11:54:00
十八、原文:
But distributed networks of agents offered an entirely new approach. And the programming philosophy was new, too. The old rules-based programming was “top down.” The system as a whole was given rules of behavior.
But the new programming was “bottom up.” The program defined the behavior of individual agents at the lowest structural level. But the behavior of the system as a whole was not defined. Instead, the behavior of the system emerged, the result of hundreds of small interactions occurring at a lower level.
Because the system was not programmed, it could produce surprising results. Results never anticipated by the programmers. That was why they could seem “lifelike.” And that was why the field was so hot, because—
 
原译:
  但是,分布式并行处理的智能体网络提供了一种全新方式。而且,那种编程方式的理念也是新的。基于规则的陈旧编程方式是“自上而下的”。在总体上给系统制定了行为规则。
  但是,新的编程方式是“自下而上的”。这种程序在最低结构层面上规定单个智能体的行为。然而,并未在总体上规定系统的行为。系统的行为是自动浮现出来的,那是发生在更低层面的数以百计的微小互动的结果。
  因为系统并未被编程,它能够形成令人吃惊的结果。程序编制员绝对没有预测到的结果。这就是那种程序看来“拥有生命”的原因。而且,这就是该领域如此热门的原因,因为——
                                                                       (P68页第3-5段)
说明:
  这几段译文主要是阐述得不够清楚。其中“old rules-based programming”实际上并不是“陈旧的编程方式”,因为设计方法的革命主要体现在看待设计对象的方式上和系统设计上。传统的程序设计方法只是不适应规模巨大和太复杂的系统的设计,而在所有的程序模块内部,无一例外离不开“rules-based programming”。试改译如下。
 
改译:
  但是,分布式的智能体网络为我们提供了一种全新的途径。它的程序设计思想也同样是新的。传统的基于规则的设计方法乃是“自顶向下”的,在给系统赋予行为规则时是将其当做一个整体看待的。
  而新的程序设计方法是“自底向上”的。程序在底层定义单个智能体的行为,系统作为一个整体其行为则不予定义,而是由发生在低层的许许多多个小的相互作用的结果自然而然体现出来。
  因为并不存在系统级的编程,程序运行时会产生一些令人吃惊的结果。这些结果就连设计人员也无法预料。这就是它们为什么看上去象是“有生命”的原因,同时也是该领域为何如此热门的原因,因为——
cyberwar - 2006-1-7 13:34:00
十九、原文:
If you figure beta debugging to golden master takes four months, 。。。
 
原译:
  如果你考虑到从试验除错到推出黄金版本需要4个月时间,。。。(P76页8行)
 
改译:
  如果你考虑到从测试阶段的贝塔版到推出正式版还需要4个月时间,。。。

注:贝塔版(β版):一种新软件在正式推向市场之前所经历的测试阶段的第二个版本。
 
二十、原文:
Agent-based programs that modeled biological populations were increasingly important in the real world. Like my own programs that mimicked ant foraging to control big communications networks. Or programs that mimicked division of labor among termite colonies to control thermostats in a skyscraper. And closely related were the programs that mimicked genetic selection, used for a wide range of applications.

原译:
  基于智能体的程序以生物群体为模式,在现实世界中的地位越来越重要。它与我搞的模仿蚂蚁寻食行为来控制巨大交流网络的程序类似。或者,它与模仿白蚁群体的劳动分工来控制摩天大楼中温度自动调节器的程序类似。除此之外,与它密切相关的是实际应用领域十分广泛的模仿遗传选择的程序。(P77页1—5行)

改译:
  模仿生物群体行为的基于智能体的程序,在现实世界中的应用价值越来越大。象是我自己开发的那种通过模仿蚂蚁寻食行为来管理大的交通网络的程序,或者模拟白蚁群落的分工协作来调节摩天大楼温控器的程序等,均属此类。与此相近的还有用途广泛的模拟遗传选择的程序。
cyberwar - 2006-1-7 13:36:00
二十一、原文:
So, yes, I had been in the right place at the right time. But I wasn’t passive, I was lucky.
 
原译:
  所以,我说得对,我在适当的时机处于适当的领域。(遗漏了后面一句话)  (P77页倒数第8行)
 
补正:
  所以,的确,我在适当的时机处于适当的领域。但我不是被动的,我只是足够幸运罢了。
cyberwar - 2006-1-8 16:23:00
二十二、原文:
Personally, I always thought there was a clue from computer programming, in a procedure called recursion. Recursion means making the program loop back on itself, to use its own information to do things over and over until it gets a result. You use recursion for certain data-sorting algorithms and things like that. But it’s got to be done carefully, or you risk having the machine fall into what is called an infinite regress. It’s the programming equivalent of those funhouse mirrors that reflect mirrors, and mirrors, ever smaller and smaller, stretching away to infinity. The program keeps going, repeating and repeating, but nothing happens. The machine hangs.

原译:
  就个人而言,我一直觉得,在一种称为递回的方法中,计算机编程方法给了人们一种提示。递回的意思是让程序循环运行,利用它自己的信息去重复做同样的事情,直到获得结果。人们可以利用递回来进行特定的数据分类演算以及类似的工作。但是,做这种工作必须谨慎从事;否则,就可能使计算机陷入一种被称为无限倒退的危险。所谓的无限倒退是类似于游乐宫里的连环镜的程序——连环镜反射出其他镜子,那些镜子越变越小,逐渐延伸,直至无穷。程序一直运行,不断重复,但是不会形成结果。计算机无法进行判断。(P78页第2段)
 
分析:
  这段译文就是让我鼓起劲头来写这篇吃力不讨好的文字的起因。recursion的正确译名是“递归”而不是“递回”。递归是数学中的一个重要的概念,根据它设计的递归算法是程序设计中的一个强有力的工具,数学中的一些著名命题如“八皇后问题”、“Hanoi塔问题”,都是可以使用递归方法进行解决的很好的例子。稍微有些计算机知识的人(例如在计算机普及教育中学过Basic语言的人)都应该知道这个名词。这个译名早在20世纪60年代初我国开始引进并研制计算机时就已经正式确定。尽管从字面上看“递回”与“递归”的意思相同,但正如我们不能把数学上的“群论”叫做“群理”一样,有着同样的道理。把它译错是很不妥的。
  hang(s)的意思不是什么“无法进行判断”。玩电脑的人都知道这个词的意思,就是“挂了”、“完蛋了”、“宕机了”。
 
更正:
  就个人而言,我常常会想到程序设计中一种称为递归的过程给人的提示。递归的意思是让程序在运行时循环引用它自己,利用它自身的信息重复做同样的事情,直到获得结果。递归主要用于一些数据分类算法及类似的操作中。但是使用递归时必须小心,若是处理不好,有可能使计算机陷入被称之为“无限回归”的陷阱当中。“无限回归”是指程序设计中出现的类似于游乐宫里的连环镜的场景——在一个镜子中反照出另一个镜子缩小的身影,另一个镜子中又反照出下一个,如此重复下去,使镜子中的影象越来越小,直至无穷。这样的程序会不停地运行下去,循环往复,却什么结果也没有,计算机也因此而宕机了。
yrj_2001_0000 - 2006-1-8 23:49:00
要整理出这样一个帖子,花费的心血定是不少.
 
看过这个贴,相信cyberwar 应该也是理工科毕业的吧!
 
现在不少国外的畅销小说都带有很强的专业背景,在小说中就不可避免地会出现不少的技术名词.
 
要准确得体地翻译好这类小说,没有一定的学术背景和宽广的阅读面是不行的.
 
我认为,翻译它们的难度不下于翻译硬科幻的小说.
trans - 2006-1-9 16:47:00
楼主辛苦了。翻译从来就是不完美的艺术。《猎物》单行本如果重版,我们会参照您的意见,对译文作适当的修正。再次感谢。
cyberwar - 2006-1-9 18:08:00
谢谢楼上两位朋友。你们的回复让我颇费踌躇,不知是否还应继续贴下去。的确,翻译从来就是不完美的艺术。就我个人而言,也仅仅因为涉足了一点翻译,而深知此道的艰辛。在此我想强调一点,贴出的以上内容,并不代表我对原译者有什么看法,而仅仅是希望文学批评能够被视为很普通的一件事。人非圣贤,孰能无过?
yrj_2001_0000 - 2006-1-9 20:26:00
的确,凭心而论,当初我读<猎物>的时候,虽觉译文不足,缺少出彩之处,但至少还有兴趣读下去,
 
可是2006年第一期的长篇小说,实在是........
 
 
cyberwar - 2006-1-9 22:39:00
  回头想了想,还是把已经找出的bug捉完吧。就象我自己的译文(见“翻译在线”内贴的拙译《夜海钩沉》),若非weilin、kaythomas和woi55等朋友的针砭,我自己还沾沾自喜、不知道会错到什么年月里去哩。论事不论人,也算是对《猎物》单行本的再版做的一点小小的贡献。
--------------------------------------------------------
 
二十三、原文:
For example, before I was fired, my development team was using multi-agent processing to enable computers to learn, to recognize patterns in data, to understand natural languages, to prioritize and switch tasks. What was important about the programs was that the machines literally learned. They got better at their jobs with experience. Which is more than some human beings can claim.

原译:
  例如,在我被解雇之前,我领导的研发团队利用多智能体处理方法,使计算机产生学习行为,辨识数据中的模式,理解自然语言,按优先顺序列出并执行任务。那项程序的重要意义在于,计算机确实有了学习能力。它们随着经验的积累去改进执行任务的能力。这超出了某些人认为机器具有的功能。(P79页8—12行)

改译:
  例如,在我被解雇之前,我那个研发小组运用多智能体处理技术使计算机具备如下能力:自我学习,识别不同的数据模式,理解自然语言,以及把任务按优先级进行排序和切换。这类程序的重要意义在于,计算机确实具备了学习的能力。随着经验的逐步积累,它们的表现也会越来越好。其效果已超出了某些人的想象。

二十四、原文:
PREDPREY was a system we’d designed over a year ago. Like most of our programs, it had been based on biological models. PREDPREY was a goal-seeking program based on predator/prey dynamics. But it was extremely simple in its structure.

原译:
  “掠食猎物”是我们在一年之前设计的。与我们涉及的大多数程序类似,它是以生物模式为基础的。“掠食猎物”是一种基于掠食者与猎物之间动力的目标寻找程序。但是,它的结构非常简单。(P84页倒数第8行—倒数第5行)

分析:
  “一种基于掠食者与猎物之间动力的目标寻找程序”,这句话的含义令人费解。

改译:
  “掠食者”系统是我们在一年多以前设计的。它跟我们开发的大多数程序一样,是一种建立在生物行为模拟基础上的程序。“掠食者”是一种基于捕食者与猎物之间的动态目标搜寻程序。但它在结构上却非常简单。

cyberwar - 2006-1-10 13:58:00
二十五、原文:
“I’m not surprised,” I said, “because we didn’t specify reinforcers.” Reinforcers were program weights that sustained the goals. The reason you needed them was that since the networked agents could learn, they might learn in a way that caused them to drift away from the goal. You needed a way to store the original goal so it didn’t get lost. The fact was you could easily come to think of agent programs as children. The programs forgot things, lost things, dropped things.
It was all emergent behavior. It wasn’t programmed, but it was the outcome of programming. And apparently it was happening to Xymos.
 
原译:
  “我并不感到吃惊,”我解释说,“因为并未确定增强参数。”增强参数是维持目标的程序力量。需要那些程序力量的理由在于,由于网络智能体具有学习能力,它们可能以一种促使它们脱离目标的方式学习。所以,需要一种方式来储存最初目标。以便使它不会失去。事实上,人们可以直截了当地将智能体程序视为儿童。该程序忘记事情,丢失东西,放弃东西。
  这一切全是自动出现的行为。它没有被编入程序,然而它是编程的结果。显然,艾克西莫斯技术公司遇到的正是这样的问题。(P85页5—13行)
 
改译:
  “我并不感到吃惊,”我解释说,“因为并未指定强化参量。”强化参量是程序中用来确认目标有效的程序权值,之所以需要它们,是因为组网的智能体既然具有学习能力,它们就有可能会以一种导致它们偏离目标的方式去学习。因此,你需要把原始的目标储存起来,以免找不到它。其实,你可以简单地把智能体程序看做是一帮孩子,它们既会忘记事情,也会丢三落四。
  这些行为全都是自然发生的。编程时并没有设计它们,可它们却是编程的结果。很明显,艾克西莫斯技术公司就遇到了这样的问题。
cyberwar - 2006-1-10 14:00:00
二十六、原文:
And these days natural language programs were starting to involve distributed processing. Because it turned out people evaluate a sentence in several ways simultaneously, while it is being spoken; they don’t wait until it is finished but rather they form expectations of what is coming. That’s a perfect situation for distributed processing, which can work on a problem at several points simultaneously.
 
原译:
  而且,自然语言程序近来开始涉及分布式处理。因为人们在组成句子的过程中实际上同时以几种方式进行评价,形成对新信息的期待——他们不会等到句子被完全说出来之后才进行评价。那就是分布式处理的完美情景,分布式处理可以在几个点上同时解决一个问题。(P117页第3段8—12行)
 
改译:
  近来,自然语言编程开始引入分布式处理技术。研究发现,人们在听到一句话时,对这句话的评判实际上是同时以几种方式进行的,你不会等到别人把一句话全部说出来后才对它的含义做出评判,而是话还未说完就开始了。对分布式处理来说,这是一种理想的情况,即它可以在同时几个方向上处理一个问题。
yrj_2001_0000 - 2006-1-10 19:15:00
 cyberwar,《夜海钩沉》获得出版了吗?
cyberwar - 2006-1-11 10:05:00
没有出版。呵呵,估计没戏了。
cyberwar - 2006-1-11 10:18:00
 
最后一贴。
 
 
二十七、原文:
“Shit, I have better things to do,” Charley said. “But I wrote the algorithm that controls the sensors, and we need to optimize the sensor code after they’re done. I’m just waiting until they stop screwing around. Then I’ll optimize.” He looked pointedly at Bobby. “None of these guys can optimize worth a damn.”
 
原译:
  “废话,我还有更重要的事情需要处理,”查理说,“不过,控制传感器的规则系统是我编写的,需要在他们弄完以后优化传感器编码。我等在这里让他们先检查传感器。然后,我进行优化。”他盯着博比,“这些家伙没有哪一个会搞优化。” (P123页第3段)
 
分析:
  “worth a damn”的意思是“有一点儿价值”。“None of these guys can optimize worth a damn.”这句话并不是说博比等人不会做代码优化工作,只不过水平太低,做的毫无价值罢了。
 
改译:
  “废话,我还有更重要的事情需要处理,”查理说,“不过,控制传感器的算法是我写的,等他们干完活后,我们需要对那些传感器代码进行优化。我只不过在这等着他们把事情鼓捣完。然后我就去做优化工作。”他盯着博比,“这些家伙没一个会做象样的代码优化
 
 
二十八、原文:
Commanders on the ground could call up the images they wanted, in the spectra they wanted—visible, infrared, UV, whatever. Real-time imaging was going to be a very powerful tool in future warfare.”
 
原译:
  “···地面指挥官可以调出他们需要的图象,排成他们想看的系列——图片的、红外线的、紫外线的,等等。在未来战争中,实时成像将会是一种非常强有力的工具。”  (P125页2—4行)
 
分析:
  《猎物》的译者在这里把“spectra”(光谱,频谱)这个词错译成了“系列”,相应地就把“visible”(可见的)想当然地错译成了“图片的”。实际上,这一段的原文仰赖于一点物理学的知识。此处“visible, infrared, UV”意指分别用普通(可见光)摄像镜头、红外线摄像镜头、紫外线摄像镜头拍摄的图象。

改译:
  “···地面指挥官可以按照不同光谱拍摄的图像来调出他们想要的——可见光拍摄的、红外线光拍摄的、紫外线光拍摄的,等等。在未来战争中,实时成像技术将会成为一种非常有用的工具。”
 
 
二十九、原文:
I was familiar with the problem. The nanoparticles in the cloud had to be endowed with a rudimentary intelligence, so that they could interact with each other to form a flock that wheeled in the air. Such coordinated activity might look pretty intelligent, but it occurred even when the individuals making up the flock were rather stupid. After all, birds and fish
could do it, and they weren’t the brightest creatures on the planet.
 
原译:
  我对这个问题了如指掌。必须使云状物中的纳米微粒拥有初级智能,以便让它们产生互动,形成一种在空气中旋转的集群。那种协作活动可能显得具有相当高级的智能,但是即使在组成该集群的单个微粒比较愚蠢的情况下,那样的活动也能出现。毕竟,鸟类和鱼类都能做到那一点,而它们并不是地球上最聪明的生物。(P125页最末一段)
 
分析:原译文字比较生硬费解,试改译如下。
 
改译:
  我很清楚这个问题出在哪。必须给云状物中的纳米粒子赋予初级智能,这样它们才能够相互配合,形成一个在空中盘旋的集群。这样的协作有可能呈现出相当高级的智能,而且即便是组成该集群的每一个单独的粒子智力都很低下,那种高智能的协作也会出现。毕竟,鸟类和鱼类都能做到这一点,而它们并不是地球上最聪明的生物。
 

三十、原文:
Nor were individual birds genetically programmed for flocking behavior. Flocking was not hard-wired.
 
原译:
  鸟类个体也未在遗传上编有产生群集行为的指令程序。群集行为并不是硬件连接的。(P126页第4段1—2行)
 
修正:
  鸟类个体在遗传编码上并没有为群集行为建立指令。群集行为并不是硬性编排的。
 

三十一、原文:
Individual agents—whether programming modules, or processors, or as in this case, actual micro-robots—could be programmed to cooperate under certain circumstances, and to compete under other circumstances. They could be given goals. They could be instructed to pursue their goals with single-minded intensity, or to be available to help other agents. But the result of these interactions could not be programmed. It just emerged, with often surprising outcomes.
 
原译:
  单个智能体——不论它们是编制程序的模块,还是处理器,还是在本个案中的真正的微型机器人——被编入指令程序,在特定情况下协作工作,而在别的情况下互相竞争。可以给它们设定目标。可以让它们以单一定向的强度去寻求目标,或者发挥作用去帮助其他智能体。但是,无法将这些互动作用的结果编入程序加以控制。它只是自动浮现出来,而且常常形成出人意料的结果。(P127页第1段)
  
改译:
  单独的一个个智能体——不论它们是程序模块,处理器,还是在目前情况下事实上是一些微型机器人——都可以通过编程使它们在某种情况下相互协作,在另外一些情况下则互相竞争。可以为它们设定好目标,命令它们一心一意地去追踪;也可以让它们去做协助别的智能体的工作。但是,它们之间的这些相互作用的结果却是无法通过编程来实现的。这个结果只会自然显现出来,而且常常出人意料。
 
就此打住。谢谢大家!
12
查看完整版本: 译林版迈克尔.克赖顿名作Prey(猎物)评议