词法分析实验报告

词法分析实验报告

ID:3920361

大小:180.39 KB

页数:18页

时间:2017-11-25

词法分析实验报告_第1页
词法分析实验报告_第2页
词法分析实验报告_第3页
词法分析实验报告_第4页
词法分析实验报告_第5页
资源描述:

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

1、07A409901020402:1.为了加强对编译原理第三章词法分析原理的掌握和运用到实际动手能力上。2.通过对给定源语言词法分析程序的设计,加深对词法分析原理的理解,掌握源语言的接受、存贮、预处理和扫描分析,生成正确的单词符号串二元式序列。1.实验要求的直接分析法,即从左向右扫描源程序,一旦发现有独立意义的字符串时,即将其改造统一长度的二元组(t,i)输出,其中t表示单词种别,i为相应内部表示,本题t分为五类:K(关键字)、I(标识符)、C(常数)、P(界符),L(标号)i为特定项的指针值,对应于每一类属性的单词均设置相应的有贮表格,在识别过程中每识别出一个

2、单词,则将其顺序放入相应的符号表中。2.源程序利用行编辑录入,以TEXT文件形式存贮在盘上,词法分析程序,先对源程序作预处理扫描生成新的TEXT文件。预处理的功能是剔除无用的空白、跳格、回车和换行等编辑性字符;去掉注解部分,连接继续行,给出句未符。词法分析器我用的是c#语言写的一个界面形式的词法分析器,核心思想是首先一个方法是进行预处理,预处理将源程序中所有的连续空格回车等注释的去掉只剩下一个空格,采用的是超前搜索的思想解决预处理的函数,然后针对识别关键字和标示符采用的是状态转换图进行识别,课本第三章那种思想,这样就可以识别出任何关键字和标示符,常量,界符和运

3、算符还有关系运算符等。采用的是超前进位收索的算法,这样就可以实现预处理方法,将多余的空格回车,换行,还有tab建还有注释都去掉,这样就涉及一个问题就是,/*…………*/之间的问题,需要超前搜索来判断/后面的接近着的字符是不是*如果是那么后面的都去掉知道遇到*/为止,同样道理//也是这样。本词法分析器所分析的源程序为:#includevoidmain()/*主函数*/{inta,b,c;/*定义变量*/printf("Inputa,b:");scanf("%d,%d",&a,&b);/*输入变量a和b的值*/c=max(a,b);/*调用max

4、函数,将得到的值赋给c*/printf("Maxofaandbis%d",c);/*输出c的值*/}intmax(intx,inty)/*定义max函数,函数值为整型,x,y为形式参数*/{intz;/*max函数中用到的变量z,也要加以定义*/if(x>y)z=x;elsez=y;return(z);/*将z的值返回,通过max带回调用处*/}词法分析程序为:#include#include#includestructOutForm{charlabel;charstr_result[20];};s

5、tructOutFormOut_Restut[10000];////////结构体存放二维组的结果/////////////////////intstruct_point=0;////////////////////结构体个数指针,表示有多少个二维组intpoint=0;//////////预处理后字符的个数指针////////////////////////////////////////////////////////////////存放关键字的二维数组//////////////////////////////////////////////////ch

6、arKeyName[32][20]={{'i','n','t'},{'w','h','i','l','e'},{'b','r','e','a','k'},{'v','o','i','d'},{'c','o','n','t','i','n','u','e'},{'r','e','t','u','r','n'},{'i','f'},{'e','l','s','e'},{'f','o','r'},{'a','u','t','o'},{'d','o','u','b','l','e'},{'s','t','r','u','c','t'},{'l','o','n','g'

7、},{'s','w','i','t','c','h'},{'c','a','s','e'},{'t','y','p','e','d','e'},{'c','h','a','r'},{'e','x','t','e','r','n'},{'u','n','i','o','n'},{'c','o','n','s','t'},{'f','l','o','a','t'},{'s','h','o','r','t'},{'u','n','s','i','g','n','e','d'},{'s','i','g','n','e','d'},{'d','e','f','a','u

8、','l','t'},{'g','o'

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

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

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