编译原理和技术(郑启龙) 2021秋 2020秋 2019秋 2018秋 2017秋 2016秋 2015秋 2014秋 2014春 2013秋 2013春 2012秋 2012春 2011春 2010春 2009春 2008春 2007春 2006春 2005春 2004春  课程号:01116301
2021秋 2020秋 2019秋 2018秋 2017秋 2016秋 2015秋 2014秋 2014春 2013秋 2013春 2012秋 2012春 2011春 2010春 2009春 2008春 2007春 2006春 2005春 2004春  课程号:01116301
5.3(26人评价)
  • 课程难度:困难
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:一般
选课类别:计划 教学类型:理论实验课
课程类别:本科计划内课程 开课单位:计算机科学与技术系
课程层次:专业核心 学分:4
课程主页:暂无(如果你知道,劳烦告诉我们!)
简介

本课程是计算机科学与技术专业的专业核心课,目的是让学生对程序设计语言的设计和实现技术有深刻的理解,对和程序设计语言有关的理论有所了解,并能把本课程讨论的概念和技术用到软件设计和开发中。本课程介绍编译器构造的一般原理和基本实现方法,其内容包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等部分。本课程在介绍编译器各逻辑阶段实现技术的同时,强调形式化描述技术,并以语法制导定义作为翻译的主要描述工具。作为原理性的课程,本课程介绍基本的理论和方法,而不偏向于某种源语言或目标机器。

最后更新:

点评 写点评
我收钱了 2020秋

