从关于 PDA 的 Wiki 文章的这一部分,我大致了解了从给定 CFG 构建 PDA 的过程。本文没有说明的是,当单个 non-terminal 有多个生产规则时所需的步骤。
例如,假设我们有一个形式为 的语法:
显然,这个语法可以识别所有x(ab)*y形式的字符串[巧合的是,它也是一种常规语言]。
在这里,由于这两条规则,我在从这个语法构建 PDA 时遇到了问题
也就是说,在扩展阶段使用这两条规则中的哪一条,同时向下推入堆栈?
从关于 PDA 的 Wiki 文章的这一部分,我大致了解了从给定 CFG 构建 PDA 的过程。本文没有说明的是,当单个 non-terminal 有多个生产规则时所需的步骤。
例如,假设我们有一个形式为 的语法:
显然,这个语法可以识别所有x(ab)*y形式的字符串[巧合的是,它也是一种常规语言]。
在这里,由于这两条规则,我在从这个语法构建 PDA 时遇到了问题
也就是说,在扩展阶段使用这两条规则中的哪一条,同时向下推入堆栈?
如本幻灯片所示,您的 PDA 将模拟最左边的推导
有关更清晰的详细信息,幻灯片有一个示例。