CLR学习(5)-.NET CLR的基本术语
Table of Contents
- 1. assembler和compiler
- 2. assembly程序集
- 3. property和attribute
- 4. argument和parameter
- 5. instruction和directive
- 6. flag、tag、token、identity、label、notation和mark
- 7. schema和scheme
- 8. emit和emission
- 9. 关于汇编语言中的几个术语:
- 10. export和import
- 11. 关于forward
- 12. 关于entry
- 13. edit-and-continue
- 14. nested和embedded
- 15. 关于dereference
- 16. 关于encloser和sealed
- 17. 关于版本号的几个术语:
- 18. 关于内存布局的几个术语:
- 19. validation和verification
- 20. retrieve和get
- 21. 关于bind、bound和boundary
- 22. .NET术语缩写:
- 23. 几个不作翻译的术语,保持原汁原味:
- 24. 以下是一些固定翻译,无须进一步解释。
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 方案
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代码。
此外,与这两个术语相关的衍生物:
validity 有效性
verifiable 可验证的
unverifiable 不可验证的
verifiability 可验证性
verifier 验证器
20 retrieve和get
retrieve 检索,有搜索并得到的意思
get 就是获取,直接就能拿到
21 关于bind、bound和boundary
bind绑定,分词形式为bound
此外,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) | 虚表 |
fixup | 用于定位(虚表) |
marshal | 封送 |
reside | 驻留 |
literalside | 文本字段 |
underlying platform | 底层平台 |
conTR | 逆变 |
covariant | 协变 |
isolated storage | 独立存储 |
bitfiled | 位域 |
opcode | 操作码 |
operand | 操作数 |
cyclic dependency | 循环依赖性 |
linker | 链接器 |
finalizer | 终结器 |
sink | 接收器(remoting中的术语 |
component | 组件 |
mask | 掩码 |
Data on Data | 数据上的数据 |
startup | 启动(主要用于start up stup) |
verbel description | 逐字描述 |
scope | 作用域 |
convention | 约定 |
consTR | 构造函数 |
desTR | 析构函数 |
specification | 说明、规范 |
instance | 实例 |
instantiation | 实例化 |
instantiate | 对。。。进行实例化 |
the most/least significant bit | 最高/低权重位 |
lower bound | (数组)下界 |
terminator | 终结符 |
unsigned | 无符号的 |
signed | 有符号的 |
ordinal | 序号 |
neuTR | 中立的、无关的 |
engage | 使用(用于异常程序块) |
bitewise operation | 位操作 |
mangle | 粉碎(用于泛型) |
deploy | 部署 |
overrideing | 覆写 |
overload | 重载 |
overriden | 被覆写 |
filter | 筛选(对于托管异常处理 |
local variable | 本地(局部)变量 |
native | 本地的 |
culture | 文化 |
local | 区域设置 |
location | 位置 |
localization/localize | 本地化 |
region | 区域 |
manifest | 清单 |
underlying type | 基础类型 |
evaluation stack | 计算堆栈 |
dispose | 释放 |
interop assembly | 互操作程序集 |