【9.21更新】跟踪报道TopLanguage关于《深入理解计算机系统(第2版)》一书翻译问题 的讨论

【9.21更新】跟踪报道TopLanguage关于《深入理解计算机系统(第2版)》一书翻译问题 的讨论

在互动网预订《深入理解计算机系统(原书第2版)》,前1000名预订会员,即可享受双重优惠——7折 & 买一赠一。

 

 预订链接http://www.china-pub.com/STATIC/zt_mb/huodong/jsj_shenru_101027/jsj_shenru_101027.asp

 

【引子】

在TopLanguage里,我把《深入理解计算机系统(第2版)》译者在翻译过程中遇到的一些问题发布出来,请教各位高手,反响很强烈。与此同时,译者也已经加入到这次讨论当中。特分享在这里。当然,有兴趣的话,你也可以到这里查看:http://groups.google.ht/group/pongba/browse_thread/thread/acd33c3b1be37126

TopLanguage简介
这是由刘未鹏(pongba,http://mindhacks.cn/) 建立的一个综合技术讨论组,2007年7月成立。
用户人群主要是程序员、计算机科学的Geeks。
有网友称,这是国内讨论水平最高的技术邮件列表之一。

【帖子正文】


liujing

原版书名:Computer Systems: A Programmer's Perspective (2nd Edition)
亚马逊链接:
http://www.amazon.com/Computer-Systems-Programmers-Perspective-2nd/dp...

中文版书名:深入理解计算机系统(第2版)
译者:龚奕利、雷迎春
出版社:机械工业出版社
预计出版时间:10月下旬

翻译过程中,译者遇到几个问题,想在这里听听大家的意见——

一、chunk与block出现在同一句中,该如何区分呢?(因为chunk习惯翻译成“块”)
1. (摘自P627,第一段)The storage at level k + 1 is partitioned into contiguous chunks of data objects called blocks.


2. (摘自P639,练习题6.12)In general, if the high-order s bits of an address are used as the set index, contiguous chunks of memory blocks are mapped to the same cache set.


二、下面两个句子翻译把握不准
3. (摘自P996,练习题12.8上面一段)In order to guarantee correct execution of our example threaded program—and indeed any concurrent program that shares global data structures—we must somehow synchronize the threads so that they always have a safe trajectory.
   译者翻译:为了保证我们的线程化程序示例的正确执行——实际上任何共享全局数据结构的并发程序的正确执行——我们必须以某种方式同步线程,使它们总是有一条安全轨迹线。


4. (P744,第三段)Throughout this text, we will refer to system calls and their associated wrapper functions interchangeably as system-level functions.
   译者翻译:在本书全文中,我们将系统调用和与它们相关联的包装函数称为系统级函数,这两个术语可以互换地使用。


sunskyor sunskyor

> 一、chunk与block出现在同一句中,该如何区分呢?(因为chunk习惯翻译成“块”)
> 1. (摘自P627,第一段)The storage at level k + 1 is partitioned into contiguous chunks of data objects called blocks.

这个直接译是有点怪怪的,不过也还好吧。
contiguous chunks of data objects called blocks.= 连续的数据对象块(或段/片段)被称为块。

2. (摘自P639,练习题6.12)In general, if the high-order s bits of an address are used as the set index, contiguous chunks of memory blocks are mapped to the same cache set.


contiguous chunks of memory blocks = 连续的内存块...

chunk这句中不译何如?

> 二、下面两个句子翻译把握不准
> 3. (摘自P996,练习题12.8上面一段)In order to guarantee correct execution of our example threaded program—and indeed any concurrent program that shares global data structures—we must somehow synchronize the threads so that they always have a safe trajectory.
>   译者翻译:为了保证我们的线程化程序示例的正确执行——实际上任何共享全局数据结构的并发程序的正确执行——我们必须以某种方式同步线程,使它们总是有一条安全轨迹线。

这句“实际上任何共享全局数据结构的并发程序的正确执行“可以放在括号里当补充说明。

“安全轨迹线”这种翻译感觉不太好,还不如意译。

为了保证我们的线程化程序示例的正确执行(实际上,对于任何共享全局数据结构的并发程序,均需如此),我们必须以某种方式同步线程,使它们能够安全运行。

4. (P744,第三段)Throughout this text, we will refer to system calls and their associated wrapper functions interchangeably as system-level functions.

>   译者翻译:在本书全文中,我们将系统调用和与它们相关联的包装函数称为系统级函数,这两个术语可以互换地使用。

意译是否更好些?
“本文中,系统调用及其关联的包裹函数将被称为系统级函数。。


chuang

问一句题外话,有影印版本出版么?


qiaojie

根据意思,chunk是小块,block是大块。
1、k+1级的存储空间被分割为连续的块用于存放数据对象,我们称之为区块。(这句可能理解有点歧义,需要看上下文了)
 2、一般说来,如果将高位地址的比特位作为集合索引,在内存区块中一些连续的小块将被映射到同一个缓存集中。

> 二、下面两个句子翻译把握不准
> 3. (摘自P996,练习题12.8上面一段)In order to guarantee correct execution of our example threaded program—and indeed any concurrent program that shares global data structures—we must somehow synchronize the threads so that they always have a safe trajectory.
>   译者翻译:为了保证我们的线程化程序示例的正确执行——实际上任何共享全局数据结构的并发程序的正确执行——我们必须以某种方式同步线程,使它们总是有一条安全轨迹线。

为了保证我们的线程化程序示例的正确执行——确切的说任何共享全局数据结构的并发程序——我们必须以某种方式同步线程,使它们总是沿着安全的轨迹运行。

4. (P744,第三段)Throughout this text, we will refer to system calls and their associated wrapper functions interchangeably as system-level functions.

>   译者翻译:在本书全文中,我们将系统调用和与它们相关联的包装函数称为系统级函数,这两个术语可以互换地使用。

本文中,我们将系统调用或与其相关的包装函数统称为系统级函数。


   

lianghu xu

同求影印版


linjunhalida

我以前买过一本. 不知道是不是2nd的.


Christian

chunk一般指不一定规则的碎片,近似fragment,block一般指规则的块
我觉得chunk译成“片”比较合适


liujing

第2版出版日期February 14, 2010,不知道你啥时候买的?


linjunhalida

估计我是看的第一版.


Milo Yip

沒看過此書,只按字面嘗試:

1, 2

- 若chunk沒有特別意思,或可不譯。要譯也可以用中文量詞,例如「一串連續的數據對象」、「一段連續的內存」
- 似乎1、2中的block不是同一概念。若必須分開,還可以考慮譯作區、區塊、分塊、分區。用"分"可能和partition相應。

3. 「我們的綫程化程序示例,如同任何共享全局數據結構的並發程序,為保証能正確執行,也必須用某方式對綫程進行同步,才可保有安全的軌跡綫(?)。」

- "同步"在中文裡好像以形容詞出現較多,所以用"對……進行同步"好像比較清楚
- 不知道safe trajectory是甚麼,如果和correct execution是同意思,或可合併。

4. 「本文中,系統調用和其對應的包裝函數,或會統稱為系統級函數。」

- 我估計原文的意思是,"system calls" 可和 "system-level functions"交替使用, "wrapper
functions of system calls" 亦可和"system-level
functions"交替使用。原譯"两个术语"或不清楚知道是哪兩個。
- 平時只有兩個術語就可以寫"本文會交替使用矢量和向量",但這句的意思寫成這句式可能比較難,我覺得用"或會"應該就夠清楚了。個人覺得短句較易閱讀。


Jeffrey Zhao

我想起来我有本第一本的原版……全新,现在在想要不要出。我就是个屯书癖,觉得好书就一定要买本原版的回来,即便以前看过明知以后也很少会翻……


hayate

如果有第二版的原版 我就收 嘿嘿
第一版有影印版了,而且是两个


fan yu

速度好快啊,大赞,希望保持住第一版的高水准,另外,请务必用好一点的纸印刷啊,最近机工出的一些书如《测试之美》的用纸我就比较满意..


Yili Gong

本人是译者龚奕利,首先,感谢大家的宝贵意见。

@sunskyor sunskyor ,为了区别block(块)我将chunk翻译成片了,因为在书中出现的次数非常多,没办法每次都省略。不过我倒是觉得你第二句那个省略挺好,不会影响意 思理解。对于safe trajectory,没办法那样意译,书中当作术语出现的,一定的给个明确的名词。例如,A trajectory that skirts the unsafe region is known as a safe trajectory. 对于第四句,如果按照您的那个翻法,感觉interchangeably没有翻出来。

@qiaojie ,对于第一句,你是将chunk翻译成块,block翻译成区块么?我觉得block翻译成块是习惯吧。对于第二句,cache set,我们按照中文教科书的习惯,翻译成高速缓存组,set assicative组相联里面那个组。对于第三句,safe trajectory我觉得你翻得好,中文轨迹就有线的意思了吧,我不必画蛇添足的。第四句,跟sunskyor的翻译一样,我觉得 interchangeably没翻出来, 作者应该是强调,这两个术语是互换使用的,没有特别区分吧。

@Christian ,chunk我是想翻译成"片",不过我感觉这本书里是连续的意思居多,并没有fragment的意思。

@Milo Yip ,我觉得这里的block应该是一个意思,都是内存和cache换进换出的单位,你说的chunk若无特别的意思,可以不译,很有
理,我尽量回炉吧。我个人觉得是system calls和wrapper functions可以互换使用呢,他们都称为system-level functions。

感谢大家的宝贵意见,欢迎继续抛玉。


linjunhalida

从上面的纠结问题, 可以看出读英文课本的重要性...


Yili Gong

是,如果有能力,当然是读原版的好。(出版社的编辑不要骂我。:))
不过翻译的过程和自己读书还是不同,如果自己读,有些问题根本不纠结,觉得大概懂了就好。翻译,要变白纸黑字的,有时候挺痛苦。


