当前位置:首页|资讯|ChatGPT|编程

python语言实现算符优先分析

作者:风勉八八发布时间:2023-06-01

实现了编译原理中对算符文法的分析表的构造和句子的识别。

实现了对分析表的压缩(bell有向图和‘逐次加一法构造)
输入:

  1. productions:使用《计算机编译原理》第三版,张幸儿主编的这本教材中的示例文法G5.3[Z]。

  2. sentences:自己输入匹配文法的句子即可,本例用chatgpt生成。

输出:

  1. 算符优先关系矩阵

  2. 优先关系函数

  3. B矩阵

  4. B*矩阵

  5. 句子判断结果

使用了额外的python包: tabulate,用于格式化输出矩阵。

如有任何问题,欢迎私信交流。

代码如下:

其中:

grammar.txt 内容为:

Z->E

E->E+T|T

T->T*F|F

F->(E)|i

代码运行结果如下:

输出优先关系表
使用逐次加一法生成的优先函数

值得说明的是这个方法生成的优先函数并不唯一。

对于输入sentence的判断
B矩阵
B*矩阵
最后得到的优先函数

至此文本结束。


Copyright © 2025 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1