编译原理报告(2)

编译原理报告(2)

ID:30339099

大小:625.22 KB

页数:17页

时间:2018-12-29

编译原理报告(2)_第1页
编译原理报告(2)_第2页
编译原理报告(2)_第3页
编译原理报告(2)_第4页
编译原理报告(2)_第5页
资源描述:

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

1、课程实验概述1实验一词法分析器程序的实现21.1问题描述21.1.1实验内容21.1.2实验原理21.2程序设计31.2.1实验要求31.2.2实验流程图51.3实验结果6实验二语法分析程序实现72.1实验目的与要求72.2实验内容72.3实验要求72.4程序设计82.4.1算法任务82.4.2全局变量的设置82.4.3主程序main算法流程图82.4.4扫描子程序scanner()的算法流程图92.4.5rparser()的算法流程图102.4.6语句串分析程序yucu()的算法流程图102.4.7statemen

2、t语句分析算法流程图112.5实验结果12实验总结14课程实验报告课程名称:《编译原理》专业班级:学号:姓名:指导教师:报告日期:2015.11.12计算机科学与技术学院课程实验概述词法分析是编译的第一阶段。词法分析器的主要任务是读入源程序的输入字符、将他们组成词素,生成并输出一个词法单元序列,每个词法单元对应一个词素。这个词法单元序列被输出到语法分析器进行语法分析。词法分析器的功能输入源程序,按照构词规则分解成一系列单词符号。单词是语言中具有独立意义的最小单位,包括关键字、标识符、运算符、界符和常量等(1)关键字是

3、由程序语言定义的具有固定意义的标识符。例如,Pascal中的begin,end,if,while都是保留字。这些字通常不用作一般标识符。(2)标识符用来表示各种名字,如变量名,数组名,过程名等等。(3)常数 常数的类型一般有整型、实型、布尔型、文字型等。(4)运算符如+、-、*、/等等。(5)界符 如逗号、分号、括号、等等。词法分析器所输出单词符号常常表示成如下的二元式:(单词种别,单词符号的属性值)单词种别通常用整数编码。标识符一般统归为一种。常数则宜按类型(整、实、布尔等)分种。关键字可将其全体视为一种。运算符可

4、采用一符一种的方法。界符一般用一符一种的方法。对于每个单词符号,除了给出了种别编码之外,还应给出有关单词符号的属性信息。单词符号的属性是指单词符号的特性或特征。14实验一词法分析器程序的实现1.1问题描述1.1.1实验内容1.完成词法分析器实现的功能如下:(1)组织源程序的输入(2)拼出单词并查找其类别编号,形成二元式输出,得到单词流文件(3)删除注释、空格和无用符号(4)发现并定位词法错误,需要输出错误的位置在源程序中的第几行。将错误信息输出到屏幕上。(5)对于普通标识符和常量,分别建立标识符表和常量表(使用线性表

5、存储),当遇到一个标识符或常量时,查找标识符表或常量表,若存在,则返回位置,否则返回0并且填写符号表或常量表。标识符表结构:变量名,类型(整型、实型、字符型),分配的数据区地址注:词法分析阶段只填写变量名,其它部分在语法分析、语义分析、代码生成等阶段逐步填入。常量表结构:常量名,常量值2.能对任何S语言源程序进行分析在运行词法分析程序时,应该用问答形式输入要被分析的S源语言程序的文件名,然后对该程序完成词法分析任务。1.1.2实验原理词法分析程序的算法思想:算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单

6、词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。141.2程序设计1.2.1实验要求(1)单词的分类:构造上述语言中的各类单词符号及其分类码表。表I语言中的各类单词符号及其分类码表单词符号类别编码类别码的助记符单词值begin1BEGINend2ENDif3IFthen4THENelse5ELSE标识符6ID字母打头的字母数字串整常数7INT数字串<8LT<=9LE=10EQ<>11NE>12GT>=13GE:=14IS+15PL-16MI*17MU/18DI(2)实验的状态转换图如图2

7、-1:14图2-1:实验状态转换图141.2.2实验流程图(3)系统流程图如下图2-3所示:开始输入需要扫描的文件名输入存放结果文件名P处跳转扫描其他符号文件是否为空Y返回,退出ch是否为引号N预读一位ch跳转扫描引号NY行数加1ch是否为空格YNch是否为‘/’跳转扫描注释Ych是否为字母或下划线NYch是否为数字或‘—’N跳转扫描数字Y跳转扫面文件单词及保留字N图2-2:系统流程图141.3实验结果测试结果如图2-3所示图2-3实验结果与书中的单词表一致,结果正确。14实验二语法分析程序实现2.1实验目的与要求通

8、过设计、编制、调试一个典型的语法分析程序(任选有代表性的语法分析方法,如算符优先法、递归下降法、LL(1)、SLR(1)、LR(1)等,作为编制语法分析程序的依据),对扫描器所提供的单词序列进行语法检查和结构分析,实现并进一步掌握常用的语法分析方法。2.2实验内容选择对各种常见高级程序设计语言都较为通用的语法结构作为分析对象,给出其文法描述(注

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

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

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