文法的读入判定和处理.docVIP

  • 63
  • 0
  • 约1.31千字
  • 约 2页
  • 2015-09-08 发布于重庆
  • 举报
文法的读入判定和处理,r按行读入处理文件,恶意订单判定与处理,c读入文件,c读入字符串,用金税盘发票怎么读入,matlab读入excel,易语言读入文本,c读入一行,大纲太长未完全读入

实验2 文法的读入、判定和处理 一、实验目的 熟悉文法的结构,了解文法在计算机内的表示方法。? 二、实验内容 设计一个表示文法的数据结构; 从文本文件中读入文法,利用定义的数据结构存放文法,并输出; 本实验结果将来还有用。? 三、实验要求 了解文法定义的4个部分: G(Vn, Vt, S, P) Vn 文法的非终结符号集合,在实验中用大写的英文字母表示; Vt 文法的终结符号集合,在实验中用小写的英文字母表示; S 开始符号,在实验中是Vn集合中的一个元素; P 产生式,分左部和右部,左部为非终结符号中的一个,右部为终结符号或非终结符号组成的字符串,如S-ab|c 根据文法各个部分的性质,设计一个合理的数据结构用来表示文法, 若使用C语言编写,则文法可以设计成结构体形式,结构体中应包含上述的4部分, 若使用C++语言或java语言编写,则文法可以设计成文法类形式,类中至少含有4个数据成员,分别表示上述4个部分 文法数据结构的具体设计由学生根据自己想法完成,并使用C或C++语言或Java实现设计的数据结构。 利用完成的数据结构完成以下功能: 从文本文件中读入文法(文法事先应写入文本文件); 根据文法产生式的结构,分析出文法的4个部分,分别写入定义好的文法数据结构的相应部分; 整理文法的结构,判断该文法的文法类型,是否为0型,1型,2型或3型文法,并输出判断结果; 在计算机屏幕或者文本框中输出文法,文法输出按照一个非终结符号一行,开始符号引出的产生式写在第一行,同一个非终结符号的候选式用“|”分隔的方式输出。 ?四、实验环境 PC微机 DOS操作系统或 Windows 操作系统 Turbo C 程序集成环境或 Visual C++ 程序集成环境或Java ?五、实验步骤 1、根据文法定义,设计出文法数据结构 2、用学生选择的语言,实现文法的数据结构 3、编写调试文法读入和输出程序, 测试程序运行效果:从文本文件中读入一个文法,在屏幕上输出,检查输出结果。 ?六、测试数据 输入数据: 编辑一个文本文文件g.txt,在文件中输入如下内容:(产生式当中的-如果不好判断,可以改为你自己设计的符号,用:来表示-也可以的。) S-Qc; S-c; Q-Rb; Q-b; R-Sa; R-a; 正确结果: 上述文法整理后的输出形式: 该文法是2型文法。 开始符是:S 终结符是:c,b,a 非终结符是:S,Q,R 产生式是: S-Qc|c; Q-Rb|b; R-Sa|a;? 七、实验报告要求 实验报告应包括以下几个部分: 文法数据结构的设计和实现; 文法的读入算法 文法的输出方法 程序的测试结果和问题 实验总结? 八、思考题 如何让设计的文法结构满足各种文法的要求? 如何设计文法才能跟简单地表示文法,同时又降低程序编写难度? 可以根据你处理的方便改为这样的形式也是可以的: S:Qc; S:c; Q:Rb; Q:b; R:Sa; R:a;

文档评论(0)

1亿VIP精品文档

相关文档