| 选课类别:计划内与自由选修 | 教学类型:理论实验课 |
| 课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
| 课程层次:专业核心 | 学分:4.0 |
本课程介绍编译器构造的一般原理、基本设计方法和主要实现技术,其内容包括词法分析、语法分析、语法制导的翻译、语义分析、运行时存储空间的组织和管理、中间表示与中间代码生成、目标代码生成、代码优化、编译系统和运行系统等。除了介绍编程语言的编译技术外,本课程还选择数据流分析、过程间分析、循环优化、龙芯和。本课程还强调一些相关的理论知识,如形式语言和自动机理论、语法制导的定义和属性文法、类型论和类型系统、数据流分析的一般框架等。
我能保上研吗……
等到出分了再来细细评,真的是在整个计科本科生涯中为数不多会让我感到兴奋的课了(上一个是图形学)。
考试感觉看上去都会但是又牛角尖了而且写action goto表的时候都把FOLLOW集写在卷子上了结果写规约的项的时候全写在$列了……而且流图因为自己牛角尖般的时间分配没做……最后的实验题是lab3的龙芯汇编相关但考场上大大短路了……就看着都会看着都挺简单的怎么就是不动手写呢……
(以上是自己经常性无意义碎碎念,但其实很多时候回过头来想也就轻舟已过万重山万重山。不管最后怎样,只记得无数个夜晚debug时的绝望以及终于做成给人的超强正反馈,真的学到了很多东西(特别是ai编程这一块,但编译项目的巨大性要求你必须头脑清楚否则ai所呈递的也就是屎山堆叠))
点名有一次没到(),作业57/60,实验447/450,考试……感觉按照自己过失的水准能及格就行。
ppt上写的分数组成是15平时(作业5次+很少的点到),35-50考试,35-50实验
试卷:
1.正则到NFA到DFA到化简全流程,每个点都考到了
2.正则表达式
2.1 大于二进制数10的二进制串
2.2 由a,b组成的非空字符,但是不能连续出现三个一样的字符
3. FIRST集和FOLLOW集与LL(1)文法判断
4.SLR文法分析以及表的构建(我开始犯傻的地方)
5.含乘加的表达式文法书写以及左递归的消除,好像还有一个写出含一堆if else while的分析树并写出tlist flist以及写出三地址码(没时间了,已经在钻牛角尖了)
6.(12分)流图,考察的是三大分析中的活跃变量分析(写出def use 反向数据流那个)(我为什么要钻牛角尖把简单的空着……)
7. (5分)lab4优化pass相关,lab4实现了mem2reg和LICM(不变量外提),要是加入常量传播问你应该执行怎样的顺序(题目好心的告诉了你我们之前的顺序是deadcode到mem2reg到deadcode到LICM到deadcode)
8.(12分)lab3龙芯汇编相关,第一题考察代码阅读问你函数作用,很贴心的告诉了你sgt表示s greater than,第二问栈帧变量偏移量相关(我……),第三问问你要加phi指令应该加在哪里,怎么实现(我……)
纠结分数没意义了反正我看着自己的卷子也会被气笑()出分之前先给大家分享到课时没记在课件上的课堂随记(应该没有时间再整理了ww)
出分之后再根据自己的状态细细评
考零分会挂科吗?希望不会,打个给分超好