强烈建议大家选这个课! 郑启龙上课思路清晰,会说中文,PPT除了知识点其他都很有趣。 助教也很负责,百忙之中还帮我们建了一个QQ群,发了准确率还算比较高的答案。 考试题出的非常新颖,非常有挑战性,强烈建议gpa太高的人来选!(考试很合理,有许多常用的c语言声明,学过c的应该都会

21 2
根本不行高,实在是高
河源我缺氧了

立即登录,说说你的看法

ForeverTime 2020秋

这试卷做完了折寿。

出分了,没有调分,这门课平时的作业、实验以及最后的考试的题目特别烦,还特别喜欢考指针,数组,引用。助教在这门课里没有发挥过任何作用,要么就是半天不回复,要么就是不知道(能回答不知道对这门课的助教来说已经是相当罕见了)。

总而言之,虽然lc班作业多,实验量大,但是好歹助教老师负责任,能换去lc班赶紧去,别在这门课找罪受。

最后放张图:

10 0
吃人 2020秋

int a[]={0,{1},{2},3,{4},{5},{6},7,{8},9,};

int b[][2]={0,{1},{2},3,{4},{5},{6},7,{8},9,};

int c[][2][2]={0,{1,},{2},3,{4},{5},{6},7,{8},9,};

同学们李诚班走起,没什么好说的

助教=没有

考试十分离谱

后悔当初室友叫我换班我没换

 

9 0
supZQ 2020秋

占坑

打完游戏开骂

来晚了,该骂的都被骂完了

总之,大家别选,lc/zy哪个不比zql好!

6 0
Nullptr 2020秋

(考过期末了,出分之后看情况更新)

我实在忍不住要吐槽一下。

这种放羊式的教学氛围对我这种凡人极不友好。

  1. 习题课答疑课极少(整个学期加起来不知道有没有3次)。助教也不怎么随堂,以至于有时候问助教ppt上的内容,他们也看不懂。
  2. 作业的参考解答给得非常晚,有时甚至上交作业后几个星期才把若干次作业的答案一起公布。那个时候早忘了题目是什么了,怎么订正?
  3. 作业的参考解答的质量也一般。很多答案是助教手写拍照发电子版,但是为啥那么模糊...期末复习的时候对照着参考解答复习作业题的时候有时看得一脸懵逼,百思不得解。最后没办法发邮件问老师,或者自己反复重做,才发现答案是错的。我也是纳闷,明明是祖传的习题用了几届了,怎么老师也不整理一份标答出来...我都在github上找到往届的作业了(当然也有些错误)...

郑老师人还比较亲和,有问题可以当面或者发邮件问他,我问的很蠢的问题也会回答。

(ps.老师课间不下课,上课建议少喝水)

种种原因,这是我当前体验最糟糕的一门课。

期末考完更新:

  1. 期末没考汇编...白复习了...相应的,考了PL/0的指令。实验完全弄懂了,今年就不亏(然而菜鸡的我并没有)。
  2. 实验安排并不是特别好,综合性比较强,刚开始学习的时候,如果不是之前就学过编译原理,几乎做不了什么工作,到了后期就很忙。(听说有大佬小组作业一拖三最后也要肝一个多星期)

听说给分也很阴间,优秀率只有20%

6 1
也西湖摸鱼PL0那题主要是他的魔法没人看得懂

立即登录,说说你的看法

也西湖摸鱼 2020秋

这门课槽点很多

 

### 实验槽点:

zql又把他的古董PL0翻出来。从主页上下载后打开,首先映入眼帘的便是"void main"产生的警告;稍微看下代码,头文件直接定义了几十个全局变量,变量名几乎不含元音字母,净是些ll、tx、kk这样的,比Linux命令还抽象;实验要求十分模糊,大家都不知道标准是什么,各做各的。检查时也是天马行空,前边的10组在讲台上做presentation & 回答zql的当场提问,大概要二三十分钟;后面十几组时间不够了,直接去他办公室不到5min检查完……自己检查进度严重落后于群里讲的,心里没点数吗

那么为什么今年不做mini python了呢?

 

### 助教槽点:

TA如同虚设,除了收/批改作业外没有任何实际贡献。改作业的水平也很值得怀疑:语法制导翻译那次作业我乱写的,助教应该是没仔细看,直接给打了10分(滑稽

课程群里同学问的问题,要么压根不理,要么回复“我也不会”云云。公布作业答案往往很晚,并且全是手写+拍照+胡乱拼接,搞得乱七八糟。有时候作业忘带了,询问补交事宜,要么几天后才回复,要么就是问两遍才回复/手动狗头

检查实验时已经结课,助教和老师也是一样不操心,上课教室被占做考场都不知道,净耽误时间。有个助教当时还在偷笑,我???

在群里问起实验相关的内容,除了检查的ddl以外,助教全部是一问三不知。和隔壁班众耳熟能详的大佬学长助教一对比,差距过于明显。

 

### 考试槽点:

考试前两题和隔壁班是一样的,很正常的词法文法题。从zql自己出的第三题开始就搞那些阴间玩意,int c[ ][2][2]={0,{1,},{2},3,{4},{5},{6},7,{8},9,}; 让你把第一个[ ]里面的数字填上,然后下一问又让你编译出对应的初始化汇编代码。且不说依他的要求,团队实验中有些人根本就没接触过这些,就算你自己做了数组初始化那部分的任务,你也大概率不知道这种奇怪的c魔法到底是啥意思,那要怎么写?作业布置了那么多 x86 汇编不考,非要考这个,就这样卷面一共 20 分,对应总评 8 分直接没了。无话可说,只能提前给老师拜个早年了。

 

 

老师带这门课已经很久了,还能搞成这样我是没想到的。

 

5 0
从点到点 2020秋

刚出分来评。 结论:强烈不推荐。 1、习题课几乎没有,整个一学期就两次,助教也超级不负责,期中成绩到期末还没出,群里提问大多数也就装死。看助教回复期末卷子还是老师改的?不知道是老师第一次授课还是什么,感叹助教的工资拿的真容易。 2、实验要求反复横跳。老师给了一个祖传的PL0文档,给了乱七八糟的一堆样例。样例和文档甚至还有冲突,最可笑的是都开始检查了居然还能临时追加样例的?这实验要求就不能一次性给完吗?离谱。 3、作业机械暴算。作业都是常规知识的运用,最大的特点是暴算,计算量爆炸。和考试特点一样) 4、考试题目离谱。非常喜欢考C语言知识,建议下学期老师带程设。期末两道大题考数组声明,就是那种可读性极差的数组声明。纯粹就是为考试而出题,如果你C学的好就全对,学不好就全错。而且非常喜欢连环题。 5、几乎不调分。期中95,期末估计75-80(错了两个pl0)最后总评90

实验毁人心态,作业全是暴算,考试极其刁钻,总评一点不调。您各位不左转lc班等什么呢:)

