术语
A
Alias 别名
alias
是一类定义,可以出现在其他定义可以出现的任何位置。它用于将绑定从一个标识符转移到另一个标识符。
Anonymous 匿名的
通常与具名的(named)相对。
Annotation 注解
参考了 Java 语言中关于 annotation 的译法(见Java注解)
B
Binding 绑定
本应译为“约束”,但考虑到大多数人的习惯,故译为“绑定”,而且两者发音很像。
Bool/Boolean 布尔 布尔的 布尔值
继承自 R5RS 中译版的译法。
Built-in 内置(的)
C
Continuation 【不翻译】
可以理解为 “the state of remaining in a particular position or condition”。
Compile-time 编译期
发生在“运行时(run-time)”之前的一个过程。考虑到“编译期函数”比“编译时函数”更加顺口,因而采用了编译期的译法。
Compile-time value 编译期值
Compile-time property 编译期属性
clause 子句
参考wikipedia 对于clause的解释
condition 状态
参考 MIT Scheme 文档 ,一般是指异常状态
D
Default 默认的
E
Enumeration 枚举
Enumeration set 枚举集
Evaluate 求值
Evaluator 求值器
Expand Expansion 展开
宏的展开,区别于
extend
(扩展),后者通常指扩展一个环境。
Expander (宏的)展开器
Expand-time 展开期
F
Fender 防护板
Chez Scheme extends
syntax-rules
to permit clause to include fenders just like those allowed withinsyntax-case
clauses.
Field 数据成员
Field, A data member of a class. Unless specified otherwise, a field is not static.
Fixnum 定长数 固定数
A fixnum is an exact integer that is small enough to fit in a machine word.
具体的讨论请参见:term modification request: parameter fixnum
Form 形式 特殊形式 语法形式
按 R6RS 的定义,form 是 Scheme 程序中句法部分的一个通用名字。为区别一般的“形式”,故译为“语法形式”。
详细讨论:术语讨论:syntax、form、body
G
Guardian 守卫者
Guardians allow programs to protect objects from deallocation by the garbage collector and to determine when the objects would otherwise have been deallocated.
I
Immutable 不可变的
Inspect/Inspection 审查
不翻译为“检查”,是为了跟 check 有所区别;
Inspector 审查器
M
Mutually recursion/recursive 互递归、互递归的
函数
f(x)
的定义依赖于g(x)
的定义,后者又依赖于f(x)
的定义。这种依赖关系可以扩展到多个函数键的互递归关系。采用互递归而非互相递归是参考了“互引用”以及“互斥”等常见说法。
N
Named 具名的 命名的
通常与匿名的(anonymous)相对。
Named module 具名模块
Namespace 名字空间
一组通常由关键字名、变量名和模块名等标识符构成的数据聚合;一种习惯的译法是“命名空间”,但这更像是“named space”的译名。
Native 原生的
在计算领域,如果软件或数据格式对一个系统是 native 的,那就是说该系统可以以最小的计算开销或额外组件支持它 — 维基百科。
考虑到大多数人的习惯,故译为“原生的”。
P
Parameter 参数对象 行为界限
- 所有的 Chez Scheme 系统都可以通过参数对象(parameter)来完成定制;
- 参数对象是一种过程,它封装了一个隐含的状态变量;
- 当无参调用该过程时,参数对象会返会所封装变量的值;
- 当以单个参数调用该过程时,参数对象将该状态变量修改为该实参的值;
- 如果传入的参数不当,该过程可能会抛出异常,也可能以某种方式过滤此参数。
详细讨论:term modification request: parameter fixnum
Procedure 过程
根据Lisp传统,函数一般被称为过程。对初学者来说可以简单的将其理解为函数,或方法。
Profile 性能分析
Port 端口
Scheme 中用来表示输入/输出设备的对象。继承自 R5RS 中译版的译法。
R
R5RS 《Scheme语言修订5报告》
R6RS 《Scheme语言修订6报告》
完整的名字应该是 Revised6 Report on the Algorithmic Language Scheme,即《算法语言Scheme修订6报告》,但为了简洁期间,推荐翻译为《Scheme语言修订6报告》。
在 markdown 文件中应该以这样书写:《Scheme语言修订<sup>6</sup>报告》
Reader 读取器
Record 记录
一种复合数据结构,可以认为是结构体的别称。
Record-type 记录类型
Routine 子程序 例程 过程
- routine 一词,有“一套(相互联系的)动作”的含义(例如 a dance/skating routine)。
- 在原文“the programmer can manipulate them directly via a set of routines for creating and accessing annotations”. 中,routine 一词更能体现出“有一组 set/get 过程用于操作 annotation”这种意味。
- 从这个角度上来说,相比于简单地翻译为”子程序“或者”过程“,routine 一词自身的含义更加深刻。
- 在不需要严谨区别 routine 含义的场合,推荐将其简单地翻译为“过程”。
S
Scope 作用域
标识符的可见范围。
Self-recursion/recursive 自递归、自递归的
Shadowed 遮蔽
(let ((a 1))
(let ((a 2))
(display a)))
; => 2
最内层
a
的绑定,遮蔽了最外层同名变量a
的绑定。遮蔽一词,对语法关键字也适用。
Shared object 动态链接库
Unix体系内的shared object (共享对象)统一翻译为更好理解的动态链接库,从而不与Windows的dynamic linking library加以区分。
Syntax 语法 句法
关于 syntax 和 grammar 的不同,可以参考这篇文章。
考虑到俗成的翻译约定,故依然采取“语法”的译法。
详细讨论:术语讨论:syntax、form、body
T
Top-level 顶层
Transformer 转换器
语法关键字对应的语义对象。它是一个句法域上的函数,即接受一个句法形式,返回一个新的句法形式。
trace 跟踪