中英文术语对照表
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. parameter和argument
parameter,指的是函数定义中括号里面的变量,即“形参”。
argument,指的是调用函数时传进去的数值,即“实参”。
这两个词一般书中是不作区别的。本书中,在一段中单独出现时,统一翻译为“参数”;如果一起出现在一个段落中,会相应翻译为“形参”和“实参”以示区别。
5.instruction和directive
在汇编语言中,有以下三类指令:
指令(即instruction):机器码的助记符,有对应的机器码。
伪指令(即directive):没有对应的机器码,由编译器执行,计算机并不执行。
其它符号:如+、-、*等,由编译器识别,没有对应的机器码。
本书也采取“指令”与“伪指令”的翻译来区分这两个不同的术语。
6.flag、tag、token、identity、label、notation和mark
话说,这几个词很搞,在中文里翻译都差不多。这里,统一翻译如下:
flag 标志
tag 标签
token 标记
identity 标识
label 标号
notation 符号
此外,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 转移(注意,不是分支switch)
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,有的地方翻译为“分隔标记”。
24.以下是一些固定翻译,无须进一步解释。
英文
中文
permission
权限
virtual table(V-table)
虚表(V表)
fixup
定位(用于V表)
marshal
封送
reside
驻留
literal field
文本字段
underlying platform
底层平台
contravariant
逆变
covariant
协变
isolated storage
独立存储
bitfield
位域
opcode
操作码
operand
操作数
cyclic dependency
循环依赖性
Linker
链接器
finalizer
终结器
sink
接收器(Remoting忠的术语)
component
组件
mask
掩码
data on data
数据上的数据
startup
启动,主要用于startup stub
verbal description
逐字描述
scope
作用域
convention
约定
constructor
构造函数
destructor
析构函数
specification
说明、规范
instance
实例
instantiation
实例化
instantiatiate
对……进行实例化(动词)
the most/least significant bit
最高/低权重位
lower bound
(数组)下界
terminator
终结符
unsigned
无符号的
signed
有符号的
ordinal
序号
neutral
中立的,无关的
engage
使用(用于异常程序块)
bitwise operation
位操作
mangle
粉碎(用于泛型)
deploy
部署
overload
重载
overrideing
覆写
overriden
被覆写
filter
筛选(对于托管异常处理)
local variable
局部(本地)变量
native
本地的
culture
文化
locale
区域设置
location
位置
localization/ localize
本地化
region
区域
manifest
清单
underlying type
基础类型
evaluation stack
计算堆栈
dispose
释放
interop assembly
互操作程序集