4 1
从点到点每个题10分感受一下,错一个降一档。

立即登录,说说你的看法

这篇点评给想要选(或不得不选)郑启龙老师课的同学看看好了,看了一圈下来我好像是给这门课评分最高的,虽然我自己的得分也有点低于预期。这门课不好的地方其他都说的挺清楚的,还是建议换李诚老师班。


我觉得郑启龙老师水平还是可以的,能把很多东西讲的清楚。但是在他的课上不能开小差,否则马上就不知道他在干什么了。。郑老师很多事情都是亲力亲为,PL/0实验的测试样例,检查什么的都是郑老师自己一个人做的,没检查完的好像还专门去了他东区的办公室检查,我觉得还是很负责的。

但是这门课的助教我真的一分都不想给,平时作业没有答案,直到要考试了才慢悠悠地把答案上传到群里,而且有错误(都是助教自己写的)。平时习题课也没有,快要期末考试了才赶忙安排一次习题课,并且准备的也不充分。平时分数、实验成绩统计那更是想都别想。很少随堂听课,甚至一个学期下来我连哪个助教叫什么名字都不知道(和顾乃杰老师算法班的助教形成鲜明对比)。在科大读了2年半,我还真没见过那么轻松的助教。

这门课有期中考试和期末考试,期中主要就考文法、语法和翻译,应该算是比较套路的东西,感觉自己考的还可以。期末难度比较高,考的很烂,只能说没好好复习。

4 0
纯菜鸡 2021秋

期中先占坑发个截图,坐等后续处理

3 0
AidenY 2020秋

快毕业了,统一评课。

这门课我是20年上的,总体推荐。

 

给十分绝不是因为这门课值得十分,只是把分拉高一点。转了一圈,基本上都是暴躁老哥一分走人。

 

这门课的格局是:

lc、zy、zql各带一个班。

zy班上,据说就是怎么难怎么来。

lc班上,据说就是怎么卷怎么来。

都是据说,我没上过。

 

zql班上,是怎么摸怎么来。

反正我选zql老师的课,就是为了摸。原因没必要在这里解释。

最后果然不出所料,上课也摸,作业也摸,实验也摸,考试也摸。

反正学生摸,助教摸,老师摸,大家都摸。

真想学东西的,有谁会来这个班呢?又或者是怕了卷的,才会来这个班吧。当然了,如果有其他情况,无意冒犯。

 

差评我转了一圈,大家似乎是想摸一学期然后满绩。这个就不评论了,因为我也想。但是我想的同时也知道,如果不是这样,那也理所当然。

 

话说回来,zql班上有多安详大家有目共睹。你想卷也卷不起来。反正我个人大三时在养老,没有比这个班更舒服的地方了。

 

至于缺点,暴躁老哥们说的已经很详尽了,没有必要赘述。打个八折就好。老师做人还是很好很负责的,不能全盘否认,否则就是犯了形而上的错误。

 

最后讲个笑话:

lc19年留校亲自改卷:认真负责,吾辈楷模。

zql20年因故亲自改卷:xx助教,教学事故。

 

 

 

3 1
Nullptr“ 真想学东西的,有谁会来这个班呢?又或者是怕了卷的,才会来这个班吧。” 被置课却因为时间冲突换不了班的我瑟瑟发抖

