《2022年重庆理工大学编译原理实验 .pdf》由会员分享,可在线阅读,更多相关《2022年重庆理工大学编译原理实验 .pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、评语:课程设计成绩考勤软件报告答辩总 成 绩教师签名:编译原理课程设计报告词法分析器学院(系):计算机科学与工程学院班级:07373 班学生姓名:于凡学号:10703070328 指导教师:黄贤英时间:从 2010年 3 月 10 日到2010 年 6 月 4 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 编译原理课程设计实验报告2 一、课程设计的目的通过课程设计进一步理解高级语言在计算机中的执行过程,加深对编译原理中重点
2、算法和编译技术的理解,提高自己的编程能力,培养好的程序设计风格。同时通过某种可视化编程语言的应用,具备初步的 Windows 环境下的编程思想。通过设计、编写和调试词法分析程序,了解扫描器的组成结构,不同种类单词的识别方法,掌握由单词的词法规则出发,画出识别单词的状态转换图,然后再用程序实现的扫描器的设计方法。通过本实验,加深对词法分析作用的理解,掌握词法分析方法并编程实现一个词法分析器!二、课程设计的内容及要求读入源程序文件,进行词法分析,输出单词符号。了解扫描器的组成结构,不同种类单词的识别方法,掌握由单词的词法规则出发,画出识别单词的状态转换图,然后再用程序实现的扫描器的设计方法。三、实
3、现原理1. 词法分析的作用就是从左到右扫描源程序,拼成单词,转换成统一的内部表示(token) ,送给语法分析器。主要包括如下几个方面的内容:2. 组织源程序的输入;3. 按规则拼单词,并转换成二元形式;4. 滤掉空白符, 跳过注释、 换行符及一些无用符号 (如字符常数的引号 ) 5. 进行行列计数,用于指出出错的行列号,并复制出错部分;6. 列表打印源程序;7. 发现并定位词法错误;8. 生成符号表。四、算法实现与流程图源程序识别单词 1token 文件查填符号表 2源程序清单清单和错误信息标识符常数符号表读文件一行并打印 1.1读一非空字符1.2首字符分类 1.3识别标识符 /关键字 1.
4、5识别数值常数1.6识别界符和运算符 1.9处理注释和除法符号 1.7识别文字常数1.8输出token 串1.4查填符号表 2符号表token文件字母数字/其它界符和运算符标识符/关键字数字常数除 号/文字常数其它界符和运算符标识符常数缓冲区buffer字符源程序清单源程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 编译原理课程设计实验报告3 五、测试数据 Sample program read x; if x0 then
5、 don t compute if xTA A-+TA|# T-FB B-*FB|# F-(E)|i 六、结果输出及设计First 集:Follow 集:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 20 页 - - - - - - - - - 编译原理课程设计实验报告13 LL1 预测分析表:对给定的符号串分析:七、软件运行环境及限制Microsoft Visual Studio 2006 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
6、 - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 20 页 - - - - - - - - - 编译原理课程设计实验报告14 八、心得体会语法分析主要有自上而下和自下而上两种方法,其中自上而下的分析方法中有递归下降和LL1 两种方式,通过本节的学习与实验,在LL1预测分析实验中会求First、Follow 集,并理解其的算法,掌握了计算预测分析表的方法,并能根据预测分析表对给定的符号串分析。九、参考文献1.编译原理及实践教程,清华大学出版社,黄贤英、王柯柯,2008.2 2.编译原理难点重点分析、 习题解析、实验指导, 机械工业出版社, 2008
7、.3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 20 页 - - - - - - - - - 编译原理课程设计实验报告15 评语:课程设计成绩考勤软件报告答辩总 成 绩教师签名:编译原理课程设计报告算符优先分析学院(系):计算机科学与工程学院班级:07373 班学生姓名:于凡学号:10703070328 指导教师:黄贤英时间:从 2010年 3 月 10 日到2010 年 6 月 4 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
8、- - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 20 页 - - - - - - - - - 编译原理课程设计实验报告16 一、课程设计的目的通过设计、编写和调试构造FirstVT 集合、 LastVT 集和构造算符优先分析表、对给定符号串进行分析的程序,了解构造算符优先分析表的步骤,对文法的要求,生成算符优先关系表的算法,对给定的符号串进行分析的方法。二、课程设计的内容及其要求给定一个上下无关文法,根据算法设计一个程序,求文法中每个非终结符的 FirstVT 集和 LastVT 集。要求以表格或图形的方式实现。三、实现原理(1)开始:符号栈中为
9、 #,输入缓冲区为:输入串# (2)移进 -归约: 从左向右扫描输入符号并移进堆栈,依次查找优先矩阵,直至找到某个 j 满足 ajaj+1 时为止; 从 aj 开始往左扫描符号栈,直至找到某个i 满足 ai-1E+T|T T-T*F|F F-(E)|i 六、结果输出FirstVT 集:LastVT 集:算法分析表:七、软件运行环境及限制Microsoft Visual C+ 6.0 运行环境。八、心得体会通过本节实验的学习与掌握, 加深了对求 FirstVT、 LastVT 集的印象,并掌握和运用之,并能根据其掌握构造算符优先关系表的方法。九、参考文献1.编译原理及实践教程,清华大学出版社,黄
10、贤英、王柯柯,2008.2 2.编译原理难点重点分析、 习题解析、实验指导, 机械工业出版社, 2008.3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 20 页 - - - - - - - - - 编译原理课程设计实验报告18 评语:课程设计成绩考勤软件报告答辩总 成 绩教师签名:编译原理课程设计报告LR 预测分析学院(系):计算机科学与工程学院班级:07373 班学生姓名:于凡学号:10703070328 指导教师:黄贤英时间:从 2010年 3 月 10 日到
11、2010 年 6 月 4 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 20 页 - - - - - - - - - 编译原理课程设计实验报告19 一、课程设计的目的通过设计、编写和调试构造LR0 项目集规范簇和LR 分析表、对给定的符号串进行 LR 分析的程序,了解构造LR0 分析表的步骤,对文法的要求,能够从文法 G 出发生成 LR0 分析表,并能对给定的符号串进行分析。二、课程设计的内容及其要求给定一个 LR0 文法,求出其项目集规范簇,结果以图形或者表格的形
12、式实现。三、实现原理(1)读取文法,按照一定的规则存储产生式(2)扩展文法(3)以扩展后的 SS 产生式,求出S S 的 closure集。(4)以 S S 的 closure集为起点,逐步应用转换函数GO(I,X)求出新的项目集,直到不出现新的项目集为止。扩展文法,求出S S 的 closure集。插入项目集链表。根据项目集中的项目如果该项目中的 .不是最后一位对每一个项目的 .右移一位。得到一个新的项目,把该项目加到新的项目集 N 中。如果新项目中 .后是一个非终结符(假如是B) ,把该非终结符推出的产生式的右部加上 .( . 加在产生式的右部之前) 又得到一个新的项目, 并把该项目加到项
13、目集N 中。将该项目集加入到项目集链表的最后(如果链表中已经有了该项目集,则不加入)四、算法实现流程图LR(0)分析表的构造算法对于 A XIk,GO (Ik,X)=Ij 若 X Vt,则置 actionk,X=Sj , 即把(j,a)移进栈若 X Vn,则置 gotoIk,X=j 对于 A Ik , 则对所有的 xVt 和# , 均置 actionk,x=rj ( 设 A 是第 j 个产生式 ),即用 A 归约)若 S S Ik,则置 actionk,#=acc,即接受其他均置出错。五、测试数据E-aA|bB A-cA|d B-cB|d 六、结果输出及其分析LR0 项目集规范簇:名师资料总结
14、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 20 页 - - - - - - - - - 编译原理课程设计实验报告20 LR 分析表:七、软件运行环境及其限制Microsoft Visual Studio 2006 八、心得体会通过本实验的学习,掌握并理解了根据给定的一个LR0 文法,求其项目集规范簇,求其LR0 分析表的方法。九、参考文献1.编译原理及实践教程,清华大学出版社,黄贤英、王柯柯,2008.2 2.编译原理难点重点分析、 习题解析、实验指导, 机械工业出版社, 2008.3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 20 页 - - - - - - - - -