编译技术课程设计指导书

编译技术课程设计指导书

ID:8957716

大小:132.00 KB

页数:12页

时间:2018-04-13

编译技术课程设计指导书_第1页
编译技术课程设计指导书_第2页
编译技术课程设计指导书_第3页
编译技术课程设计指导书_第4页
编译技术课程设计指导书_第5页
资源描述:

《编译技术课程设计指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译技术课程设计指导书题目:L语言编译器的设计与实现院系:计算机学院2010年11月1日第一节概述1课程设计的目的和任务编译技术是一门实践性很强的课程,只有通过实践,才能真正掌握。实际的编译程序是十分复杂的,有时由多达十几万条指令组成。为此,编译原理的实践教学,采用简化高级程序设计语言文法的办法,重点针对词法分析、语法分析、语义分析和中间代码生成以及目标代码生成等几个关键环节进行编程和调试训练。每个环节可作为一个独立的实践课题,分别编程调试,然后再连接在一起总调,从而实现一个完整的编译器。2实践方法任何一个实用的高级语言,其语法

2、都比较复杂,如选其作为源语言,很难实践全过程,故本实践将定义一个简化的类PASCAL语言——L语言作为源语言,设计调试出它的编译程序。因任务具有一定的难度和工作量,且时间有限,因此,分组进行实验,每组2人,分别承担词法分析/目标代码生成以及语法/语义分析两部分中的一个,具体分工由组内协商进行,并且整个代码的链接工作由承担词法分析任务的同学完成。可使用C、VC++等语言编程实现。3实践报告的规范和要求每位学生完成承担任务后写出格式规范的实验报告,包括封面、任务说明、程序设计时考虑的算法和方法、流程图、主要代码说明、运行结果分析等。

3、4L语言定义程序定义:〈程序〉→program〈标识符〉〈程序体〉.〈程序体〉→〈变量说明〉〈复合句〉变量定义:〈变量说明〉→var〈变量定义〉

4、ε〈变量定义〉→〈标识符表〉:〈类型〉;|〈标识符表〉:〈类型〉;〈变量定义〉〈标识符表〉→〈标识符〉,〈标识符表〉|〈标识符〉语句定义:〈复合句〉→begin〈语句表〉end〈语句表〉→〈执行句〉;〈语句表〉|〈执行句〉〈执行句〉→〈简单句〉|〈结构句〉〈简单句〉→〈赋值句〉〈赋值句〉→〈变量〉:=〈表达式〉〈变量〉→〈标识符〉〈结构句〉→〈复合句〉|〈if句〉|〈WHILE句〉〈i

5、f句〉→if〈布尔表达式〉then〈执行句〉

6、if〈布尔表达式〉then〈执行句〉else〈执行句〉〈while句〉→while〈布尔表达式〉do〈执行句〉表达式定义:〈表达式〉→〈算术表达式〉|〈布尔表达式〉〈算术表达式〉→〈算术表达式〉+〈项〉|〈算术表达式〉-〈项〉|〈项〉〈项〉→〈项〉*〈因子〉|〈项〉/〈因子〉|〈因子〉〈因子〉→〈算术量〉|(〈算术表达式〉)〈算术量〉→〈标识符〉|〈整数〉|〈实数〉〈布尔表达式〉→〈布尔表达式〉or〈布尔项〉|〈布尔项〉〈布尔项〉→〈布尔项〉and〈布尔因子〉|〈布尔因子〉〈布尔因子

7、〉→not〈布尔因子〉|〈布尔量〉〈布尔量〉→〈布尔常数〉|〈标识符〉|(〈布尔表达式〉)|〈关系表达式〉〈关系表达式〉→〈标识符〉〈关系运算符〉〈标识符〉〈关系运算符〉→〈

8、〈=

9、=

10、〉=

11、〉

12、〈〉类型定义:〈类型名〉→integer|bool

13、real单词定义:〈标识符〉→〈字母〉|〈标识符〉〈字母〉|〈标识符〉〈数字〉〈整数〉→〈数字〉|〈整数〉〈数字〉〈实数〉→〈整数〉.|〈实数〉〈数字〉〈布尔常数〉→true|false字符定义:〈字母〉→A│B│C│D│E│F│G│H│I│J│K│L│M│N│O│P│Q│R│S│T│

14、U│V│W│X│Y│Z│a│b│c│d│e│f│g│h│i│j│k│l│m│n│o│p│q│r│s│t│u│v│w│x│y│z〈数字〉→0│1│2│3│4│5│6│7│8│91源程序书写格式规定(1)单词必须在一行内写完,即:一个单词不能分两行写;(2)源程序语句的书写采用自由格式,即:一行可写多个语句,一个语句也可分多行写;(3)源程序不含注释;(4)语句以“;”结束,“end”前的一个语句的“;”不可以省略。第二节词法分析1目的通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法

15、的实践能力;掌握词法分析器作为子程序以及一遍的处理过程。源程序词法分析程序符号表文件token文件2任务(1)能对任何L语言源程序进行分析;(2)采用问答方式输入源程序文件名,然后进行词法分析;(3)分割单词并转换成机内表示形式,形成token文件(单词序列)、符号表文件;(4)删除空格等无用符号;(5)错误处理l给出的错误信息包括:总的出错个数,每个错误所在行号,错误编号及说明;l只处理以下两种错误,其它可不必考虑1.非法字符:删除,即,不写入token文件2.错误单词a)包括三种形式:i.数字开头的数字、字母串,如:3a56

16、ii.实数中出现两个小数点,如:3.14.15iii.实数的小数部分出现字母,如:5.26B78b)处理方式:截去后面出错部分,使其成为一个正确单词(即:常数)。如:3a56转换为3,3.14.15转换为3.14,5.26B78转换为5.263数据结构3.1输入

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

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

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