我在计算机科学理论研究中遇到了一些问题......
任何人都可以向我解释我们如何将无上下文语法(cfg)转换为相应的下推自动机(pda)的算法 只有2个状态?
答案 0 :(得分:0)
状态1:不接受。通过空转换到自身将S推入空堆栈。 G中每个生产的空转换为self,但是将生成的字符串向后推送到堆栈。在读取终端符号x与堆栈顶部的x时向空转移。在空堆栈上空转换到状态2。
状态2:不再接受输入和空堆栈。
操作原理:堆栈用于通过向外写出向后推导,然后在读取输入时弹出它们来用语法语言派生字符串。如果输入用完且堆栈为空,则可以转到状态2并接受。