如何获得语言语法(从《类型和编程语言》这本书中?)>

问题描述 投票:0回答:1

[我正在阅读本杰明·皮尔斯(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节具有以下内容。对于每个...

types syntax induction
1个回答
0
投票
(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项的子项。让我们为您提供一个想法。

© www.soinside.com 2019 - 2024. All rights reserved.