高级语言及其文法实验

编译原理实验

Posted by Wengdada on March 20, 2017

题目要求:

文法(Grammar)是描述高级语言语法结构的重要工具。定义任意的文法 G, 需要完成对其四元组(V,T,P,S)的定义。在该实验中,请制定文法文件的具体组织形式、编程完成对文法文件的读取、并完成对文法的分类。

任务一:文法的定义及读取 现规定文法由 Grammar.txt 文件保存,请制定文法文件的具体存储格式。如 文法 G={{A,B,C}, {a,b,c}, {S->ABC,A->a,B->b,C->c}, S}在 Grammar.txt 文件中 可由以下方式描述并存储:


-————————————
A,B,C
a,b,c
S->ABC,A->a,B->b,C->c
S
-————————————


文法的文本形式可根据自己需要自由定义,在此基础上,编程实现对任意文 法文件的读取。任务二:文法的分类 根据 Chomsky 的文法体系分类,文法分为四大种类。请在任务 一的基础上,编程实现对 Grammar.txt 中存储的文法进行分类,自动判断其所属 类别。例如任务一中所给出的文法 G 应被判定为 2 型文法,即上下文无关文法。 请设计分类方法,并设计四类不同的测试文法测试分类结果的正确性。

不说那么多,先贴图,先看实验最终效果.

wrongForm.txt中的内容:

a,B,C;a,B,c;AA->a,z->ZZ,B->c,C->abcA;S

1.txt中的内容:

A,B,C;a,b,c;S->a,aA->bB,B->c,C->abcA;S

实验文件及代码