张瑞编译原理实验报告

张瑞编译原理实验报告

ID:8829740

大小:469.50 KB

页数:29页

时间:2018-04-08

张瑞编译原理实验报告_第1页
张瑞编译原理实验报告_第2页
张瑞编译原理实验报告_第3页
张瑞编译原理实验报告_第4页
张瑞编译原理实验报告_第5页
资源描述:

《张瑞编译原理实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、黑龙江大学“编译原理课程设计”读书报告学院软件学院年级2012级专业软件工程学号20122515姓名张瑞报告日期2014年6月28日成绩黑龙江大学计算机科学技术学院黑龙江大学软件学院概述 “编译原理”课程是计算机专业中一门重要的专业理论课,是一门理论性和实践性都很强的课程。为配合《编译原理》课程的教学,培养学生的实际工作能力,加深对课堂教学内容的理解,通过设计一个小型编译器,更深刻地领会其基本概念、基本工作原理和实现方法,从而具有初步开发系统软件和应用软件的实际能力,特开设此课程设计。通过设计、编制、调试一个对

2、PL/0语言进行词法、语法及中间代码生成的程序,加深对编译原理的理解。掌握对单词序列的词法检查和分析、掌握计算机语言的语法分析的过程。熟练运用一种分析方法(自上而下或自下而上的方法)分析一个给定的文法以及通过思考以及动手制作分析器的过程来锻炼自己的编程能力和逻辑思维能力体会计算机编译器的奥妙之处。 一、开发环境简介MicrosoftvisualC++6.0.开发环境:是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化开发和维护儿使用的一组软件,简称SDE。它有软件工具和环境继承机制构成,前者用以

3、支持软件开发的相关过程、活动和人物,后者为工具集成和软件的开发、维护及管理提供统一的支持。1.支持开发完备模型2.灵活控制二、基本理论阐述、当前理论或实践应用现状《编译原理》理论和实践并重,叙述严谨、简明,富有启发性,且内容深入浅出,便于自学。《编译原理》不仅可以作为高等院校相关专业的教材,也可以作为计算机专业人员的参考用书。编译器的构造工具是根据用户输入的语言的文法,编译器的构造工具可以生成程序来处理以用户输入的文法书写的文本。随着计算机应用范围的扩大,在软件自动生成,文档处理,特定专业的语言等领域,编译器的

4、构造工具这一技术显得越来越重要.在分析语法成分时比较方便直观,更便于操作。运行程序的同时不断修正改进程序,直至的到最优源程序。三、小型编译器系统架构它是一个编译器的架构.通俗的来说,它实现了一个库,在这个库上,可以很容易的实现不同的编译相关的程序,当然,编译器自然是其中最重要的一个.当然其他像编译时间的代码分析也是很容易实现的。构造识别符号串的自动机、词法分析程序的构造、语法分析程序的构造、中间语言的生成程序、编译程序的代码生成。四、小型编译器主要功能模块与实现(1)功能介绍1. 词法分析功能:对代码进行分词操

5、作,分出以下5类单词:关键字、标识符、常量、运算符、分隔符。2. 算术表达式、关系表达式和逻辑表达式的分析与化简:提取代码中的所有算术表达式,可用LL(1)分析或算符优先分析算术表达式。关系表达式和逻辑表达式也可用算术表达式的程序进行分析。分析成功后进行化简操作,方便语法分析程序分析。 3. LL(1)语法分析:自己写的简单C语言的方法,支持赋值语句、判断语句、循环语句,用自顶向下的分析方法,对化简之后的单词流进行分析。 4.四元式生成与后缀式。对词法分析分词后的单词流生成中间代码。其中算术表达式先生成后缀式。

6、然后再根据后缀式的结果生成四元式。对多条逻辑表达式采用先计算再跳转的操作。对if语句判断跳转,if中的表达式支持多条逻辑表达式,但不支持嵌套。while和if相同。 5.汇编语言生成:根据四元式生成汇编语言。(2)相关理论1>.词法分析(英语:lexical analysis)是计算机科学中将字符序列转换为单词(Token)序列的过程。进行词法分析的程序或者函数叫作词法分析器,也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶

7、段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用Lex等工具自动生成。 2>.LL(1)文法:对文法G的句子进行确定的自顶向下语法分析的充分必要条件是,G的任意两个具有相同左部的产生式A—>α

8、β 满足下列条件: (1)如果α、β均不能推导出ε,则 FIRST(α) ∩ FIRST(β) = Φ。(2)α 和 β 至多有一个能推导出 ε。 (3)如果 β *═> ε,则 FIRST(α) 

9、∩ FOLLOW(A) = Φ。 将满足上述条件的文法称为LL(1)文法。第一个L代表从左向右扫描输入符号串,第二个L代表产生最左推导,1代表在分析过程中执行每一步推导都要向前查看一个输入符号——当前正在处理的输入符号。LL(1)文法既不是二义性的,也不含左递归,对LL(1)文法的所有句子均可进行确定的自顶向下语法分析。并不是所有的语言都可以用LL(1)文法来描述,而且不存在判定某种语

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

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

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