[我正在阅读本杰明·皮尔斯(Benjamin C. Pierce)的书Types and Programming Languages
。作者在第3节中讨论了语言的语法派生。第3.2.3节具有以下内容。对于每个自然数i,如下定义集合S1]
S0 = Empty Set S(i+1) = {true, false, 0} Union {succ t1, pred t1, iszero t1 | t1 in Si} Union {if t1 then t2 else t3 | t1, t2, t3 in Si} Finally, let S = Union of Si (starting with i = 0)
然后作者说,由此我们可以得出
S0
为空。S1
仅包含常量。S2
包含常量以及可以使用常量和仅一个succ,pred,iszero或if]构建的短语>>。这意味着什么?您如何得出S2
我正在阅读Benjamin C. Pierce的《类型和编程语言》一书。作者在第3节中讨论了语言的语法派生。第3.2.3节具有以下内容。对于每个...
(1) S_0 = ∅ (2) S_{i+1} = {true, false, 0} ∪ {succ t1, pred t1, iszero t1 | t1 in Si} ∪ {if t1 then t2 else t3 | t1, t2, t3 in S_i} (3) S = ⋃ {S_i} (starting with i = 0)$
这是使用集合构建器符号归纳描述语言的一种方法。每个较大的索引
S
将包含较小的索引S
项的子项。让我们为您提供一个想法。