【发布时间】:2026-02-13 07:05:02
【问题描述】:
考虑由
定义的语言 (Σ,R,S)
Σ = { ′(′, ′)′ }
R = {S → SS, S → (S), S → ϵ }
1.这种语言的语法是什么?不只是生产规则列表,因此是 R 吗?如果不是,语法与产生式规则列表有何区别?
2.然后我该如何根据这个语法创建一个自上而下的解析器?我看到它提到涉及堆栈。
我的教授已经提供了一个标记器,但老实说,我不知道如何在代码中实现它 (C++)。
编辑:包含对 DFA 的引用,现在看起来它们似乎无关,因此可能是对项目描述的误解
【问题讨论】:
-
Re #1:IIUC 你不能,没有有限状态自动机可以识别平衡括号的语言。
-
如果您被要求为该语言编写 DFA,您可能会被要求使用泵引理证明它在 DFA 等效正则语言集合中的成员身份。如果您不小心提到了 DFA,请查看递归(您可能还想编辑问题)。
标签: parsing compiler-construction grammar