qiaojie 

先攒一下译者,有如此认真的态度,相信本书的翻译质量必属上乘。
关于翻译的话,我觉得没必要全部严格按照字面意思直译,有时候意译也是不错的,毕竟中西方说话方式不同,比如说有些英文中长长的谚语,中文里常可找出有相 似意思的成语来概括,这样会更加的简洁明了。好的译作应该是建立在译者对原作的充分理解的基础上,再用符合中文语言习惯的方式准确的表达出来,意义准确, 读之顺口就是好的作品。这本书的原版是本非常经典的著作,期待译者能带给我们一部好作品。


wang carl

第一版看过,很不错。
第二版出来就去买一本。


qian li

一、chunk与block出现在同一句中,该如何区分呢?(因为chunk习惯翻译成“块”)
1. (摘自P627,第一段)The storage at level k + 1 is partitioned into contiguous chunks of data objects called blocks.

chunk一般都不是正式的术语,为避免歧义所以这里可以简单地忽略,重要的是block(块)的定义是清晰的就可以。
最好把英文也加上
"contiguous chunks of data objects called blocks. "可以译为:"连续的数据对象叫做块
(block)"

2. (摘自P639,练习题6.12)In general, if the high-order s bits of an address are used as the set index, contiguous chunks of memory blocks are mapped to the same cache set.

