uestc编译原理期末速成指南

26 年 1 月 26 日 星期一 (已编辑)
734 字
4 分钟
text
前情提要:
本人0基础,学了12天左右,前几天过ppt,后几天刷了刷题,最终考了93。并不算高,但也想学弟学妹们学的轻松些,于是有了本教程。
不难看出作者本人也是速成的,因此本教程仅以题目为导向,不深究背后原理。水平有限,如有问题请及时指出,谢谢!
如果速成,不要死抠这门课的细节,这会浪费很多时间。

题目来源:2025年12月8日期末考试真题

第一题:概念

2025年真题:

  1. 中间代码的生成对编译器有什么优点,举例说明
  2. 局部优化和全局优化的区别
  3. 编译器前端如何协作完成源代码到中间代码的翻译

除此之外,你还需要了解:

  1. 编译器和解释器的区别
  2. 编译的步骤流程及每一步的任务与作用(比如语法分析的作用)
  3. 根据要求写出对应正则表达式
  4. 递归下降分析法、自顶向下、自底向上、推导、规约的含义
  5. 抽象语法树的设计以及结构里的成员
  6. 中间代码优化的方法
  7. 活动记录相关内容(定义、内容、静态链动态链)
  8. 符号表的作用和数据结构
  9. ……

学习方法: 将ppt笼统的看一遍,梳理出大致的框架,每个框架主要的定义看一下,感觉不会考的特别细节的东西。

第二题:

2025年真题:
S -> SaA | SbA | A
A -> AdB | AeB | B
B -> m | (S)
对 AbBd(m) 写出其短语,直接短语,句柄

知识点:
在树中,(下列非严格定义)
句柄: 最左直接短语
短语: 某非终结符(中间节点)的所有叶子节点
直接短语: 仅一层深的短语
素短语: 至少含有一个终结符,且不包含其他素短语

此题画出树,对树进行分析即可

相似例题:


第三题:

2025年真题:
对字符集在 ={a,b}\sum = \{a, b\} 上且不以 aa 开头并且以 aaaa 结尾的字符串正则表达式和最简DFA

解题步骤:

  1. 改写成正则表达式
  2. 改写为NFA
  3. 改写为DFA
  4. DFA化简

直接看下面这个视频,看完会了多加练习即可


再来几题练练手~


::bilibili{#BV1fi4y1Q7Yz}

第四题:

EE+EEEEidE \to E + E \mid E - E \mid - E \mid id

其是否具有二义性?若有举例说明,并把它改为不含左递归的非二义性文法。

第五题:

SABAaεBb\begin{aligned} S &\to AB \\ A &\to a \mid \varepsilon \\ B &\to b \end{aligned}

写出 FIRSTFIRSTFOLLOWFOLLOW 集,并写出该文法预测分析表。

第六题:

SL=RRLRidRL\begin{aligned} S &\to L = R \mid R \\ L &\to *R \mid id \\ R &\to L \end{aligned}
  1. 写出其拓广文法并标号
  2. 画出 LR(1)LR(1) 项目集识别活前缀的 DFA
  3. 画出分析表

文章标题:uestc编译原理期末速成指南

文章作者:深深

文章链接:https://shenshenovo.cn/posts/uestcbyyl[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。