编译原理实验讲义

编译原理实验讲义

ID:13630729

大小:251.50 KB

页数:38页

时间:2018-07-23

编译原理实验讲义_第1页
编译原理实验讲义_第2页
编译原理实验讲义_第3页
编译原理实验讲义_第4页
编译原理实验讲义_第5页
资源描述:

《编译原理实验讲义》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《编译原理》实验书2011年3月实验目录实验1:词法分析程序(3学时、第6、7周)2实验2:语法分析-递归子程序法(3学时,第7、8周)11实验3:语法分析-预测分析法(3学时,第9、10周)28实验4:语义分析和代码生成(15学时,第10~17周)38适用专业及实验总学时:2008级计算机科学与技术专业2008级计算机科学与技术专业(网络方向)24总学时恭喜你!你将进入非常重要的专业课程的实践。编译原理的知识影响到专业人员的素质,除编译程序外有大量专业工作与编译技术相关。你现在需要通过脚踏实地的

2、实践学习,把自己的专业水平提高一个层次。如何才能把实验做好?实验课时非常有限,建议打印本学期的全部实验资料。如果可以,你的私人电脑安装VisualStudioC++开发环境,以便课余继续练习。上实验课之前,一定要仔细研究实验课相关程序,设计好解决方案。上实验课时,直接调试程序并获得结果,如有不懂之处,应该也必须及时提问、解决。实验课后,完成实验报告。每个实验必须提交实验报告。实验报告内容含:关键问题、设计思路、实现的关键代码、程序运行结果、总结及进一步改善建议。每个实验报告1500字~2500字,

3、约2~3页A4纸。实验报告打印出来后上交。不允许抄袭实验报告。实验报告内容超过60%相同,涉及人员均作为抄袭处罚。一份汗水,一份收获。只要你认真完成上述实验,你一定获得更加专业的自信。加油!38实验1:词法分析程序(3学时、第6、7周)1.实验目的和内容:1)实验目的:通过完成词法分析程序,了解词法分析的过程。2)实验内容:用C实现对Pascal的子集程序设计语言的词法识别。3)实验要求:要求修改文法和程序,增加浮点数处理功能。实验环境是Windows操作系统、VisualC++开发环境。2.程序

4、设计语言的描述:<程序>→<程序首部><分程序>.<程序首部>→PROGRAM<标识符>;<分程序>→[<常量说明部分>][<变量说明部分>][<过程说明部分>]<复合语句><常量说明部分>→CONST<常量定义>{,<常量定义>};<常量定义>→标识符=无符号整数<变量说明部分>→VAR<变量定义>{,<变量定义>};<变量定义>→标识符{,标识符}:<类型><类型>→INTEGER

5、LONG<过程说明部分>→<过程首部><分程序>;{<过程首部><分程序>;}<过程首部>→PROCEDURE标

6、识符;

7、PROCEDURE标识符(标识符:<类型>);<语句>→<赋值语句>

8、<条件语句>

9、<当型循环语句>

10、<过程调用语句>

11、<读语句>

12、<写语句>

13、<复合语句>

14、ε<赋值语句>→标识符:=<表达式><条件语句>→IF<条件>THEN<语句><当型循环语句>→WHILE<条件>DO<语句><过程调用语句>→标识符

15、标识符(<表达式>)<读语句>→READ(标识符,{标识符})<写语句>→WRITE(<表达式>{,<表达式>})<复合语句>→BEGIN<语句>{;<语句>}END<条件>→<表达式

16、><关系运算符><表达式>

17、ODD<表达式><表达式>→[+

18、-]<项>{<加型运算符><项>}<项>→<因子>{<乘型运算符><因子>}<因子>→标识符

19、无符号整数

20、(<表达式>)<加型运算符>→+

21、-<乘型运算符>→*

22、/<关系运算符>→=

23、<>

24、<

25、<=

26、>

27、>=其中:<>用左右尖括号括起来的符号串表示非终结符→定义为{}表示该语法成分可以重复0~n次[]表示方括号内为可选项,即0或1次383.程序设计语言单词的内部编码:(35个终结符)内码单词内码单词内码单词内码单词1PROGRAM2CO

28、NST3VAR4INTEGER5LONG6PROCEDURE7IF8THEN9WHILE10DO11READ12WRITE13BEGIN14END15ODD16+17-18*19/20=21<>22<23<=24>25>=26.27,28;29:30:=31(32)33无符号整数34标识符35#4.词法分析程序的设计思想:为了使实现的编译程序实用,规定源程序可以采用自由书格式,即一行内可以书写多个语句,一个语句也可以写成多行;标识符的前20个字符有效;整数用2个字节表示;长整数用4个字节表示。这样

29、,词法分析程序的主要工作为:1)从源程序中读入字符。2)统计行数和列数用于错误单词的定位。3)删除空格类字符,包括回车、制表符空格。4)对拼写的单词,用(内码,属性)二元式表示。5)填写符号表。这里采用一遍扫描的方法,即从左到右只扫描一次源程序,词法分析作为语法分析的一个子程序,在编写词法分析程序时,用重复调用词法分析子程序取一单词方法,得到整个源程序的内码流。5.调试时可以使用下面的源程序作为下述词法分析程序的输入(当然,你也可以自己编写一个源程序),词法分析程序输出词法分析结果

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

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

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