华科编译原理实验报告.docx

华科编译原理实验报告.docx

ID:58374182

大小:291.15 KB

页数:26页

时间:2020-05-02

华科编译原理实验报告.docx_第1页
华科编译原理实验报告.docx_第2页
华科编译原理实验报告.docx_第3页
华科编译原理实验报告.docx_第4页
华科编译原理实验报告.docx_第5页
资源描述:

《华科编译原理实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、课程实验报告课程名称:编译原理专业班级:CS1209学号:姓名:指导教师:周时阳报告日期:2015.6.28计算机科学与技术学院目录1课程实验概述12实验一词法分析器的实现22.1问题描述22.1.1实验内容22.1.2实验原理22.2系统设计32.2.1实验前准备32.2.2实验流程图52.3系统实现112.4效率分析112.4.1程序的执行结果122.4.2实验程序的优点和缺陷133实验总结与评价131课程实验概述词法分析(LexicalAnalysis)是编译的第一阶段。词法分析器的主要任是读入源程序的输入字符、将他们组成词素,生成并输出一个词法单元序

2、列,每个词法单元对应一个词素。这个词法单元序列被输出到语法分析器进行语法分析。词法分析器的功能输入源程序,按照构词规则分解成一系列单词符号。单词是语言中具有独立意义的最小单位,包括关键字、标识符、运算符、界符和常量等(1)关键字是由程序语言定义的具有固定意义的标识符。例如,Pascal中的begin,end,if,while都是保留字。这些字通常不用作一般标识符。(2)标识符用来表示各种名字,如变量名,数组名,过程名等等。(3)常数 常数的类型一般有整型、实型、布尔型、文字型等。(4)运算符如+、-、*、/等等。(5)界符 如逗号、分号、括号、等等。词法分析

3、器所输出单词符号常常表示成如下的二元式:(单词种别,单词符号的属性值)单词种别通常用整数编码。标识符一般统归为一种。常数则宜按类型(整、实、布尔等)分种。关键字可将其全体视为一种。运算符可采用一符一种的方法。界符一般用一符一种的方法。对于每个单词符号,除了给出了种别编码之外,还应给出有关单词符号的属性信息。单词符号的属性是指单词符号的特性或特征。242实验一词法分析器的实现2.1问题描述2.1.1实验内容1.要完成一个完整的编译器,需要实现的功能如下:(1)组织源程序的输入(2)拼出单词并查找其类别编号,形成二元式输出,得到单词流文件(3)删除注释、空格和无

4、用符号(4)发现并定位词法错误,需要输出错误的位置在源程序中的第几行。将错误信息输出到屏幕上。(5)对于普通标识符和常量,分别建立标识符表和常量表(使用线性表存储),当遇到一个标识符或常量时,查找标识符表或常量表,若存在,则返回位置,否则返回0并且填写符号表或常量表。标识符表结构:变量名,类型(整型、实型、字符型),分配的数据区地址注:词法分析阶段只填写变量名,其它部分在语法分析、语义分析、代码生成等阶段逐步填入。常量表结构:常量名,常量值2.能对任何S语言源程序进行分析在运行词法分析程序时,应该用问答形式输入要被分析的S源语言程序的文件名,然后对该程序完成

5、词法分析任务。2.1.2实验原理词法分析程序的算法思想:算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。242.2系统设计2.2.1实验前准备(1)在扫描程序的过程中,注释被忽略。(2)各种单词符号对应的编号(如下):表2-1:编号对照表单词符号编号单词符号编号auto1double2int3struct4break5else6long7switch8case9enum10register11typedef12char13extern14return15union16c

6、onst17float18short19unsigned20continue21for22signed23void24default25goto26sizeof27volatile28do29while30static31if32a33b34f3536t37v38\39?40’41”4243ddd44xhh45数字46标识符47#48(49)50[51]52{53}54‘55*56:57~58%59^60+61?62=63

7、64&65!6624<67>68>=69==70>>71!=72<<73&&74<=75

8、

9、76++77?

10、=78-79--80->81“82%A(A可为d’s’c)83;84_85/868788899091其他类别99(2)实验的状态转换图如图2-2示:图2-2:实验状态转换图242.2.2实验流程图(3)系统流程图如下图2-3所示:开始输入需要扫描的文件名输入存放结果文件名P处跳转扫描其他符号文件是否为空Y返回,退出ch是否为引号N预读一位ch跳转扫描引号NY行数加1ch是否为空格YNch是否为‘/’跳转扫描注释Ych是否为字母或下划线NYch是否为数字或‘—’N跳转扫描数字Y跳转扫面文件单词及保留字N图2-3:系统流程图24(3)扫描注释模块流程图如下所示:

11、图2-4:注释分析模块24(3)扫描数字模块流程图如

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

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

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