编译原理_词法分析器_实验报告(20220301233624).pdf
《编译原理_词法分析器_实验报告(20220301233624).pdf》由会员分享,可在线阅读,更多相关《编译原理_词法分析器_实验报告(20220301233624).pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、词法分析器实验报告实验目的:设计、编制、调试一个词法分析子程序识别单词,加深对词法分析原理的理解。功能描述:该程序要实现的是一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error!”,然后跳过错误部分继续进行)设计思想:设计该词法分析器的过程中虽然没有实际将所有的状态转移表建立出来,但是所用的思想是根据状态转移表实现对单词的识别。首先构造一个保留字表,然后,每输入一个字符就检测应该进入什么状态,并将该字符连接到d 串后继续输入,如此循环,最后根据所在的接受状态
2、以及保留字表识别单词。符号表:记号类别属性值ws-const 保留字1 var 保留字1 call 保留字1 begin 保留字1 if 保留字1 while 保留字1 do 保留字1 odd 保留字1 end 保留字1 then 保留字1 procedure 保留字1=运算符2 运算符2=运算符2 运算符2 运算符2=运算符2*运算符2+运算符2-运算符2/运算符2:=运算符2 ident 标识符3 number 常数4(分隔符5)分隔符5;分隔符5,分隔符5.分隔符5 状态转换图:标识符及保留字:number:关系操作符:Start letter letter or digitt 0 2
3、1 4 3 65 start digit.digit E+|-digit digit digit digit E digit other other 分隔符:start other=(=other =*(,2)(=,2)(,2):=(:=,2)算术运算符:使用环境:Windows xp 下的 visual c+6.0 程序测试:input1:int a,b;a=b+2;start;(),.(;,5)(,5)(),5)(,5)(.,5)start+-*/(+,2)(-,2)(*,2)(/,2)input2:while(a=0)do 7x=x+6.7E+23;end;input3:begin:x:
4、=9 if x0 then x:=x+1;while a:=0 do b:=2*x/3,c:=a;end;output1:3,int 3,a 5,3,b 5,;3,a 2,=3,b 2,+4,2 5,;output2:output2:1,while 5,(3,a 2,=4,0 5,)1,do error line 3 2,=3,x 2,+4,6.7E+23 5,;1,end 5,;output3:output3:1,begin error line 1 3,x 2,:=4,9 1,if 3,x 2,4,0 1,then 3,x 2,:=3,x 2,+4,1 5,;1,while 3,a 2,:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 词法 分析器 实验 报告 20220301233624
限制150内