"contiguous chunks of memory blocks"可以译为:"连续的多块内存块(block)"

3. (摘自P996,练习题12.8上面一段)In order to guarantee correct execution of our example threaded program—and indeed any concurrent program that shares global data structures—we must somehow synchronize the threads so that they always have a safe trajectory.
译者翻译:为了保证我们的线程化程序示例的正确执行——实际上任何共享全局数据结构的并发程序的正确执行——我们必须以某种方式同步线程,使它们总是有一条安全轨迹线。

破折号应该是对"线程化程序"的注释。否则放到后面会比较拗口。个人觉得这里"trajectory",翻译成"轨道"比较好,即按预想的方式执行。

为了保证我们的线程化程序示例----实际上任何共享全局数据结构的并发程序----的正确执行我们必须以某种方式同步线程,使它们总是有一条安全运行轨道。

4. (P744,第三段)Throughout this text, we will refer to system calls and their associated wrapper functions interchangeably as system-level functions.

 译者翻译:在本书全文中,我们将系统调用和与它们相关联的包装函数称为系统级函数,这两个术语可以互换地使用。
这个我觉得翻译得挺好的。

最后对中文版有个建议:能不能把术语的英文名称也在中文后面用括号注上,这样查阅英文资料也比较方便。


hayate

本来我自己一般不考虑翻译版的,但是该书的中文版质量确实很不错,搭车表扬一下


Yili Gong

大部分术语在第一次出现的时候我们会注明英文。但不会每次都注明,比如block,如果每次都注明那就麻烦大了,书得再厚几页。:)
另外,由于篇幅和价格问题,index中文版不会有了,但是我们后期还是会制作出来,放到网上,供大家免费下载和查阅。


Yili Gong