立即登录,说说你的看法

小鱼 2020秋

不推荐 作业、实验、考试、给分体验感都极差

3 0
jzpa 2020秋

郑老师的课,从授课质量上可以看出是花了不少心思的,但是在实验、作业、考试等方面有些个人感觉很坑的点。选课还请慎重考虑。大多坑点其他人已经说得很明白了,这里补一些我觉得不太合适的地方吧。

  1. 郑老师讲课可谓负责,基本不念PPT,但也许是因为和我的电波对不上,全程听下来体验一直很差,自己看龙书反而效果更好。老师似乎格外纠结于一些莫名其妙的语言的细节(比如++++i啥的),我个人认为,编译这门课最出彩的地方还是在于形式化的思想和整个编译架构的搭建思路,而这些在郑老师的课堂上基本没有。譬如讲到文法和属性的时候,龙书的风格是先告诉你实现编译还缺什么,再去联系实际的语言,最后给出文法的概念和严格定义,而郑老师的风格就是唐突地把定义抛出来再反复灌输抠细节,我个人并不是很能接受这种授课方式。
  2. 敬业的郑老师很喜欢两节连上再拖个几分钟,有些同学可能会觉得全程听下来很爽,不过就咱的体验而言倒是宁可不贪那五分钟,用一点点时间换来第二节课全程打疲劳战,简直就是捡了芝麻丢了西瓜,毫无效率可言。哪怕改成第二节课拖堂我觉得都会好很多。
  3. 由于郑老师不喜欢念PPT,所以他的PPT不管是对于预习还是复习都写得不太友好。实在想拿他的PPT复习需要上课全程用笔记补全PPT,但其实看补全后的PPT还不如啃龙书。
  4. 郑老师讲课喜欢提一些边角旮旯的骚操作,这都是在龙书或PPT上看不到的,而即便如此,龙书+PPT+听课对于写郑老师充满骚操作的作业而言依然是不完备的。这是个很严重的问题
  5. 实验是补全pl0代码,坦诚讲这个实验设计得没啥意义。首先PL0的源码本身就写得没什么参考的价值(反观体系结构、操作系统,同样是代码补全类的实验,学生能在阅读源码的过程中学到不少成熟的设计思想和规范的代码写法),你甚至需要主动去适应那些可读性极差的命名方式和代码文件组织。退一万步讲,写个miniPython解释器要有意义得多。

当然,说白了,与这些相比,实验要求朝令夕改、考试偏题怪题频发才是最大的坑点。我的确认可郑老师在某些方面所体现出的责任心(比如考完试亲自改卷),但这门课也确实极大地消磨了我对编译的热情。也请各位不要抱有任何的侥幸心理,本学期的期末考试出了一个莫名其妙的C数组写法,而这道连环题一旦没猜对就是整道大题直接降一个总评级别的失分。而这个莫名其妙的写法,在此前任何郑老师的讲课、PPT、作业、教材里都没有任何提及。

 

 

3 0
silence 2018秋

更新于2021.3

