gitbook/编译原理之美/docs/143135.md
2022-09-03 22:05:03 +08:00

33 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 期中考试 | 来赴一场100分的约定吧
你好,我是宫文学。
时间过得真快从8月14日课程上线到现在已经有一个半月的时间了。这一个半月里有很多同学反馈说自己学了这个课程特别有收获而运行同学们写的编译器我也觉得很有成就感当然了有的时候我也会比较焦虑因为一遍遍改文稿和写示例程序都需要投入大量的精力不夸张地说有几次晚上做梦的内容都与咱们的课程有关……
但是,我觉得把编译原理中,看似高不可攀的一个个知识点,变成一篇篇得到你们肯定的文章是一件十分有趣的事情。动手写示例程序时,也往往让我废寝忘食,比如,报表系统的示例程序就是在飞机和火车上写出来的,一边写,一边灵感不断涌现,那时,我先写了一个版本,后来又改成了基于向量计算的版本,因为总是想给你们呈现最优质的内容,所以一直在不断地思考,优化。
在准备算法篇的示例程序时,我也有了很多新的灵感,比如对于元编程的理念,我又有了一些创新的想法。这些内容,我会在课程的第三部分与你分享。
**在互联网时代,廉价的快乐随处可得,而努力拼搏才能获得的乐趣,从来都只属于少数人。**这门课的目标是让尽可能多的人,有机会享受这种乐趣,当我看到你们进入编译技术的美丽花园中徜徉流连,我的内心是十分欣慰的。
我相信你们是真心喜欢计算机技术,所以想要努力搞懂这个学科的基础原理。而且,你们还能够静下心来,真正坐下来动手尝试。
有的同学会跟“这个推导过程我看过去怎么不会无限递归啊?”这样的问题较劲,而我是很感动的,因为他知道**不把手弄脏get hands dirty是学不会手艺的。**
在别人觉得没有问题的地方提问,本身就需要一定的勇气。其实,那个问题不像表面上那么简单。我在[19讲](https://time.geekbang.org/column/article/140740)里花了很大的篇幅解答了这个问题。而从这个问题,可以引出很多问题,比如,有多个产生式的时候,到底该如何选择?深度优先和广度优先有什么区别?等等。
你可以把在学习过程中发现的这些问题看做是花园的入口,而不是障碍。对于在学习编译原理时遇到了困难的同学,我要说,你至少找到了一个入口。
从这个角度来说通过这次期中考试的20道题目你又获得了20个新的入口。我亲自出的这20道题目可以让你对之前学过的内容查漏补缺。你有一周的时间去回顾内容弥补不足。在你答题的过程中分值其实是不重要的能引起你的思考最为重要**这可能是你又一轮的认知迭代!**
接下来,我们聊一个轻松的话题,国庆将至,如果你想趁机好好休息一下,不妨找一个小众的城市,远离人群。而且还可以尝试带着电脑,在古镇上,在流水边,在星空下,在一切美景的围绕下,安安静静地写个编译器。这种尝试,难道不是一件美事吗?
当然了,也欢迎你在留言区,将你去过的城市美景分享给大家,给我们的课程增添不一样的色彩。
**最后,来挑战一下,开启你的期中考试之旅吧!**
[![](https://static001.geekbang.org/resource/image/28/a4/28d1be62669b4f3cc01c36466bf811a4.png?wh=1142*201)](http://time.geekbang.org/quiz/intro?act_id=52&exam_id=57)
* * *
编辑角:答题不限次数,但分值以第一次为准,答题前三名,有惊喜哦。