编译原理课程设计报告简单文法的编译器的设计与实现

上传人:博****1 文档编号:504276265 上传时间:2022-11-04 格式:DOCX 页数:51 大小:616.51KB
返回 下载 相关 举报
编译原理课程设计报告简单文法的编译器的设计与实现_第1页
第1页 / 共51页
编译原理课程设计报告简单文法的编译器的设计与实现_第2页
第2页 / 共51页
编译原理课程设计报告简单文法的编译器的设计与实现_第3页
第3页 / 共51页
编译原理课程设计报告简单文法的编译器的设计与实现_第4页
第4页 / 共51页
编译原理课程设计报告简单文法的编译器的设计与实现_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《编译原理课程设计报告简单文法的编译器的设计与实现》由会员分享,可在线阅读,更多相关《编译原理课程设计报告简单文法的编译器的设计与实现(51页珍藏版)》请在金锄头文库上搜索。

1、编译原理课程设计报告 -简单文 法的编译器的设计与实现提供全套毕业论文,各专业都有课程设计报告设计题目:简单文法的编译器的设计与实现班 级:计算机1206组长学号:20123966组长姓名:指导教师:设计时间:2014 年12 月摘要编译原理是计算机科学与技术专业一门重要的专业课 , 它具有很 强的理论性与实践性,目的是系统地向学生介绍编译系统的结构、工作 原理以及编译程序各组成部分的设计原理和实现技术,在计算机本科教 学中占有十分重要的地位。计算机语言之所以能由单一的机器语言发展 到现今的数千种高级语言,就是因为有了编译技术。编译技术是计算机 科学中发展得最迅速、最成熟的一个分支,它集中体现

2、了计算机发展的 成果与精华。本课设是词法分析、语法分析、语义分析的综合,外加上扩展任务 中间代码的优化和目标代码的生成,主要是锻炼学生的逻辑思维能力, 进一步理解编译原理的方法和步骤。关键词:编译原理,前端,目标代码,后端目录摘要31. 概述62. 课程设计任务及要求82.1设计任务82.2设计要求93. 算法及数据结构103.1算法的总体思想103.2词法分析器模块113.3语法分析器模块133.4中间代码产生器模块243.5优化器模块273.6目标代码生成器模块30co co oo ooKwlw -.寸尊1 s賽篆 即s 舄void main ()函数体函数体-变量声明语句 函数体|赋值语

3、句 函数体|if(表达式)函 数体else函数体函数体while(表达式)函数体函数体|?变量声明语句-类型标识符变量声明语句_1 ;类型-int |char |bool变量声明语句_1-,标识符变量声明语句_1 |=表达式变量声明语 句_1|?赋值语句-标识符=表达式;表达式-算数表达式逻辑表达式逻辑表达式- =算数表达式|T E1E1-+ T E1|- T E1|?T-F T1T1-* F T1|/ F T1|?F-标识符常数|(E)这个文法满足老师的要求,但是也存在一些不足,比如变量类型中 没有处理实数,数组和结构体以及if语句和while语句后必须有大括弧 匹配。2.2 设计要求1、在

4、深入理解编译原理基本原理的基础上,对于选定的题目,以小 组为单位,先确定设计方案;2、设计系统的数据结构和程序结构,设计每个模块的处理流程。要 求设计合理;3、编程序实现系统,要求实现可视化的运行界面,界面应清楚地反 映出系统的运行结果;4、确定测试方案,选择测试用例,对系统进行测试;5、运行系统并要通过验收,讲解运行结果,说明系统的特色和创新之处,并回答指导教师的提问;3 算法及数据结构3.1算法的总体思想 词法分析器又称为扫描器,它的任务 就是对输入的源程序进行词法分析输出单 词符号供语法分析使用,语法分析器简称分 析器,对单词符号串进行语法分析,根据语 法规则进行推导,识别出各类语法单位

5、,最 终判断输入串是否构成语法上正确的“程 序”。语义分析与中间代码产生器,按照语 义规则对语法分析器推导出的语法单位进 行语义分析并把它们翻译成一定形式的中 间代码。优化器就是对中间代码进行优化处 理。目标代码生成器,把中间代码翻译成目 标程序。符号表用来登记源程序中出现的变 量及其属性。另外,如果源程序有错误,编 译发现错误,把有关错误信息报告给用户, 即出错处理。流程图如下:J源程序词法分单词符号语法分“语法单位Vk语义分析及中=, , , , ;,;/界符表char *ID1000;int Cons1000;int IdNum=0; 标识符表 iint ConsNumber=0;/算数

6、常量表类码ctypedef struct TokenTypechar code;int value;TokenType;单词符号的二元式结构3.3语法分析器模块语法分析是编译过程的核心部分。它的任务是在词法分析识别出单 词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。语 法分析器在编译程序中的地位也是非常重要。语言的语法结构是用上下文无关文法描述的。因此,语法分析器的 工作本质上就是按照文法的产生式,识别输入符号串是否为一个句子。按照语法分析树的建立方法,可以粗略的把语法分析方法分成两类 一类是自上而下的分析方法,另一类是自下而上的分析方法。在本次的 课程设计中使用的是自上而下的分

7、析方法中的递归下降分析法,用这种 分析法的好处是,直观易懂,便于表示做递归和因子提取。自上而下的分析方法的主旨就是,对任何输入串,试图用一切可能 的办法。从文法开始符号出发,自上而下的为输入串建立一棵语法树。 或者说,为输入串寻找一个最左推导。这种方法本质上就是一种试探过 程,是反复使用不同产生式谋求匹配输入串的过程。对于语法分析过程而言,其处理的数据是来自于 Token 序列,是词 法分析的产物。语法分析的任务就是识别和处理比单词更大的语法单位, 比如:程序设计语言中的表达式、各种说明和语句乃至全部程序。所以 这个部分不需要构造新的数据结构,其数据结构是沿用上一部分的数据 结构,在这里就不再列举了,具体数据结构请参见词法分析部分。主控程序:NEXT(w)A (w)errorB (w)子程序:入口int|char|Y bo。】保存变量类型判断 NY判断字NEXT(w)判断erro判断字erroYYNEXT(w)W(w)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号