繁体   English   中英

下推自动机和算术表达式

[英]pushdown automata and arithmetic expressions

我试图弄清楚如何在下推式自动机(PDA)中执行算术表达式,例如L = W | W = An Bm Cn-m我想做的是先推As然后弹出B,然后再弹出As C或带有C的B,具体取决于剩余的内容。 例如aaabbc(推aaa然后用bs bba弹出,然后用C弹出A或用C弹出B,取决于哪个更大。

对于要在语言中使用的单词w ,根据您的定义,它必须具有n>=m (否则C^(nm)为负,这是不可能的)。

因此,您的自动机基本上需要:

  1. 看到“ a”时推入堆叠
  2. 看到“ b”时从堆栈弹出
  3. 看到“ c”时从堆栈弹出。

另外,一些重要问题:

  • 看到“新”字符时,您需要在不同状态之间移动。
  • 您的自动机应接受w=eps (空字)。
  • w=a^bb^n也是该语言,请确保您已做好。

希望我能给您足够的线索,以便您自行解决。

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM