一个简单文法编译器前端设计与实现

一个简单文法编译器前端设计与实现

ID:1042064

大小:171.00 KB

页数:17页

时间:2017-11-07

一个简单文法编译器前端设计与实现_第1页
一个简单文法编译器前端设计与实现_第2页
一个简单文法编译器前端设计与实现_第3页
一个简单文法编译器前端设计与实现_第4页
一个简单文法编译器前端设计与实现_第5页
资源描述:

《一个简单文法编译器前端设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、课程设计报告设计题目:一个简单文法的编译器前端的设计与实现班级:计算机1208班组长学号:20124016组长姓名:樊荣指导教师:张俐设计时间:2014年12月设计分工组长学号及姓名:20124016樊荣分工:四元式生成、语义分析(未定义、重定义等)、整体设计组员1学号及姓名:20124020李鑫分工:符号表建立及其输入输出设计组员2学号及姓名:20124032杨学良分工:词法分析组员3学号及姓名:20124018焦通分工:语法分析组员4学号及姓名:201240陈凤分工:简单C语言文法设计及部分简单函数编写摘要编译器是程序员使用的关键工具,程序员每天都在使用编译器,并且

2、非常依赖于其正确性和可靠性。编译器作为广大IT从业者必须接触的系统软件,它的设计本身又是一个极其庞大的工程。编译器相关的各项技术经过近几十年的发展,已经日臻成熟,然而编译器构造原理和技术依然是计算机科学中理论与实践相结合的最好典范。本文重点介绍了编译器前端的详细开发过程,分为四个部分分别阐述:文法设计,词法分析器的设计,语法分析器的设计,语义分析部分。每个部分又分别从功能,数据结构和算法三个方面进行详尽阐述,。由于C语言本身的复杂性,很难面面俱到实现所有标准定义,所以本次设计只象征性的选择部分具有代表性的功能。在本文的第四章详细给出了此次设计所实现的功能和语法规范,同时

3、也给出了编译器的运行方式。关键词:编译原理,编译器前端,C源程序……目录摘要······························11概述·····························22课程设计任务及要求·······················32.1设计任务··························32.2设计要求··························33算法与数据结构··························43.1算法的总体思想(流程)···················43.2词法分析模块······

4、·················53.2.1功能························73.2.2数据结构······················83.2.3算法························93.3语法分析模块·······················103.3.1功能························113.3.2数据结构······················123.3.3算法························133.4符号表模块························133.4.1功能

5、·······················133.4.2数据结构·····················144序设计与实现··························144.1程序流程图······················144.2程序说明······················154.3实验结果······················155.结论·····························166.参考文献。··························177.收获、体会和建议。·····················

6、·171.概述经过一段时间的学习,我们在初步掌握了编译器的基本原理以后,设计了一个具有基本编译功能的编译器前端。该编译器前端接受类C语言语法的源代码输入,输出结果是四元式组。本编译器实现了基本高级语言所必须的语法要素,包括简单变量声明、条件判断语句和循环语句及跳转语句、基本代数运算、赋值等。由于编译程序本身涉及到词法分析、语法分析、中间代码生成等诸多模块,要在实验中做到面面俱到不太可能,所以本编译器不可避免的会存在各种问题,但作为一个具有基本功能的、可扩充的系统,完全达到了巩固编译原理的理论知识,并将其运用于实践的目的。2.课程设计任务及要求2.1设计任务在下列内容中任

7、选其一:1、一个简单文法的编译器前端的设计与实现。2、基本块的划分及中间代码优化程序设计与实现。3、LL(1)、LR分析表的自动生成算法的设计实现。4、自选一个感兴趣的与编译原理有关的问题加以实现,要求难度相当。我们组由于人数较多,且综合代码编写能力不强,经多方面考虑选择了简单类C文法的编译前端设计与实现任务。2.2设计要求1.给出一个源程序文件,作为编译器前端的输入2.输出相关编译阶段的运行结果词法分析阶段:Token序列;关键字表、界符表、符号表系统。中间代码生成阶段:四元式序列;符号表系统。3.算法及数据结构3.1算法的总体思想(流

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

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

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