编译实验词法分析

编译实验词法分析

ID:16026839

大小:280.00 KB

页数:12页

时间:2018-08-07

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

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

1、词法分析器实验报告院系:专业:小组成员:学号:日期:一、实验的目的与任务词法分析的目的是将输入的源程序进行划分,给出基本符号(token)的序列,并掠过注解和空格等分隔符号。基本符号是与输入的语言定义的词法所规定的终结符。本实验要求学生编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续进行)。二、实验所要识别的单词分类1.关键字。*key[53]={"auto","bool","break",

2、"case","catch","char","class","const","continue","default","delete","do","double","else","enum","extern","false","float","for","friend","goto","if","inline","int","long","namespace","new","operator","private","protected","public","register","return","short","signed","sizeof","stati

3、c","struct","switch","template","this","throw","true","try","typedef","typename","union","unsigned","using","virtual","void","volatile","while"};2.标识符。符合文法标识符,由字符和数字组成,首字符必须为下划线或字母。(hjw,wyp2319,_zhg…..)3.数字。整型,浮点型,科学计数。4.运算符。*arithmetic[6]={"+","-","*","/","++","--"};5.关系运算符。*relat

4、ion[7]={"<","<=","=",">",">=","==","!="};6.分界符。*border[7]={",",";","{","}","(",")","//"};三、输出格式1)若为关键字,则输出格式为;例:关键字float,输出为2)若为一般标识符,则输出格式为;例:标识符fzu,输出为3)若为数字,则输出格式为;例:数字2325,输出为<2325,数字>4)若为算术运算符,则输出格式为<符号,算术运算符>;例:+,输出为<+,算术运算符>5)若

5、为关系运算符,则输出格式为<符号,关系运算符>;例:!=,输出为6)若出错,则输出格式为;例:错误输入为26.,则输出为<26.,ERROR>四、正则表达式:标识符id->letter_(letter_

6、digit)*无符号数number->digitoptitionalfractionoptionalexponent空白符ws->(blank

7、tab

8、newline)+关系运算符relop-><

9、>

10、<=

11、>=

12、=

13、!=运算符operator->+

14、-

15、*

16、/

17、++

18、--五、DFA状态转换图start<0ot

19、her=678return(relop,LE)54>=123other>=**return(relop,NE)return(relop,LT)return(relop,EQ)return(relop,GE)return(relop,GT)startletter9other1110letter/dig*1912141316151817startotherdigit.digitE+

20、-digitdigitdigitdigitEdigit*start+25+other*-262728293332other3031-**/六、流程图七、实验结果实验环境:Micros

21、oftWindows7下的MicrosoftVisualStudio2010输入输出输入输出输入输出八、结果分析用格式为.txt的文件输入,一个个字符去识别,根据DFA的状态图实现跳转,把未进入接受状态的单元存放进一个数组,到达接受状态,将识别出来的词和属性一起输出。其中识别得到的id与keyword转换过程相同,故最后得到的结果还要再判断是标识符还是关键字。由于关键词有限,可以建个表存放关键字,通过查表实现判断关键字。运算符和分隔符是有限的,所以把它们罗列去判断,只要是符合条件就接收。九、实验总结实验是理论的实践,但是通过实验加深了我们对理论课知识的理解和

22、运用,词法分析器更是如此。对输入的程序进行分析,将关

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

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

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