【问题标题】:Is useful the pushdown automaton in this case?在这种情况下,下推自动机有用吗?
【发布时间】:2016-10-25 16:20:33
【问题描述】:

在大学里,他们要求我使用语法和下推自动机来检查部分 Java 代码的语法。由于我以前没有使用过这个自动机,所以我对它们的工作原理有所了解,我认为这个自动机在检查代码语法方面不是很有用,因为下推自动机用于验证任何标记之间具有一定比例的语法像“0^n 1^2n | n >= 0”。

代码语法中不存在令牌之间的这种比例,因此我认为下推自动机在这种情况下没有用。

  • 我是对的?
  • 我必须抱怨他们要求我做的工作吗?

【问题讨论】:

    标签: pushdown-automaton automaton


    【解决方案1】:

    非确定性下推接受器 (NPDA) 和上下文无关文法 (CFG) 在表示语言方面具有相同的能力。

    由于大多数(如果不是全部)编程语言(如 java)语法可以由 CFG 呈现,它也可以由 NPDA 呈现。

    所以,不要抱怨,做任务。

    【讨论】:

    • 感谢您的回答,但是您如何在完全线性的语法中使用堆栈?我的意思是,在代码行的语法中,不需要使用堆栈,因为令牌的数量没有关系。你能为这个代码行“int var = 25 + x”做一个下推接受器吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 2013-03-12
    • 2012-07-04
    • 2018-05-05
    相关资源
    最近更新 更多