CSUG icon indicating copy to clipboard operation
CSUG copied to clipboard

术语讨论:syntax、form、body

Open DeathKing opened this issue 6 years ago • 2 comments

这三个术语很大程度上是相关联的,因此我放在一个 issue 里面讨论了。

syntax

syntax 一词,目前的术语表中给出的译法是“句法”,这是一个正确的译法,但不是一个合适的译法。syntax 一词,在程序设计语言领域译作“语法”由来已久,可以说是一种俗成约定了。比如,parser 就是依照一定的规则(产生式),划分出句子间的不同组分以及他们的相互关系,从这个角度上来说,parser 就是 syntax 范畴的东西,而 parser 却通常译作语法解析器,而非 句法解析器。我认为在这个层面上,我们应该遵循传统。

syntax 一词,在 Chez Scheme 手册中,经常也以下面的方式出现:

  • syntax: (fluid-let-syntax ((keyword expr) ...) form1 form2 ...)
  • returns: see explanation
  • libraries: (chezscheme)

这时候,译为“句法“有一种很“突兀”的感觉。

form

在 R6RS 报告中,它有两个出处:

  1. Procedure calls can generally be distinguished from these special forms by looking for a syntactic keyword in the first position of an form: if the first position does not contain a syntactic keyword, the expression is a procedure call. (1.7 Procedure calls and syntactic keywords)
  2. Syntactic data in Scheme source code are called forms.(Chap 4.Lexical syntax and datum syntax)

可以看出① form 是一个更广义的概念;② 跟过程调用对位的是**特殊形式(special form)**这种说法。因此,术语表中提到的 句法/语法形式 或者 特殊形式 的译法,我认为都是恰当的;但在相关文献中,特殊形式出现得更多一点。

See also:派生形式

body

这个词儿的具体译名,我拿得不是很准:

  • 首先不应该是“语句体”,因为 Scheme 中没有**语句(statement)**这个说法;
  • 其次也不是“过程体”,因为这里是待展开的形式;
  • 这里没有使用 <body> 这个语法记号,因此也不适宜保留 <body> 这样的形式;
  • 暂时使用“程序体”的说法,如果有更好的说法,稍后会修改。

DeathKing avatar Jan 15 '19 13:01 DeathKing

syntax语法译比较好 这里更着重约定俗成 而不是本来的含义 body程序体是译很贴切的 比其他几个待选项都好 我支持

guenchi avatar Jan 17 '19 12:01 guenchi

👍

ghost avatar Jan 17 '19 13:01 ghost