080100190编译方法实验指导书

080100190编译方法实验指导书

ID:47877290

大小:113.17 KB

页数:18页

时间:2019-11-16

080100190编译方法实验指导书_第1页
080100190编译方法实验指导书_第2页
080100190编译方法实验指导书_第3页
080100190编译方法实验指导书_第4页
080100190编译方法实验指导书_第5页
资源描述:

《080100190编译方法实验指导书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、编译方法实验指导书东北大学软件学院二零零九年九月JUL*>anui=i实验耍求3实验1扫描器设计(4学时)41.实验目的42.实验类型43.实验基本要求44.预习内容45.实验基木步骤46.实验思考题13实验2中间代码生成器设计(4学吋)141.实验目的142.实验类型143.实验基本要求144.预习内容145.实验基木步骤146.实验思考题16参考资料17-XX.—1—刖吞《编译方法》课程的理论知识较抽象,但同时乂是一门实践性很强的专业必修课。故本课程的教学注重理论教学与实践教学的紧密结合,让学生从上机实践中

2、深入领会抽象的理论知识。上机实验的冃的是:(1)加深对讲授内容的理解,了解编译程序的基本结构,学习并掌握编译程序的相关实现技术:如设计扫描器的自动机、设计翻译及牛成Token的算法;设计中间代码牛•成器,熟悉算术表达式的语法分析与小间代码生成原理。(2)练习上机调试程序,加强学生发现及解决问题的能力。实验要求1.实验时,按照《编译方法实验指导书》的内容完成两个必做题目。实验后,应整理出实验报告,实验报告应包括以下内容:(1)实验目的(2)实验内容(3)实验原理及基木步骤:实验使用的自动机的设计,实验使用哪种语法

3、分析方法等(4)数据结构及算法设计(5)关键代码分析(带注释)及运行结果(6)总结与分析:对运行情况所作的分析,以及木次调试程序所取得的经验。如果程序未能通过,则应分析其原因(7)实验思考题2.实验考核标准:(1)原理分析正确;10%。(2)数据结构及程序总体设计正确,并有一定的创新性;30%。(3)程序运行结果正确;20%o(4)上机报告书写认真,内容完整,有相应的实验分析;20%o(5)实验过程屮,具有严谨的学习态度,认真、踏实、一丝不苟的科学作风;20%o实验1扫描器的设计(4学时)1.实验目的熟悉并实现

4、一个扫描器(词法分析程序)。2•实验类型设计性。3•实验基本要求(1)设计扫描器的冇限自动机(识别器);⑵设计翻译、生成Token的算法(翻译器);(1)编写代码并上机调试运行通过。•输入—源程序文件或源程序字符串;•输出相应的Token序列;关键字表和界符表;符号表和常数表;4•预习内容(1)有限口动机原理(2)词法分析器原理5•实验基本步骤单词扌订描器Token(1)有限口动机的状态转换图e其中:d为数字,1为字母,b为界符,・1代表其它符号(如在状态8处遇到了非字母或数字的其它符号,会变换到状态12)0状

5、态转换矩阵:d1234567891011121314152891523511114451111767711118812101413bE

6、e+卜1⑵关键字表和界符表Program•Begin•■End(Var)WhileDo■■Repeat+Until-For*To/If>Then>=Else—<<=⑶数据设计:①状态转换矩阵:intaut[10][7]={2,0,0,0,8,9,15,2,3,5,11,0,0,11,4,0,0,0,0,0,0,4,0,5,11,0,0,11,7,0,0,6,0,0,0,7,0,

7、0,0,0,0,0,7,0,0,11,0,0,11,&0,0,0,&0,12,0,0,0,0,0,10,14,0,0,0,0,0,0,13};②关键字表:charkeywords[30][12]={“progranr,''begin","end'',''var","while","do","repeat","until","fdr","to","if',"then","else",③符号表:charID[50][12];④常数表:floatC[20];〃表小存有源程序小的标识符⑤其它变量://Token结构//

8、Token数组structtoken{intcode;intvalue};structtokentok[100];ints;〃当前状态intn,p,m,e,t;〃尾数值,指数值,小数位数,指数符号,类型floatnum;〃常数值charw[50];〃源程序缓冲区inti;〃源程序指针,当前字符为w[i]charstrTOKEN[12];〃当前已经识别出的单词(1)语义动作:•qi:n=m=p=t=0;e=l;num=0;其它变量初始化;•q2:n=10*n+(w[i]);•Q3:t=l;•q4:n=10*n+(

9、w[i]);m++;•qs:t=i;•q6:if'」thene=-l;•q?:p=10*p+(w[i]);•q8:将w[i]'

10、'的符号拼接到strTOKEN的尾部;•q9:将w[i]中的符号拼接到strTOKEN的尾部;•qio:将w[i]中的符号拼接到strTOKEN的尾部;〃标识符的编码为1,值为其在常数表中的位置;常数的编码为2,值为其在符号表中的位置;关键字和界符的编码为其在

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

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

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