求解一段语法分析 学过编译原理的进我已经对语法分析有了解了,但是下面一些字符含义不是很明E T F G ε这个是不是可以代表任意符号?1.算术表达式文法G(E):E-> E +T | T\x05T ->T* F | F\x05F->i | (
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/29 08:41:34
求解一段语法分析 学过编译原理的进我已经对语法分析有了解了,但是下面一些字符含义不是很明E T F G ε这个是不是可以代表任意符号?1.算术表达式文法G(E):E-> E +T | T\x05T ->T* F | F\x05F->i | (
求解一段语法分析 学过编译原理的进
我已经对语法分析有了解了,但是下面一些字符含义不是很明
E T F G ε这个是不是可以代表任意符号?
1.算术表达式文法
G(E):E-> E +T | T
\x05T ->T* F | F
\x05F->i | (E)
2.文法变换:
\x05G’(E):E->TE'
\x05 E'->+TE'|ε
\x05 T->FT'
\x05 T'->*FT'|ε
\x05 F->(E)|I
最近看编译原理不是很明白
seq->seq instr | begin
instr->north | south | west | east
那么语句可以写为begin north east south
语法在哪里规定了一定是begin开头?
求解一段语法分析 学过编译原理的进我已经对语法分析有了解了,但是下面一些字符含义不是很明E T F G ε这个是不是可以代表任意符号?1.算术表达式文法G(E):E-> E +T | T\x05T ->T* F | F\x05F->i | (
E是文法开头.ε代表终结符号(推理中代表终点或结果,程序语言中代表常量等).E T 这些大写字母一般代表非终结符号(这些代表中间过程,非结果.程序中代表函数等等).开始是E.因为有个G(E).E就是文法开始符号.推导就有E开始,它也是一个非终结符(代表函数、或者一个推导过程,类似于程序中的main(c++)、winmain(vc++)、dllmain(dll)等主函数).
1算术表达式文法:这个文法是一个递归文法.计算机进行逻辑推导时会走很多弯路(类似于遍历一颗树的过程).为了不让计算机走弯路(提高效率的目的),可以变换为第二种文法.这种文法消除了递归(消除了歧义,类似于后缀表达式),使计算机可以一条直线走到底儿推导出结果.
我也很久没看编译原理了.