- 博客(0)
- 资源 (5)
空空如也
编译LR分析法
实验三 LR分析法
一、实验目的(实验日期:2011.12.1)
掌握用LR分析法对表达式文法进行自底向上语法分析的算法,加深对LR分析法的移进,归约等操作理解。
二、实验要求
本次实验的SLR(1)文法为表达式拓广文法:
(0) S’→E
(1) E→E+T
(2) E→T
(3) T→T*F
(4) T→F
(5) F→(E)
(6) F→i
改进后的SLR(1)分析表如教材142页图7.8。
编写识别表达式拓广文法的合法句子的SLR(1)分析程序,对输入的任意符号串,给出分析过程及分析结果。分析过程要求输出步骤、状态栈、符号栈、输入串和语法动作。如果该符号串不是表达式文法的合法句子,要给出尽量详细的错误提示。
2013-01-11
词法分析C++程序
编制一个读单词过程,源程序为一个文件,读取该文件,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、界符五大类。并依次输出各个单词的内部编码及单词符号自身值。
单词的内部编码如下:
1、保留字:if、int、for、while、do、return、break、continue;单词种别码为1;
2、标识符:除保留字外的以字母开头,后跟字母、数字的字符序列;单词种别码为2;
3、常数为无符号整形数;单词种别码为3;
4、运算符包括:+、-、*、/、=;单词种别码为4;
5、分隔符包括:,、;、{、}、(、); 单词种别码为5。
例:
源程序文件内容如下:
main()
{
int a, b;
a = 10;
b = a + 20;
}
要求输出如下:
(2,”main”)
(5,”(”)
(5,”)”)
(5,”{“}
(1,”int”)
(2,”a”)
(5,”,”)
(2,”b”)
(5,”;”)
(2,”a”)
(4,”=”)
(3,10)
(5,”;”)
(2,”b”)
(4,”=”)
(2,”a”)
(4,”+”)
(3,20)
(5,”;”)
(5,”)”)
2012-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人