实验2 文法的读入、判定和处理 一、实验目的 熟悉文法的结构,了解文法在计算机内的表示方法。 二、实验内容 1、 设计一个表示文法的数据结构; 2、 从文本文件中读入文法,利用定义的数据结构存放文法,并输出; 3、 本实验结果将来还有用。 三、实验要求 1、 了解文法定义的4个部分: G(Vn, Vt, S, P) Vn 文法的非终结符号集合,在实验中用大写的英文字母表示; Vt 文法的终结符号集合,在实验中用小写的英文字母表示; S 开始符号,在实验中是Vn集合中的一个元素; P 产生式,分左部和右部,左部为非终结符号中的一个,右部为终结符号或非终结符号组成的字符串,如S->ab|c 2、 根据文法各个部分的性质,设计一个合理的数据结构用来表示文法, 1) 若使用C语言编写,则文法可以设计成结构体形式,结构体中应包含上述的4部分, 2) 若使用C++语言或java语言编写,则文法可以设计成文法类形式,类中至少含有4个数据成员,分别表示上述4个部分 文法数据结构的具体设计由学生根据自己想法完成,并使用C或C++语言或Java实现设计的数据结构。 3、 利用完成的数据结构完成以下功能: 1) 从文本文件中读入文法(文法事先应写入文本文件); 2) 根据文法产生式的结构,分析出文法的4个部分,分别写入定义好的文法数据结构的相应部分; 3) 整理文法的结构,判断该文法的文法类型,是否为0型,1型,2型或3型文法,并输出判断结果; 4) 在计算机屏幕或者文本框中输出文法,文法输出按照一个非终结符号一行,开始符号引出的产生式写在第一行,同一个非终结符号的候选式用“|”分隔的方式输出。
2022-10-06 16:39:13 4KB 编译原理 文法分析
1
20级赵老师班级的对应的实习题,最终课程平时成绩为92,值得信赖
2022-10-05 09:04:15 2.42MB 编译原理
1
#清磁盘啦~,CSDN“网盘”真好用,感谢CSDN~ 《编译原理》(龙书)部分课后习题记录与分析
2022-10-04 20:00:51 6.74MB 编译原理 龙书
1
#清磁盘啦~,CSDN“网盘”真好用,感谢CSDN~ 《编译原理》课程拓展,关于语法制导翻译和语义分析,基于语法分析树检查表达式类型是否合法的代码实现,基于课程实验的改进并借助bison和flex工具实现
1
学习编译原理的经典书籍,可以从中学习到很多知识
2022-09-28 10:06:33 24.6MB 编译原理
1
使用java编程实现简单的词法分析器,该词法分析器要求如下 (一)、该个词法分析器要求至少能够识别以下几类单词: a. 关键字:else if int return void while共6个,所有的关键字都是保留字,并且必须是小写; b. 标识符:识别与C语言词法规定相一致的标识符,通过下列正则表达式定义:ID = letter (letter | digit)*; c. 常数:NUM = digit digit*(.digit digit* |ε)(e(+ | - |ε) digit digit* |ε),letter = a|..|z|A|..|Z|,digit = 0|..|9,包括整数,如123等;小数,如123.45等;科学计数法表示的常数,如1.23e3,2.3e-9等; d. 专用符号:+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */; (二)、分析器的输入为由上述几类单词构成的程序,输出为该段程序的机内表示形式,即关键字、运算符、界限符变为其对应的机内符,常数使用二进制形式,标识符使用相应的标识符表指针表示。 (三)、词法分析器应当能够指出源程序中的词法错误,如不可识别的符号、错误的词法等。
2022-09-26 22:35:24 9KB java编程词法分析器 编译原理
1
编译原理(陈火旺)课后习题答案 编译原理(陈火旺)课后习题答案 编译原理(陈火旺)课后习题答案
2022-09-25 15:10:53 361KB 课后题答案
1
(2)布尔表达式的文法 布尔表达式文法G[E]如下 : E∷=E∧E|E∨E|  E|(E)|i|i rop i 说明: 1)布尔表达式的文法是一个二义文法 例如:该文法的一个句子a ∧ b ∨ c有两棵不同的语法树与之对应,所以该文法是一个二义文法。 E E E ∨ E E ∧ a b c E E E ∧ a E E ∨ b c
2022-09-23 11:57:15 4.53MB 编译原理
1
学习计算机学生必备的资料pdf资料!!!
2022-09-22 16:10:47 2.8MB 答案
1
编译原理课程辅导与习题解析编译原理课程辅导与习题解析
2022-09-22 10:40:22 7.24MB 编译原理课程辅导与习题解析
1