Alias 别名
alias
是一类定义,可以出现在其他定义可以出现的任何位置。它用于将绑定从一个标识符转移到另一个标识符。
Anonymous 匿名的
通常与**具名的(named)**相对。
Annotation 注解
参考了 Java 语言中关于 annotation 的译法(见Java注解)
Binding 绑定
本应译为“约束”,但考虑到大多数人的习惯,故译为“绑定”,而且两者发音很像。
Bool/Boolean 布尔 布尔的 布尔值
继承自 R5RS 中译版的译法。
Body 主体,语句体
Built-in 内置(的)
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 文档 ,一般是指异常状态
Default 默认的
Enumeration 枚举
Enumeration set 枚举集
enter(ed) 键入
明确指出是由用户通过打字(type)敲入到计算机的,用来与
import
、input
或其它可能会被翻译为“输入”的术语相对。
Evaluate 求值
Evaluator 求值器
Expand Expansion 展开
宏的展开,区别于
extend
(扩展),后者通常指扩展一个环境。
Expander (宏的)展开器
Expand-time 展开期
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
Guardian 守卫者
Guardians allow programs to protect objects from deallocation by the garbage collector and to determine when the objects would otherwise have been deallocated.
Immutable 不可变的
Inspect/Inspection 审查
不翻译为“检查”,是为了跟 check 有所区别;
Inspector 审查器
Mutually recursion/recursive 互递归、互递归的
函数
f(x)
的定义依赖于g(x)
的定义,后者又依赖于f(x)
的定义。这种依赖关系可以扩展到多个函数键的互递归关系。采用互递归而非互相递归是参考了“互引用”以及“互斥”等常见说法。
Named 具名的 命名的
通常与**匿名的(anonymous)**相对。
Named module 具名模块
Namespace 名字空间
一组通常由关键字名、变量名和模块名等标识符构成的数据聚合;一种习惯的译法是“命名空间”,但这更像是“named space”的译名。
Native 原生的
在计算领域,如果软件或数据格式对一个系统是 native 的,那就是说该系统可以以最小的计算开销或额外组件支持它 — 维基百科。
考虑到大多数人的习惯,故译为“原生的”。
Parameter 参数对象 行为界限
- 所有的 Chez Scheme 系统都可以通过**参数对象(parameter)**来完成定制;
- 参数对象是一种过程,它封装了一个隐含的状态变量;
- 当无参调用该过程时,参数对象会返会所封装变量的值;
- 当以单个参数调用该过程时,参数对象将该状态变量修改为该实参的值;
- 如果传入的参数不当,该过程可能会抛出异常,也可能以某种方式过滤此参数。
详细讨论:term modification request: parameter fixnum
Procedure 过程
根据Lisp传统,函数一般被称为过程。对初学者来说可以简单的将其理解为函数,或方法。
Profile 性能分析
Port 端口
Scheme 中用来表示输入/输出设备的对象。继承自 R5RS 中译版的译法。
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 含义的场合,推荐将其简单地翻译为“过程”。
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
Top-level 顶层
** The Scheme Programming Language, 4th Edition ** 《Scheme 程序设计语言(第4版)》
Transformer 转换器
语法关键字对应的语义对象。它是一个句法域上的函数,即接受一个句法形式,返回一个新的句法形式。
trace 跟踪
wrapper 包装(语法)、包装(过程)
需要根据 wrapper 出现的上下文来判断。