- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
20130905405-王芳芳编译原理课程设计
太 原 学 院
课程设计报告书
课程名称
设计题目 构造LR(0)分析法语法分析器 专业班级
学 号
姓 名
指导教师
2016年 12 月 15日
目 录
一、课题概述 1
二、系统分析 2
2.1 本课程设计的知识点 2
2.1.1 词法编译器功能 2
2.1.2 词法分析器的设计 2
2.1.3 动态模拟算法的基本功能 2
2.1.4 LR分析器的构成 2
2. 2解决问题的基本思路 3
2.3 需解决的关键技术 3
2.4 功能模块框图 3
三、系统设计 4
3.1 算法描述 4
3. 2 实现方法 6
3.2.1 构造分析表 6
3.2.2程序设计关键 6
3.2.3 LR(0)项目集规范族的构造 6
3.3 详细流程图 7
四、代码编写 8
4. 1 生成分析表代码 8
4. 2分析句子代码 10
五、调试分析 14
六、运行与调试 15
总 结 17
参考文献 18
课题概述
《编译原理》是计算机专业的一门重要的专业课程,其中包含大量软件设计思想。通过课程设计,实现一些重要的算法,或设计一个完整的编译程序模型,能够进一步加深理解和掌握所学知识,对提高自己的软件设计水平具有十分重要的意义。语法分析是编译过程的第二阶段,是编译器前端的核心组成部分,在编译系统中起到了至关重要的作用。自底向上的语法分析与自顶向下的语法分析相比,对将要分析的源程序有着更大的分析空间,从而受到了广泛的运用。
本次课程设计的目标即是利用所学过的编译原理的知识,利用LR(0)分析法,用C语言写出一个简单的LR(0)语法分析器。该语法分析器所要完成的功能是,对录入的文法判断它是否为LR(0)文法,如果是输出LR?(0)分析表;在给定文法的情况下,能够利用LR(0)分析表,对用户输入的一串字符串用LR(0)分析法进行分析,判断该字符串是否为符合给定文法的一个句子,建立文法及其LR分析表表示的数据结构,设计并实现一个LR(0)的分析器。编译器设计的编译程序涉及到编译五个阶段中的三个,即词法分析器、语法分析器和中间代码生成器。编译程序的输出结果包括词法分析后的二元式序列、变量名表、状态栈分析过程显示及四元式序列程序。整个编译程序分为三部分:词法分析部分、语法分析处理及四元式生成部分、输出显示部分。一个程序设计语言就是一个记号系统,如同自然语言一样,它的完整的定义应包括语法和语义两个方面。所谓一个语言的语法是指一组规则,用它可以形成和产生一个合适的程序。目前广泛使用的手段是上下文无关文法,即用上下文无关文法作为程序设计语言语法的描述工具。LR分析法正是给出一种能根据当前分析栈中的符号串(通常以状态表示)和向右顺序查看输人串的k个(k=0)符号就可惟一地确定分析器的动作是移进还是归约和用哪个产生式归约,因而也就能惟一地确定句柄。LR分析法的归约过程是规范推导的逆过程,所以LR分析过程是一种规范归约过程。
二、系统分析
2.1 本课程设计涉及的知识点
2.1.1 词法编译器功能
(1)导入任意文法,也可以自己输入。
(2)输出文法的分析过程,以及判断是否为LR?(0)文法,输出分析表。
(3)输入句子,进行语法分析。
(4)输出结构树。
2.1.2 词法分析器的设计
(1)写出该语言的词法规则。
(2)把词法规则转换为相应的状态转换图。
(3)把各转换图的初态连在一起,构成识别该语言的自动机。
(4)设计扫描器;把扫描器作为语法分析的一个过程,当语法分析需要一个单词时,就调用扫描器。扫描器从初态出发,当识别一个单词后便进入终态,送出二元式。
2.1.3 动态模拟算法的基本功能
(1)输入LR分析表和一个句子。
(2)输出LR总控程序。
(3)输出依据句子构对应的语法树的过程。
(4)设计一个给定LR分析表,输入一个句子,能由依据LR分析表输出与句子对应的语法树,能对语法树生成过程进行模拟。
(5)输入句子:bccd#。
(6)根据文法产生的LR分析表。
(7)输出结果
2.1.4 LR分析器的构成
一个LR分析器由3个部分组成
(1)总控程序,也可以称为驱动程序。对所有的LR分析器,总控程序都是相同的。
(2)分析表或分析函数。不同的文法分析表将不同,同一个文法采用的LR
分析器不同时,分析表也不同,分析表又可以分为动作(ACTION)表和状态(GOTO)表两个部分,它们都可用二维数组表示。
(3)分析栈,包括文法符号和相应的状态栈。它们均是先进后出
您可能关注的文档
- 2012年吉林省公务员考试.doc
- 核电厂工程建设过程解读.ppt
- 哲学与人生修订版前言概要.ppt
- 模板工程方案解读.docx
- 模板及支撑施工方案解读.doc
- 模板计算书002解读.docx
- 模板排架xiugai解读.doc
- 2012年国考申论真题+答案解析(省级)(成功突围,竭力分享).doc
- 模板-软件概要设计说明书(HLD)解读.doc
- 景观生态学-14章解读.ppt
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
最近下载
- 山东省泰安市泰山区2023-2024学年上学期期中考试七年级英语试题.docx VIP
- 财务管理实务 财务管理实务 实训指导书.doc
- 2024年新人教版九年级上册化学全册教案.docx
- 上海通用汽车GVDP整车开发流程.pdf VIP
- 苏教版四年级上册同步奥数培优 第十四讲 智巧问题.pdf VIP
- 2024年江苏省苏州高新区招聘“两新”组织党建专职党务工作者6人历年【综合基础知识500题】高频考点模拟试题及参考答案解析.docx VIP
- 2024年武汉市东湖生态旅游风景区管理委员会公开招聘机关派遣制工作人员9人笔试备考试题及答案解析.docx VIP
- 人教版普通高中地理选择性必修2区域发展.pdf
- 人体解剖学常考重要知识点.doc
- 2023年江苏苏州相城区招考聘用两新组织党建专职党务工作者23人笔试历年难易错点考题荟萃附带答案详解.docx VIP
文档评论(0)