再来请教几个不那么计算机专业的翻译。

1.  The presentation is excellent and at the right level - sophisticated
material presented elegantly.
2.  It's unbelievable to first find out how much caches really matter!

不是英语专业的,翻译这种不太计算机专业的句子,还是比较心虚。


fan yu

我还是认为索引非常重要,多加点钱也要留住索引啊....


Yili Gong

这本书原版有1037页,再加39页索引,价格对一般学生来说还是比较难承受的,工作了的当然不一样。
所以我们放到网上,大家打印出来看,也是一样的。
多多包涵罗。


Shuo Chen

1. 表述清晰且恰到好处----举重若轻般呈现那些至关重要的内容。
2. 我终于明白 cache 重要到难以置信的程度。
二者都是意译,见效。


Yili Gong

第一句真好!!!!满分!


qian li

> 1.  The presentation is excellent and at the right level - sophisticated material presented elegantly.

1. 演讲很精彩也很到位--优雅地诠释了复杂的资料

> 2.  It's unbelievable to first find out how much caches really matter!

2. 第一次发现caches实际上有多重要,这让人难以置信!
非专业英语翻译,仅供参考:)


cntraviata

*哪里有卖的,希望告知。


Yili Gong

预计10月22出版。


刘江

第一句的翻译是有问题的,sophisticated是指复杂而非重要吧。所以后半句应该是很好地化简为繁的意思。
第二句里为什么会有first?需要上下文看看。
BTW,这次雷同学不参与了吗?


Yili Gong

那第一句改成“表述清晰且恰到好处----举重若轻般呈现那些复杂精细的内容。”
第二句前一句是My favorite chapter in the book is about caches.貌似跟first也没啥关系。
雷同学技术指导。


刘江

挺感慨。这书上一版是我在中国电力时选的,不过出书前后我已经去华章了。后来是以读者身份给雷迎春
同学指出前言翻译中的一些问题(好像有一个比较严重)。

一、里的chunk感觉不是专门术语,只是一般性的量词而已,所以可以灵活处理。但还需要看上下文确定。

二、3 threaded直接翻译为"多线程的"吧。破折号里的成分显然是补充program的,也是保证正确执行的宾语。
have a safe trajectory应该像sunskyor那样意译。

翻译,重要的是自己先读懂,真正读懂,然后用自己的话贴近作者原意,写出来,具体字词,不需要太拘泥,
要特别重视的,是读者的体验。

4. 是指系统调用和包装函数不区分,都称为系统函数。阅读理解时语法分析也很关键。


hayate

难以置信 cache 实际上如此得重要
觉得第一次发现神马的不用翻译出来


Yili Gong

第一次发现缓存是如此重要,真是令人难以置信。
这样如何?


OxFAN

我觉得这句意义是 现在才发现缓存的重要性,这让人难以置信。


hayate

不如给个上下文看看吧


rIPPER

1-2. 正好chunk和block有点撞车而已,他说chunks of 你就当做是bunches of/sets of/groups of/piles of就好翻译了。


3. 可以把- -之间的内容独立变成一个句子,放在后面:为了保证。。。正确执行,我们必须。。。保证它们沿着正确的轨道执行下去。实际上这个规则适用于任何。。。程序。
4. Throughout this text 翻译成在本书中比较好吧,this text 即 this book。


另外,求翻译建议的时候可以再多给点上下文,对愿意提供帮助的人来说会比较方便。好比让人帮忙调试一个runtime error,仅仅给出exception内容和出exception的那行代码,往往会让人很抓狂。


rIPPER

哦,这样的句子也有疑问么? 希望你们的进度不要太赶。。。


LeeoNix

chunk和block的英语意思,我其实自己明白,因为听Stroustrup用这两个词,对于这个有点英语方面的概念区分。但汉语表达我脑子里很难区分,不知道说什么好。 所以,我一直认为英译汉的最大问题不是英语,而是汉语能力,唉。。。

对于感叹语的翻译,我想这个多用点中国习惯比较好,因为英语表达相对于中国表达,有点“大惊小怪”的感觉。

对翻译,我发表不了太多看法,水平太差,安静看帖。


linjunhalida

语言之间往往不是双射的, 这是翻译经常遇到的问题, 不知道哪里有对这方面话题的讨论?


待续。。。

欢迎留言,期待您的意见 :-)

你可能感兴趣的:(language)