编译原理试验题目

编译原理试验题目

ID:41115479

大小:55.50 KB

页数:5页

时间:2019-08-16

编译原理试验题目_第1页
编译原理试验题目_第2页
编译原理试验题目_第3页
编译原理试验题目_第4页
编译原理试验题目_第5页
资源描述:

《编译原理试验题目》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验一题目:词法分析目的:通过该实验使学生掌握描述词法的文法,同时能够进行词法分析。要求:对输入的字符串进行词法分析,形成词法分析产生的符号表。内容:给定描述词法的文法为:文法一:〈整型数值型数据〉→[+

2、-]〈数字〉〈数字〉*〈数字〉→0

3、1

4、2

5、3

6、4

7、5

8、6

9、7

10、8

11、9文法二:〈算符〉→+

12、-

13、*

14、/利用以上二个文法对从键盘输入的字符串进行词法分析,对符合这两个文法的字符串建立单词符号表;对不符合这两个文法的字符串给出错误信息。编程序实现该功能,并上机调试。使用的数据结构:1.一个字符数组s,用来接受从键盘输入的字符串。2.定义一个结构体,利用该结

15、构体定义一个数组stable,用来存放字符串中字符的属性(类型class和值value)。3.定义一个整型数组ei,大小与字符数组相同,记录对应字符是否是错误字符。算法描述:从键盘输入的字符串送s其他两个数组初始化,i=0S没有结束当前字符送chCh为+、-、*、/数字其他Stable[i].class=’o’,Stable[i].value=ch,i=i+1拼数Stable[i].class=’n’,Stable[i].value=拼数得的数,i=i+1在ei数组中记录出错信息有错是否输出记录在ei数组中出错信息输出Stable数组中信息实验二题目;语

16、法分析(一)目的:通过该实验使学生掌握描述语法的文法和并能利用自顶向下的分析方法对表达式进行语法分析要求:在实验一的基础上,对符号表中的单词采用自顶向下的分析方法进行语法分析,对不符合给定的文法的字符串,给出错误信息。内容:给定描述语法的文法为:E→E+T

17、E-T

18、TT→T*F

19、T/F

20、FF→F^P

21、PP→i注:i为实验一中分析得到的整型数值型数据,+、-、*和/为实验一文法二所描述的算符。使用的数据结构:1.定义一个结构体,利用该结构体定义一个数组stable,用来存放字符串中字符的属性(类型class和值value)。(与实验一同用)2.定义一个整型

22、数组eft,大小与stable数组相同,记录对应单词是否是错误。3.定义一个三维字符数组:用来存放分析表。a1ai#输入流LL(1)驱动程序:(1)栈为空情况的处理(2)XÎVT情况的处理(3)XÎVN情况的处理x…#栈分析表构造LL(1)驱动程序的算法:1)分析开始时标志符号#和文法开始符号S压人符号栈;输入流指针指向第一个输入符号,初始格局为(#S,ala2…an#)2)设在分析的某一步,符号栈及剩余的输入流处于如下的格局(#XlX2…Xm-1Xm,aiai+1…an#)可视栈顶符号Xm的不同情况,分别作如下动作:(1)若XmÎVN,则以Xm及ai组

23、成的符号对(Xm,ai)查分析表T。设T(Xm,ai)为一产生式,假设是Xm->UVW,将Xm从分析栈中退出,将UVW压人栈中,得到新的格局:(#XlX2…Xm-1WVU,aiai+1…an#)若T(Xm,ai)=Error,则调用出错处理程序进行处理。(2)若Xm=ai¹#,则表明栈顶符号已经与当前扫描的输入符号得到匹配,此时应将Xm(即ai)从栈中退出,并将输入流指针向前移动一个位置。(3)若Xm=ai=#,则表明输入串已经完全得到匹配,此时即可宣告分析成功而结束分析。(4)其它情形,转错误处理程序。实验三题目;语法分析(二)目的:通过该实验使学生掌

24、握描述语法的文法和并能利用自底向上的分析方法对表达式进行语法分析要求:在实验一的基础上,对符号表中的单词采用自底向上的分析方法进行语法分析,对不符合给定的文法的字符串,给出错误信息。内容:给定描述语法的文法为:E→E+T

25、E-T

26、TT→T*F

27、T/F

28、FF→F^P

29、PP→i注:i为实验一中分析得到的整型数值型数据,+、-、*和/为实验一文法二所描述的算符。使用的数据结构:1.定义一个结构体,利用该结构体定义一个数组stable,用来存放字符串中字符的属性(类型class和值value)。(与实验一同用)2.定义一个整型数组eft,大小与stable数组相

30、同,记录对应单词是否是错误。3.定义一个二维字符数组:用来存算符优先关系表。4.定义一个字符数组:作为符号栈。算法描述:(1)首先根据已知文法构造相应的优先关系矩阵。(2)设立符号栈S,将输入符号串“X1…XiXi+1…Xj…Xn”从左向右依次压入符号栈S中,同时检查相邻符号Xj与Xj+1的优先关系,一旦发现Xj⊲Xj+1时停止压栈,进入下一步。(3)栈顶当前符号Xj,从Xj开始往前(左)找第一个使Xi-1⊳Xi的Xi用XiXi+1…Xj去查产生式的右部,并用相应的左部符号代替句柄XiXi+1…Xj(归约)。(4)重复上述过程,直至输入符结束。如果归约出

31、文法的开始符号则成功。否则失败。实验四题目;语义分析目的:通过该实验使学生掌握语

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。