算符优先分析器设计实验报告--宁剑.docx

算符优先分析器设计实验报告--宁剑.docx

ID:57378377

大小:611.32 KB

页数:9页

时间:2020-08-13

算符优先分析器设计实验报告--宁剑.docx_第1页
算符优先分析器设计实验报告--宁剑.docx_第2页
算符优先分析器设计实验报告--宁剑.docx_第3页
算符优先分析器设计实验报告--宁剑.docx_第4页
算符优先分析器设计实验报告--宁剑.docx_第5页
资源描述:

《算符优先分析器设计实验报告--宁剑.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、装订线编译原理实验报告题目:算符优先分析法分析器学院计算机科学与技术专业xxxxxxxxxxxxxxxx学号xxxxxxxxxxxx姓名宁剑指导教师xxxx2015年xx月xx日算符优先分析法分析器一、实验目的 1.理解自底向上优先分析,比较和自顶向下优先分析的不同。2.理解算符优先分析的特点,体会其和简单优先分析方法的不同。3.加深对编译器语法分析的理解。二、实验原理 1.自底向上优先分析方法,也称移进-归约分析,粗略地说它的思想是对输入符号串自左向右进行扫描,并将输入符号逐个移入一个后进先出栈,边移入边分析,

2、一旦栈顶符号串形成某个句型的句柄或可归约串时,就将该产生式的左部非终极符代替相应的右边文法符号串。2.算符优先分析法的基本思想首先确定算符(确切地说是终结符)之间的优先关系和结合性质,然后借助这种关系,比较相邻算符之间的优先级来确定句型的可归约串,并进行归约。注意:算符优先分析过程是自下而上的归约过程,但它的可归约串未必是句柄,也就是说,算符优先分析过程不是一种规范归约。3.终结符号间优先关系的确定,用FIRSTVT和LASTVT计算。4.最左素短语所谓素短语是指这样一个短语,它至少含有一个终结符,并且除它自身之

3、外不再含有其它素短语。最左素短语是指处于句型最左边的那个素短语。最左素短语是算符优先分析算法的可归约串。5.计算得到所给文法的算符优先矩阵6.算符优先分析的基本过程三、实验要求使用算符优先分析算法分析下面的文法:E’→#E#E→E+T

4、TT→T*F

5、FF→P^F

6、PP→(E)

7、i其中i可以看作是一个终结符,无需作词法分析。具体要求如下:1.如果输入符号串为正确句子,显示分析步骤,包括分析栈中的内容、优先关系、输入符号串的变化情况;2.如果输入符号串不是正确句子,则指示出错位置。四、实验结果(程序)及分析#incl

8、ude#include#include#include#defineMAX100usingnamespacestd;charS[MAX];charshuru[MAX],yu[MAX];voidscanner();intpanyouxian(charx);voidshengyuchuan();intk;charyouxian[7][7]={{'>','<','<','<','<','>','>'},{'>','>','<','<','<','

9、>','>'},{'>','>','<','<','<','>','>'},{'>','>','>','$','$','>','>'},{'<','<','<','<','<','=','$'},{'>','>','>','$','$','>','>'},{'<','<','<','<','<','$','='},};//优先关系表,其中>为大于,<为小于,=为等于,$为空格intmain(){intl,j;cout<<"请输入一个字符串:";cin.get(shuru,MAX);//将输入的字符串存到数组cou

10、t<<"步骤栈优先关系当前符号剩余输入串移进或归约"<

11、len(shuru);//算出输入串长度for(i=0;i

12、

13、S[k]=='*'

14、

15、S[k]=='^'

16、

17、S[k]=='i'

18、

19、S[k]=='('

20、

21、S[k]==')'

22、

23、S[k]=='#')j=k;elsej=k-1;h1=panyouxian(S[j]);//从优先关系表中查出S[j]和a的优先关系if(a=='+'

24、

25、a=='*'

26、

27、a=='^'

28、

29、a=='i'

30、

31、a=='('

32、

33、a==')'

34、

35、a=='#')l1=panyouxian(a);e

36、lse//如果句子含有不是终结符集合里的其它字符,不合法{cout<<"错误!不合法的句子!"<'){loop:Q=S[j];if(S[j-1]=='+'

37、

38、S[j-1]=='*'

39、

40、S[j-1]=='^'

41、

42、S[j-1]=='i'

43、

44、S[j-1]=='('

45、

46、S[j-1]==')'

47、

48、S[

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

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

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