程序猿改变世界
1. assembler和compiler
assembler 汇编器,一般用于汇编语言,如本书的ILAsm。动词形式为assemble,翻译为汇编。
compiler 编译器,一般用于高级语言,如C#等。动词形式为compile,翻译为编译。
原书中,作者对这两个词是有所区分的。
2.assembly 程序集
很多人常常会与module(模块)混淆,以至于分不清哪一个才是真实存在的。没办法,Visual Studio默认生成单模块程序集,而多模块程序集则需要命令行工具手动配置。
其实,把assembly翻译为“程序集”并不是很贴切,毕竟,assembly是一个很抽象的东西,而“程序集”又是那么的具体。也有的书把assembly翻译为配件,嗯,感觉不错。但是,“程序集”这个翻译我们已经口头流传了很多年,突然改口委实很不习惯,所以,本书沿袭原有翻译,不再另辟蹊径。
3. property和attribute
一切都是MSDN的错,以至于所有关于.NET的翻译书籍都要额外强调这两个词。property,属性;attribute,特性。不再敷述。
4. argument和parameter
parameter,指的是函数定义中括号里面的变量,即“形参”。
argument,指的是调用函数时传进去的数值,即“实参”。
这两个词一般书中是不作区别的。本书中,在一段中单独出现时,统一翻译为“参数”;如果一起出现在一个段落中,会相应翻译为“形参”和“实参”以示区别。
5.instruction和directive
在汇编语言中,有以下三类指令:
指令(即instruction):机器码的助记符,有对应的机器码。
伪指令(即directive):没有对应的机器码,由编译器执行,计算机并不执行。
其它符号:如+、-、*等,由编译器识别,没有对应的机器码。
本书也采取“指令”与“伪指令”的翻译来区分这两个不同的术语。
6.flag、tag、token、identity、label、notation和mark
话说,这几个词很搞,在中文里翻译都差不多。这里,统一翻译如下:
flag 标志
tag 标签
token 标记
identity 标识
label标号
notation 符号
此外,mark这个动词,统一翻译为mark。
7. schema和scheme
schema 架构
scheme 方案
在翻译本书时,我还以为是作者笔误,误将scheme敲成了schema。在与作者的邮件中,他刻意强调要将scheme翻译为“方案”。
8.emit和emission
这个词,在MSDN中翻译为流出、发射、发出。本书统一翻译为“流出”,因为译者认为这个词比较形象。emission是emit的名词形式,也翻译为“流出”。
9.关于汇编语言中的几个术语:
slot 槽
word 字(一个字由两个字节组成)
register 寄存器(CPU中可以存储数据的地方)
image 映像
overflow和underflow 上溢和下溢
segment 段
section 节
align对齐
branch 跳转(注意,不是分支)
allocation分配
10. export和import
为了不与input和output(即输入和输出)混淆,本书将export和import统一翻译为“导入”和“导出”。
11.关于forward
这个词有两种翻译:
forward class declaration类的预先声明(这里翻译为“预先”)
type forwarder类型转发(这里翻译为“转发”)
12.关于entry
这个词有很多种用法:
最显著的是entry point,翻译为“入口点”,如Main这样的入口点函数。
还表示集合中的一个元素,常出现在PE头的结构中,翻译为“项”。
还表示二维表中的列,常出现在元数据的结构中。翻译为“字段”。
13. edit-and-continue
翻译为“编辑-继续”,表示 用户可以在调试过程中根据调试结果立即修改代码,继续执行程序而无需停止调试。
14. nested和embedded
二者都翻译为“内嵌的”。其中,nested用于内嵌类,embedded用于内嵌本地代码。
15. 关于dereference
这个词,说白了,就是取消引用,并得到该引用,有点像Stack中的出栈操作,不是直接就出栈,还要返回出栈的对象(Push方法返回值类型为Object而不是void)。纵观各种翻译书籍,只有侯捷的译文最贴切:“提领”。本书采取侯先生的版本,并在出现的地方加以注释,以免读者产生疑惑。
16.关于encloser和sealed
Encloser 外包,与nested(内嵌)类相对。
Sealed 密闭,表示不可继承。
17.关于版本号的几个术语:
MajorVersion 主版本
MinorVersion 次版本
BuildNumber 内部版本号
RevisionNumber 修订版本号
18.关于内存布局的几个术语:
Explicit Layout 显示布局
Sequential Layout 顺序布局
Union Layout 联合布局
19. validation和verification
validation,有效性检查,用于元数据;verification,验证,用于IL代码。详细内容参见本书5.4章节。
此外,与这两个术语相关的衍生物:
validity 有效性
verifiable 可验证的
unverifiable 不可验证的
verifiability 可验证性
verifier 验证器
20. retrieve和get
retrieve 检索,有搜索并得到的意思
get 就是获取,直接就能拿到
21.关于bind、bound和boundary
bind绑定,分词形式为bound,集中出现在两个地方——第4章的16个数据目录中的Bound Import表,以及第6章的应用程序域。
此外,bound还表示“边界”。比如说数组中的下界(low bound),这时,可以使用boundary代替。
22. .NET术语缩写:
CLR Common Language Runtime公共语言运行时。
CLS Common Language Specification,公共语言规范
CLI Common Language Infrastructure,公共语言基础结构
CTS Common Type System,通用类型系统
JIT just-in-time,即时
P/Inkoke Platform Invocation,平台调用。
EH Managed Exception Handler,托管异常处理
TLS Thread Local Storage,线程局部存储
23.几个不作翻译的术语,保持原汁原味:
stub,有的地方翻译为“占位程序”。
wrapper,有的地方翻译为“包装器”。
Thunk,出现在互操作中。
sentinel,有的地方翻译为“分隔标记”。
来源:时间去哪儿了博客(微信/QQ号:903918446),转载请保留出处和链接!
本文链接:http://timegowhere.com/post/clr_base.html
本文标签:CLR
【个人微信】
【时间去哪儿了】
教育类博客,关注知识的分享与交流。
欢迎关注公众号!
加我微信
Copyright © 2014-2016 timegowhere.com. All rights reserved. 粤ICP备15081222号