编译原理-题型分享

关于几类题型:

1.词法分析:文法--语言(正规集)--正规式--NFA--DFA的转换

1.1)DFA<-->正规式

1.2)语言L-->(正规式-->NFA)-->DFA

1.3)语言L(L对应集合 / L的某种描述)-->文法

对应的answer:

2.代码优化:根据基本块出口时的活跃变量,对四元序列优化and 画DAG图

3.中间代码生成:程序翻译成四元式序列

4.语法分析:

4.1)可规约串的识别:给定句型,求短语/直接短语/句柄(即最左直接短语)/素短语/最左素短语:

4.2)语法分析(自顶向下)--LL(1)文法的一系列题目:

4.2.1)消除文法左递归+回溯;

4.2.2)构造全体非终结符的FIRST,FOLLOW集合

4.2.3)构造预测分析表and  LL(1)文法的判断

4.3)语法分析(自下向上)

4.3.1)firstvt,lastvt集合计算,构造算符优先关系表,算符优先文法判断

4.3.2)根据LR分析表对输入串作过程分析

5.一些小思考,抛砖引玉:

1)NFA->DFA确定化时,不列入空集会如何?

采用子集法中,每当出现未列入的集合时,就列入到第一列中作为一个状态。那么若出现空集,即便作为状态,走a弧还是b弧都是回到自己(空集),那去掉会怎么样?

2)文法二义性的问题

这个没有定式,只能说按经验总结。

2.1)几类文法已知是肯定无二义的:LL(1),LR(k),算符优先文法;所以通过判断是否满足对应文法的条件来判断(这是个充分不必要条件)

2.2)几类产生式,如对称形(有S->SaS,或S->SS),包括形(S->aSb|Sb 或S->aSb|aS);

2.3)普遍的说,对一个句型找到两颗不同的语法树即可(通常是判断其最左和最右推导这两颗)

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值