评课社区已出现循环。建议大家自行判断。当然我是推荐李诚班的,老师人很好,助教人也好,就是可能会比较费肝(毕竟利益相关:我是adsl的

如果你觉得诚哥班卷,不想去,那完全可以换到zql班上。但是期末别后悔。我同意隔壁班的同学说的这句话:

合着是愿意花时间在实验上是错误的?你愿意花2个小时背书我愿意花2个小时写代码我就不配高分?

啥?你想要事少给分高的六边形战士?还有人嫌张信明上课水哩。坤哥os实验也要慢慢变难。今年已经有个文档36页的实验了。


个人觉得,今年zql老师的这门课略微有点水。

首先,我觉得讲课挺无聊的,每次课的前20分钟还勉强能够保持专注,然而过了这段时间就会因为跟不上/讲的太慢等各种原因完全失去了听课的动力,于是只能课后啃PPT。但是啃PPT效果似乎也挺好(

其次就是实验安排比往年水。第一个实验是让你在PL/0编译器中增加while, break, continue, else和连续赋值语句。第二个实验是进行C语言声明语句分析。但是,这种实验布置也拯救了这个爆炸的学期(笑)。实验检查方式:第一次是抽取几组做报告,第二次是每组做报告。

最后,作业的安排也有点问题。自底向上分析、数据流分析竟没留过作业;期中考试之后只留了一次作业,使靠作业预习课程变得困难。

其实老师人挺好的,很欢迎我们向他问问题,我和几位同学考试前一天也去了一趟他的办公室提问。但是,由于前三点原因,这门课总是让我有一种怪怪的感觉。

课程安排:

  • 有一次期中考试,开卷,好像只占总评10分,而且考的太差会有补考。会考一些C语言的内容。
  • 期末考试中期中考试之前的内容占一小半,还会考一些PL/0的内容,以检查实验完成情况。综合大家考后反应来看,本次期末试题稍微有点难。

综合大家的反映来看,给分超好。

3 0
halcyon1308 2020秋

建议能跑的尽量都跑。

这个老师问题很多,包括喜欢讲他的一堆偏僻的C语言冷门操作,课间不休息、下课拖堂,助教与老师、助教与学生沟通困难,PPT做的没有条理而且烂等等,但对于大部分这样的老师来说只要考试没啥问题且给分好,问题不大。

今天是期中测试,直接拿隔壁李诚班2018年的卷子考,且该卷子及正确答案都已泄漏在网上。你考也就算了,卷子中有一道题意不明需要自己揣测的题,没想明白连着后一道大题都没分。还有一道错题,隔壁班考的时候改了题目,然而本班考试没有改,考完有学生去问老师,老师说他知道但是没有说,蚌埠住了。

另外关于实验,这学期实验刚刚开始,但H班和隔壁班已经早早开始了实验,包括搭环境,提供Git以及循序渐进的各种实验等等,但我们班就随便分了个组,学期过了一半了才给一点参考就叫开始做一个大实验,连个实验文档都没有。别的班确实作业多实验多,但别人老师助教认真负责,有问题交流也及时,引导很细致,但我们班做个作业问助教都是“可能”“应该”,考试前两天才突然通知开卷,还只让带书、PPT和作业(对,笔记不让带),就离谱。

选课?你有的选吗?

退课?你有的退吗?

孩子们,快逃!!!

2 0
自学人 2021秋

占坑 先放个截图

2 0
手嶌耶 2020秋

首先,老师本人是没什么太大问题的,讲课也还行,甚至还自己一个人卖力地检查实验、改试卷。也很愿意和同学们交流。出的题目有一点点奇奇怪怪的。

第二,助教实在是有很大的问题,发个作业答案也不及时,据说也不为同学们答疑,或者就是回答不会。实验和试卷都是老师负责,也没什么习题课答疑课,工作量完全就是改改作业吧,工资到底发在哪啊???但是这学期经历了xk的课之后,我深刻地认识到,有一个什么都不管的助教是多么快乐qaq(不然我期中之后全抄别人的作业平时分能给我扣没 赞美!感恩!

第三,本人对这种半放羊式教学还蛮喜欢的,实验也不难,当初就是看中这一点才退了英才班而且也没去lc班。感觉还是调了分的,期末卷面估计不超过70,总评90。

2 0
二木啦啦 2020秋

只能给到四分。。。

完全放养状态。。。这么重要的一门课一学期只有一次习题课,群里问问题助教不知道是没流量还是咋,永远不回答,课程体验真的不好。

2 0
zeddthegoat 2020秋

讲的莫名感觉不错?大作业也就是一个mini-Python。

但是小测和考试真不是人写的,梗倒是产生了不少,冲冲冲常见梗:人(上人)*

0 0
yqy 2019秋

墙裂推荐!

课讲的很好很生动,期末大作业是mini python,理解原理之后并不难。老师精通c语言各种奇怪的语法,受益匪浅

考试题题量我觉得不算小,难度也不简单,期中小测经常有连环题,但是给分很好。

墙裂推荐!

0 0
putatio 2019秋

实验写了个mini python解释器,完成基本元素类型及基本函数操作等,其实理解原理了就不难

老师自己也提前花一个晚上写了一份用来展示效果,说大概四五百行吧

然后小组就一共写了一千五百行完成了要求的功能

然而总有大佬几乎独立完成了py全部功能(安详

 

上课基本没听过,自己在下面看ppt,偶尔来兴趣听一会儿就睡着了

两次期中闭卷,范围从开学到考试的全部内容

都是大题,而且后面的题会和前面的相关,就很慌

助教只说都很好,平均分及格了

期末统考删减了一些,会提前划范围,甚至根据群众意见删掉了一块考试范围

感觉自己都没及格,总评3.0已经满足了(

 

ps,老师特别喜欢++和指针的各种骚操作,只有QLcompiler能编译那种谨慎选课

0 0
长者 2017秋

这门课难度的确很大,期末考试居然三道题考了一堆稀奇古怪的C++表达式,类似int *(p[])[] 这种,感觉考炸了,差不多0分那种。不过期中考试还好。 实验是根据PL0继续完善一个编译器(生成一个简单的栈机器的机器码,栈机器就在c文件里实现),暴力写了大量递归函数,导致一个c文件长达3000+行,当时老师还和我讨论了好几次 最后给了4.0,跪谢

0 0
cmer 2017秋

这门课感觉还是蛮难的,不过有调分(应该吧

0 0
lwayjy 2017秋

考完编译原理来答一发,郑老师人很和蔼,给人很亲切的感觉,有时候也蛮幽默。课讲的也挺好的,给分目前还没出分。具体比例是实验35,作业15,期中10(因为本来没有期中,临时加的所以占比比较低),期末40。

实验是老师给一个很雏形的PL0语言,让你添加各种功能和语句。因为是分小组,而且最后检查个人感觉比较水,所以要想划水还是蛮容易的。但是老师期中期末会有较大比例(约40%)的试题是涉及这个PL0的,所以好好做还是没错的。试题的话比较爱出的题大约就是DFA,LL(1),LR(1)文法,语法制导翻译这种。如果单纯应付考试的话,其实还蛮容易的。

0 1
夏树请问老师有课程主页啥的吗

立即登录,说说你的看法

我特地来看鸽王的2333

教的还好,但是我没太听懂。。。

我就记住了他是雷军的校友。。。

踩踩

0 0
runday 2015秋

这门课的实验比例给你说是这么多,实际上基本为0,好好考好期中期末最重要,最后成绩82

0 5
我就明确告诉你考试难不难呀
runday文法题出得难,其他偏门部分不难
runday回复 @我就明确告诉你: 双学位的编译应该是张昱教的,水平高,挂人无情,大四挂让你白读双学位
我就明确告诉你回复 @runday: 然而我是辅修,哈哈
我就明确告诉你回复 @runday: 不选这个张昱的课就是了。我课内也有编译原理,在想要不要选计院的这门课呢

立即登录,说说你的看法

Fallenwood 2015秋

我也再不随便选课了T_T

0 0

郑启龙

教师主页: 暂无

其他老师的「编译原理和技术」课

李诚 8.6 (27) 2021秋 2020秋...
李卫海 7.0 (2) 2019春 2018春...
张昱 1.0 (1) 2021秋 2012春
未知 2016秋
陈意云 2011春 2007春...
陈意云, 张昱 2010春 2009春...
李诚, 吴思 2021秋

郑启龙老师的其他课

并行程序设计 8.3 (3) 2021秋 2020秋...
编译原理 2012春 2011秋...