实验一词法分析.doc

实验一词法分析.doc

ID:52451783

大小:32.50 KB

页数:2页

时间:2020-03-27

实验一词法分析.doc_第1页
实验一词法分析.doc_第2页
资源描述:

《实验一词法分析.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一词法分析学时数:4一、实验目的通过编写词法分析程序,熟悉其识别单词的基本思想及构造方法。二、实验内容编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,并输出该字符,然后跳过该字符继续识别)。三、实验步骤1、确定所要识别的程序语言的单词表,各单词的分类及其记号(或种别编码);例如教材P15例2.1。2、画出识别该语言所有单词的确定有限自动机;可分开画,例如教材P18

2、-19图2-3/2-4/2-5是分别识别标识符和关键字、关系运算符、无符号数的DFA。也可集中画在一张图,例如P20图2-6。3、根据DFA构造该语言的词法分析程序,开发工具可自行选择,建议选择C语言4、测试,详见测试要求。四、编程思想1、定义部分:定义常量、变量、数据结构。2、初始化:从文件将源程序全部输入到字符缓冲区中。3、从左至右扫描源程序的每个符号:去掉多余空白,按照词法规则(或识别单词的DFA图)识别单词。4、输出单词的二元式。五、测试要求将被分析的程序即测试程序作为词法分析程序的输入,结果应是按先后顺序

3、输出组成该被分析程序的各个单词的二元式形式。(说明:每个词法分析器输出的二元式不相同,因为它有自己的单词表和记号或种别编码,因此在实验步骤1时要明确)(id,program)(id,scan)……(error,‘;’)(id,begin)(while,)(id,a)(relop,<)(number,10)……例如:如下为被分析程序即测试程序a.c。programscaninta,b,c;beginwhilea<0doa=a+1;c=a+b;end该测试程序经词法分析后部分输出如右图。六、实验报告要求1、写出调试程序

4、出现的问题及解决的方法。2、写实验报告(参见实验报告模板)及核心程序。3、报告给出测试的结果。[补充说明1]词法分析程序可以从网上下载,但要求:1、理解该程序,在实验报告中说明该词法分析器所识别的程序设计语言的单词表,及各单词的分类及其记号(或种别编码);2、在实验报告中说明该程序各主要数据结构的作用、主要函数的功能,并对核心代码段作注释。3、自拟一段代码作为测试用例测试该词法分析器,记录测试结果;4、思考:(1)该词法分析器存在什么问题(或有什么不足)?(2)扩充其单词表,增加若干新单词,如关键字、运算符或分隔符

5、等,确定新增单词符号的记号,然后修改原词法分析器,使其可以识别新增单词符号。[补充说明2]词法分析器也可使用LEX自动生成器生成,Lex工具的使用说明参见附件。

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

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

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