欢迎光临散文网 会员登陆 & 注册

python语言实现算符优先分析

2023-06-01 23:43 作者:风勉八八  | 我要投稿

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

实现了对分析表的压缩(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*矩阵
最后得到的优先函数

至此文本结束。

python语言实现算符优先分析的评论 (共 条)

分享到微博请遵守国家法律