⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 编译定义.txt

📁 编译原理的课程设计,含报告地方还行iushdfiuheohrg
💻 TXT
字号:
一、词法分析
1.关键字(0)
	int float if then while do
2.用户自定义标志符/变量(1)
	由字母开头的字母和数字组成的序列,区分大小写
3.数字(2)
	由0-9和.组成的序列
4. 算术运算符(3)
	+ - * /
5.比较运算符(4)
	< > ==
6.赋值运算符(5)
	=
二、语法分析
1.EBNF范式表示:
	<变量说明>::=<变量类型><标志符>
	<变量类型>::=int|float
	<语句>::=<变量说明>|<赋值语句>|<条件语句>|<循环语句>
	<赋值语句>::=<标志符>=<表达式>
	<表达式>::=<项>{<算术运算符><项>}
	<项>::=<标志符>|<数字>
	<条件语句>::=if<条件>then<赋值语句>
	<条件>::=<标志符><比较运算符><数字>
	<循环语句>::=while<条件>do<赋值语句>
	<标志符>::=<字母>
	<算术运算符>::=+|-|*|/
	<关系运算符>::=<|>|==
	<赋值运算符>::==
	<字母>::=a|b|...|X|Y|Z
	<数字>::=0|1|2...7|8|9
备注:一行代码就是一条完整的语句,所以不需要界符。	
2.为了更好的运用词法分析的中间结果,为了更方便的进行语法分析,不妨将语法G[S]重新定义为:
	终结符:类型变量(a)、if(b)、then(c)、while(d)、do(e)、标志符(f)、数字(g)、算术运算符(h)、比较运算符(i)、赋值运算符(j)(、空符号串(k)、结束符(l))
	非终结符:语句(S)、变量说明(A)、条件语句(B)、循环语句(C)、赋值语句(D)、表达式(E)、项(F)、条件(G)(、无意义非终结符(H))
	开始符:语句(S)
	该文法可以转变为LL(1)文法,所以可以用确定的自顶向下语法分析中的预测分析方法。
	
	下面是改写后的文法:
	G[S]:
		S->A|B|C|D
		A->ab
		B->bGcD
		G->fiE
		E->FH
		F->f|g
		D->fjE
		C->dGeD
		H->k|hF

3.构造的预测分析表:
	
三、Test program:
	
	int a
	float b
	a=12
	if a==1 then b=a
	while b<10 do b=b+1

四、心得体会

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -