这份文档是我在翻译《Expert IL Assembler》时整理的。内容涉及IL、汇编语言、CLR、COM等诸多领域。本文不仅针对于我的译文,而是希望能建立一种标准,给译书的各位朋友作为参考。 如有纰漏,还请各位斧正。


中英文术语对照表


       1. assembler compiler

       assembler 汇编器,一般用于汇编语言,如本书的ILAsm。动词形式为assemble,翻译为汇编。

       compiler 编译器,一般用于高级语言,如C#等。动词形式为compile,翻译为编译。

       原书中,作者对这两个词是有所区分的。


       2.assembly 程序集。很多人常常会与module(模块)混淆,以至于分不清哪一个才是真实存在的。没办法,Visual Studio默认生成单模块程序集,而多模块程序集则需要命令行工具手动配置。

       其实,把assembly翻译为“程序集”并不是很贴切,毕竟,assembly是一个很抽象的东西,而“程序集”又是那么的具体。也有的书把assembly翻译为配件,嗯,感觉不错。但是,“程序集”这个翻译我们已经口头流传了很多年,突然改口委实很不习惯,所以,本书沿袭原有翻译,不再另辟蹊径。


       3. propertyattribute  

       一切都是MSDN的错,以至于所有关于.NET的翻译书籍都要额外强调这两个词。property,属性;attribute,特性。不再敷述。


       4. parameterargument

parameter,指的是函数定义中括号里面的变量,即“形参”。

argument,指的是调用函数时传进去的数值,即“实参”。

       这两个词一般书中是不作区别的。本书中,在一段中单独出现时,统一翻译为“参数”;如果一起出现在一个段落中,会相应翻译为“形参”和“实参”以示区别。


       5.instructiondirective

       在汇编语言中,有以下三类指令:

指令(即instruction):机器码的助记符,有对应的机器码。

伪指令(即directive):没有对应的机器码,由编译器执行,计算机并不执行。

其它符号:如+-*等,由编译器识别,没有对应的机器码。

       本书也采取“指令”与“伪指令”的翻译来区分这两个不同的术语。


       6.flagtagtokenidentitylabelnotationmark

       话说,这几个词很搞,在中文里翻译都差不多。这里,统一翻译如下:

flag         标志

tag          标签

token      标记

identity   标识

label              标号

notation   符号

此外,mark这个动词,统一翻译为标注


       7. schemascheme

schema 架构

scheme 方案

       在翻译本书时,我还以为是作者笔误,误将scheme敲成了schema。在与作者的邮件中,他刻意强调要将scheme翻译为“方案”。


       8.emitemission

       这个词,在MSDN中翻译为流出、发射、发出。本书统一翻译为“流出”,因为译者认为这个词比较形象。emissionemit的名词形式,也翻译为“流出”。


       9.关于汇编语言中的几个术语:

slot               

word             字(一个字由两个字节组成)

register           寄存器(CPU中可以存储数据的地方)

image             映像

overflowunderflow   上溢和下溢

segment         

section          

       align                     对齐

       branch            转移(注意,不是分支switch)

allocation              分配


       10. exportimport

       为了不与inputoutput(即输入和输出)混淆,本书将exportimport统一翻译为“导入”和“导出”。


       11.关于forward

       这个词有两种翻译:

       forward class declaration       类的预先声明(这里翻译为“预先”)

       type forwarder              类型转发(这里翻译为“转发”)


       12.关于entry

       这个词有很多种用法:

       最显著的是entry point,翻译为“入口点”,如Main这样的入口点函数。

       还表示集合中的一个元素,常出现在PE头的结构中,翻译为“项”。

       还表示二维表中的列,常出现在元数据的结构中。翻译为“字段”。


       13. edit-and-continue

翻译为“编辑-继续”,表示 用户可以在调试过程中根据调试结果立即修改代码,继续执行程序而无需停止调试


       14. nestedembedded

       二者都翻译为“内嵌的”。其中,nested用于内嵌类,embedded用于内嵌本地代码。


       15. 关于dereference

       这个词,说白了,就是取消引用,并得到该引用,有点像Stack中的出栈操作,不是直接就出栈,还要返回出栈的对象(Push方法返回值类型为Object而不是void)。纵观各种翻译书籍,只有侯捷的译文最贴切:“提领”。本书采取侯先生的版本,并在出现的地方加以注释,以免读者产生疑惑。


       16.关于enclosersealed

       Encloser         外包,与nested(内嵌)类相对。

       Sealed            密闭,表示不可继承。


       17.关于版本号的几个术语:

       MajorVersion         主版本

       MinorVersion         次版本

       BuildNumber         内部版本号

       RevisionNumber    修订版本号


       18.关于内存布局的几个术语:

       Explicit Layout      显式布局

       Sequential Layout   顺序布局

       Union Layout         联合布局


       19. validationverification

       validation,有效性检查,用于元数据;verification,验证,用于IL代码。详细内容参见本书5.4章节。

       此外,与这两个术语相关的衍生物:

       validity          有效性

verifiable        可验证的

       unverifiable    不可验证的

       verifiability    可验证性

       verifier           验证器


       20. retrieveget

       retrieve   检索,有搜索并得到的意思

get          就是获取,直接就能拿到


21.关于bindboundboundary

       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 tableV-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



互操作程序集