编译原理
文章平均质量分 85
SnowFly09
这个作者很懒,什么都没留下…
展开
-
【编译原理复习笔记】中间语言
如果采用数值表示法,那么 B 的真伪是必须要进行计算的,但是采用这种方法时,A 一旦为 false 就不用在计算 B。总的来说,一共有两种跳转可能,一种为“真”,一种为“假”,把这些未完成的四元式作为语义值保存,到合适的位置回填。(2)若 E 为 E1 op E2 的形式,则其后缀式为 E1’ E2’ op,其中前两项对应了各自的后缀式。将每个三元式都表示为带有四个域的记录结构,分别为 op,arg1,arg2,res。(3)若 E 为(E1)形式,则 E 的后缀式为 E1 的后缀式。原创 2024-05-26 16:56:39 · 1232 阅读 · 0 评论 -
【编译原理复习笔记】属性文法
对于继承属性,则先构建语法树,然后自上而下填写,对于 addtype,就是在符号表中填写其对应名字,属性对应 addtype 中后项(通常为父节点)所对应的属性。(2)出现在左边的继承规则和右边的综合属性不由对应产生式的属性计算规则进行计算,而是由其他产生式的属性规则计算或者由相关参数提供。语义规则只给出了属性计算的定义,但是没有给出属性计算的先后顺序,可以在属性文法的基础上进一步给出使用顺序,就叫翻译模式。自上而下传递信息,根据右部候选式的符号属性与左部的属性计算右部候选式中符号的继承属性。原创 2024-05-24 17:05:10 · 1131 阅读 · 0 评论 -
【编译原理复习笔记】语法分析-补充(二义性与LR错误处理)
对于 I7,由于乘号优先级高于加号,所以当下一个输入符号为乘号时,我们优先进行移进;当输入符号为加号时,由于加号具有左结合性,我们优先处理状态内的加号,所以进行归约。检查 LR 分析表中的每一个报错条目,并根据语言的使用方法来决定形成这个错误的原因,然后构造出适当的恢复进程。语法错误的检测,当 LR 分析器在查询分析表并发现一个报错条目的时候,就检测到了一个语法错误。恐慌模式已经做过介绍,这里对于短语层次错误恢复进行介绍。对于 I8,由于乘号的优先级高,所以进行归约。每个二义性文法都不是 LR 的。原创 2024-05-23 20:02:49 · 326 阅读 · 0 评论 -
【编译原理复习笔记】语法分析(二)
从分析树的底部(叶节点)向顶部(根结点)方向构造分析树自顶向下的语法分析采用最左推导,与之对应自底向上采用最左规约(反响构造最右推导)(1)从输入中移动终结符到栈中(2)若此时栈中终结符无法与产生式列表中的右部任何一项对应,则继续移入终结符(3)若此时栈中某一部分可以进行规约,则转换成对应可规约产生式的左部,然后再次进行(1)(4)当输入中最后不含有终结符,且栈中最后只剩下开始符号的时候,证明规约结束栈内符号串+剩余输入=“规范句型”每规约一次,规范句型才会变化一次(而不是移入栈内就会规约在规约原创 2024-05-23 19:31:24 · 923 阅读 · 0 评论 -
【编译原理复习笔记】语法分析(一)
根据上面的概念,在文法 G 中,任意两个具有相同左部的产生式A→α∣βA→α∣β(1)如果 alpha 和 beta 均不能推出空字符,则FIRSTα∩FIRSTβ∅FIRSTα∩FIRSTβ∅(2)alpha 和 beta 至多有一个能够推导出空字符如果βϵβ=>ϵ,则FIRSTα∩FOLLOWA∅FIRSTα∩FOLLOWA∅对于 alpha 同理。原创 2024-05-23 19:19:38 · 667 阅读 · 0 评论 -
【编译原理复习笔记】正则表达式与自动机
空字符是一个正则表达式,则LϵϵLϵϵ属于字母表中的字母 a为一个正则表达式,则LaaLaa假设 r 和 s 都是正则表达式,表示的语言分别是 L(r)和 L(s)则:(1)r|s 是一个正则表达式:L(r|s)=L(r)并 L(s)(2)rs 是一个正则表达式,L(rs) = L(r)L(s)(3)r是正则表达式,其语言等于 r 语言的闭包(4)(r)的语言就是 r 的语言这四个运算的优先级从高到低分别是:,连接,|e.g.∑ab∑a。原创 2024-05-23 18:54:46 · 1223 阅读 · 0 评论 -
【编译原理复习笔记】(1)编译器结构简介
机器语言-汇编语言-高级语言。原创 2024-04-29 17:56:16 · 733 阅读 · 1 评论 -
【编译原理复习笔记】(2)语言与文法概述
自然语言实例GVTVNPSGVTVNPS给定文法 G,产生式包含 alpha 推导 beta,则对于符号串γαδγαδ可以重写为γβδγβδγαδ→γβδγαδ→γβδ→n→n。原创 2024-05-05 12:59:12 · 618 阅读 · 2 评论