已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1课 程 设 计 报 告设计题目:简单文法的编译器的设计与实现班 级:XX组长学号:XXX组长姓名:XX指导教师:XX设计时间:2017 年 1 月2设计分工组长学号及姓名: 20143710 李万分工:语法分析,生成符号表,语义分析,中间代码生成(四元式) ,汇编代码生成组员 1 学号及姓名:20143724 张太分工:部分语法分析组员 2 学号及姓名:20143725 张天宝分工:部分语义分析组员 3 学号及姓名:20143722 张俊杰3摘 要编译原理是计算机科学与技术专业一门重要的专业课, 它具有很强的理论性与实践性,目的是系统地向学生介绍编译系统的结构、工作原理以及编译程序各组成部分的设计原理和实现技术,在计算机本科教学中占有十分重要的地位。计算机语言之所以能由单一的机器语言发展到现今的数千种高级语言,就是因为有了编译技术。编译技术是计算机科学中发展得最迅速、最成熟的一个分支,它集中体现了计算机发展的成果与精华。 本课设是词法分析、语法分析、语义分析的综合,外加上扩展任务中间代码的优化和目标代码的生成,主要是锻炼学生的逻辑思维能力,进一步理解编译原理的方法和步骤。关键词:编译原理,前端,目标代码,后端4目 录摘要.3 1. 概述.6 2. 课程设计任务及要求.7 2.1 设计任务.7 2.2 设计要求.8 3. 算法及数据结构.93.1 算法的总体思想.10 3.2 词法分析器模块.11 3.2.1 功能.11 3.2.2 数据结构.11 3.2.3 算法.12 3.3 语法分析器模块.14 3.3.1 功能.14 3.3.2 数据结构.14 3.3.3 算法.15 3.4 语义分析中间代码生成.183.4.1 功能.183.4.2 数据结构.183.4.3 算法.203.5 目标代码生成器模块.233.5.1 功能.233.5.2 数据结构.233.5.3 算法.25 4. 程序设计与实现.264.1 程序流程图.264.2 程序说明.274.3 实验结果.3255. 结论.596. 参考文献.607. 收获、体会和建议.6161 概述编译程序(compiler)是把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序。几乎所有形式的计算都要用到编译器。程序运行的过程图如下图所示:高级语言程序 机器语言程序编译程序翻译 运行结果程序运行过程编译程序的工作一般分为以下几个阶段:词法分析、语法分析、语义分析、中间代码产生、代码优化、目标代码产生。语法分析器 语义分析与中间代码生成器优化段目标代码生成器词法分析器语法单位四元式四元式目标代码单词符号72 课程设计任务及要求2.1 设计任务任务内容:1.定义一个简单程序设计语言文法(包括变量说明语句、算术运算表达式、赋值语句;If 语句、While 语句等)支持函数调用,函数递归,支持传参和传值 2.扫描器设计实现;3.语法分析器设计实现;4.中间代码设计;5.中间代码生成器设计实现;6.生成目标代码。 文法:给出的文法具有左递归,消除左递归后得到的文法如下所示:1. p ro g r a m d e c l a r a t i o n - l i s t2. d e c l a r a t i o n - l i s t d e c l a r a t i o n d e c l a r a t i o n3. d e c l a r a t i o n v a r- d e c l a r a t i o n | f u n - d e c l a r a t i o n4. v a r- d e c l a r a t i o n t y p e - s p e c i f i e r I DNUM 5. t y p e - s p e c i f i e r i n t | v o i d6. f u n - d e c l a r a t i o n t y p e - s p e c i f i e r I D( p a r a m s ) | c o m p o u n d - s t m t7. p a r a m s p a r a m s-l i s t | v o i d8. p a r a m - l i s t p a r a m, p a r a m9. p a r a m t y p e - s p e c i f i e r I D 10. compound - s t m t l o c a l-d e c l a r a t i o ns s t a t e m e n t-l i s t 11. l o c a l-d e c l a r a t i o ns empty v a r- d e c l a r a t i o n 12. s t a t e m e n t-l i s t emptys t a t e m e n t 13. s t a t e m e n t e x p re s s i o n-s t m t | c o m p o u n d - s t m t | s e l e c t i o n - s t m t| i t e r a t i o n-s t m t | re t u r n-s t m t14. e x p re s s i o n-s t m t e x p re s s i o n ;15. s e l e c t i o n - s t m t i f ( e x p re s s i o n ) s t a t e m e n t e l s e s t a t e m e n t16. i t e r a t i o n -s t m t w h i l e ( e x p re s s i o n ) s t a t e m e n t17. re t u r n -s t m t r e t u r n e x p re s s i o n;18. e x p re s s i o n v a r = e x p re s s i o n | s i m p l e-e x p re s s i o n819. v a r I D e x p re s s i o n 20. s i m p l e-e x p re s s i o n a d d i t i v e-e x p re s s i o n re l o p a d d i t i v e-e x p re s s i o n21. re l o p | = | = = | ! =22. add i t i v e-e x p re s s i o n termaddop te r m23. add p + | -24. t erm f a c t o r m u l o p f a c t o r25. mulop * | /26. f a c t o r ( e x p re s s i o n ) | v a r | c a l l | N U M27. c a l l I D ( a rg s )28. a rg s a rg - l i s t | e m p t y29. a rg-l i s t e x p re s s i o n , e x p re s s i o n 2.2 设计要求 通过设计 C-语言的编译器,了解编译器在程序设计中的功能,以及编译过程中的翻译步骤,对编译原理的各个部分有一个深入的了解和学习。93 算法及数据结构 3.1 算法的总体思想 如下流程图:源程序 单词符号语法单位中间代码中间代码目标代码词法分析器语法分析器语义分析及中间代码产生器目标代码生成器符号表出错处理103.2 词法分析器模块3.2.1 功能根据给出的 C-语言词法、语法和语义,设计一个编译器。1. 下面是语言的关键字:else if int return void while ,write,read.所有的关键字都是保留字,并且必须是小写。2. 下面是专用符号:+ - * / = = != = ; , ( ) /* */3. 其他标记是 I D和 N U M,通过下列正则表达式定义:ID = letter letter*NUM = digit digit*letter = a|.|z|A|.|Zdigit = 0|.|9小写和大写字母是有区别的。4. 空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开 I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上半年贵州事业单位联考玉屏侗族自治县招聘41人备考题库含答案详解(完整版)
- 2026年潍坊高密市事业单位化工类岗位公开招聘备考题库(11人)带答案详解(研优卷)
- 2026中国国际货运航空股份有限公司机务维修工程师岗位校园招聘备考题库带答案详解(夺分金卷)
- 北华航天工业学院《建筑物理I(热环境、光环境)》2023-2024学年第二学期期末试卷
- 内蒙古大学创业学院《建筑与家居木制品》2023-2024学年第二学期期末试卷
- 抚州职业技术学院《英语阅读II》2023-2024学年第二学期期末试卷
- 2026四川成都金牛区西华社区卫生服务中心招聘放射医师、超声医师的2人备考题库附答案详解(黄金题型)
- 2026上半年贵州事业单位联考贵州省交通运输厅招聘84人备考题库附参考答案详解(b卷)
- 2026南方科技大学附属实验学校招聘教师及教务员备考题库(广东)带答案详解(模拟题)
- 黔南民族幼儿师范高等专科学校《视听传播导论》2023-2024学年第二学期期末试卷
- 电影院安全应急预案范文
- 静脉炎处理方法
- 医院网络安全建设规划
- (正式版)DB2327∕T 074-2023 《大兴安岭升麻栽培技术规范》
- 2026年中考历史复习必背重点考点知识点清单
- GJB939A-2022外购器材的质量管理
- GB/T 4127.14-2025固结磨具尺寸第14部分:角向砂轮机用去毛刺、荒磨和粗磨砂轮
- 《建筑业10项新技术(2025)》全文
- (人教版)地理七年级下册填图训练及重点知识
- 二十四点大全
- TB-T 3263.1-2023 动车组座椅 第1部分:一等座椅和二等座椅
评论
0/150
提交评论