山东大学2025-2026-2编译原理期末回忆版

山东大学2025-2026-2编译原理期末回忆版
计算机学院郑艳伟老师小题每题5分画图展示编译器原理后缀式二义文法文法 E→E∨T | T ;T→T∧F | F; F→¬F | (E)| i 句子 a∧¬(b∨c) 语法树、短语、直接短语、句柄文法代表什么语言提取左公因子FA转正规式大题每题13分给定正规式(i|r)v(v,)*①构造NFA②确定化③最小化。LL(1)分析文法①消除左递归②构造First集合③构造Follow集合④构造LL(1)分析表可能涉及消除二义文法冲突⑤识别句子。LR(1)分析①拓广文法②构造拓广文法的LR(1)项目集规范族③构造LR(1)分析表可能涉及消除二义文法冲突④识别句子。4. 翻译句子int m, n; double x, y, z; while (x y) { z z x * y; m m 1; } n 100;①声明语句填写符号表②语句翻译。5. 给出基本块代码①构造DAG②面向目标代码进行DAG优化写出结点重排序列并写出优化后的中间代码④根据变量在符号表中的偏移量和给出寄存器写出目标代码。这题很诡异试卷上的空有11个但是按照最优解只能填满9个这套卷子可能是出得太急了有两处错误一个是考场卷子上while后面那个花括号忘记打了所以有两种翻译方式都算对了以及最后一题空有11个区别在于要不要把不活跃变量存入寄存器存不存都算对不存就是9条存了就是11条