当前位置:首页 » .NET编程经验 » 正文

.Net CLR基本术语

2015年6月20日 17:15:41  分类: .NET编程经验  参与: 人  点这评论

 

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    

<< 上一篇下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

相关文章

    搜索

    网站分类

    Tags列表

    最新留言

    微信公众号【双语悦读】

      【个人微信】

    站点地图 | 网站标签 | 给我留言

    Copyright © 2014-2016 timegowhere.com. All rights reserved. 粤ICP备15081222号