![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理
文章平均质量分 90
菜菜菜菜oo
zzu大三计科蒟蒻
展开
-
编译原理常考概念汇总
符号表是用来记录编译过程中各种信息的表格登记编译过程中输入和输出信息在语义分析过程中用于语义检查和中间代码产生作为目标代码生成阶段地址分配的依据。原创 2024-01-12 00:25:56 · 381 阅读 · 0 评论 -
编译原理-语法分析-自上而下分析
\quad \quad 把形如P_i->P_j \gamma 的规则改写成,P_i-> \delta_1 \gamma|\delta_2 \gamma|…我们从上面的文法可以看出S是由Q定义的,Q是由R定义的,R是由S定义的,那么我们可以得到下图。对于一个LL(1)文法,我们可以对输入串进行有效的无回溯的至上而下分析,假设我们要用非终结符。对于第二个式子也是直接左递归的我们也需要进行消除,首先第二个式子最终推导出的串的形式下以。零G是一个不含左递归的文法,对G的所有非终结符的每一个候选。原创 2023-11-13 21:16:40 · 218 阅读 · 0 评论 -
编译原理-至下而上的语法分析
用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左部符号。此时我们进行归约的话就会出现矛盾,b是第二个推导的产生式,Ab是第二个产生式的候选式,这里我们选择第二种进行归约。我们在通常实现上面算法的时候在判断优先关系的时候一般不采用查表的方法而是用两个优先函数,优先函数可以将原来。:至少包含一个终结符,并且除了它自身外不包含任何更小的素短语,最左素短语就是句型最左边的素短语。,一个句型的最左直接短语称为该句型的。原创 2023-11-13 15:37:26 · 136 阅读 · 0 评论 -
编译原理-词法分析器
我们考虑转换到状态1的条件:我们只有在接收到字符a的时候才会转换成状态1,而想要从状态1转换的状态3则必须要再接收一个字符a,考虑状态2,只有在接收到字符b的情况下才会转换到状态2,然后终态一定是以aa或bb结尾吗?我们看到终态还可以接收a|b转圈,所以一定不是以aa|bb结尾,但是要想从初态到终态,一定会经过1、2两个状态中的一个,所以一定会出现连续的aa|bb。这一步进行的意义是将状态之间的转换,变为状态集之间的转换,这样就有可能消除映射不是单值部分映射的问题。原创 2023-10-24 22:30:28 · 2811 阅读 · 0 评论