Compiler construction 编译器设计与构造类

Compiler construction 编译器设计与构造类,compiler-construction,Compiler Construction,今年秋天我要为我的硕士课程上几门课,其中一门是编译器设计和构造。我对大多数与计算机技术相关的东西都很精通,但我对编译器如何处理这些问题没有太多经验,我只是在需要的时候使用它们。我通常不会对上课感到紧张,但我有点觉得我是赤裸裸地走进这间教室。如果有人能推荐一些好的读物,或者提供一个简短的基本原则清单,让我能够研究这些基本原则,让我快速掌握,,我将不胜感激 更新: 我在班上表现很好,实际上也很好。还帮助我可视化和测试我的正则表达式(我现在认为这是学习编译器时最好掌握的东西)。我很快就学会了LEX的基

今年秋天我要为我的硕士课程上几门课,其中一门是编译器设计和构造。我对大多数与计算机技术相关的东西都很精通,但我对编译器如何处理这些问题没有太多经验,我只是在需要的时候使用它们。我通常不会对上课感到紧张,但我有点觉得我是赤裸裸地走进这间教室。如果有人能推荐一些好的读物,或者提供一个简短的基本原则清单,让我能够研究这些基本原则,让我快速掌握,我将不胜感激

更新:


我在班上表现很好,实际上也很好。还帮助我可视化和测试我的正则表达式(我现在认为这是学习编译器时最好掌握的东西)。我很快就学会了LEX的基本知识,但是YACC(出于某种原因)对我来说有点难。只需在线查找示例,这两种方法都有帮助。

通常强烈建议使用编译器。

编译器有点令人头晕目眩。但是,如果您对数据结构、算法和汇编代码有扎实的掌握,并且喜欢仔细思考细节,您可能会发现 这个类很吸引人,因为它与大多数传统的业务数据处理和/或嵌入式计算非常不同

我会确保你的汇编代码背景写得很好。大多数程序编码器不用于加工指令、寄存器、地址模式和指针。如果你得到了这些,讲师可能会很好地解释其余的内容

如果您不习惯使用指针,那么运行don't walk,到最近的C编译器,编写一组使用它们的程序

有关编译器不是什么的一些背景信息,请参阅

如果你想要一个真正有趣的练习,你可以学习MetaII,这是如何 要构建一个编译器,只需极其少量的工作就可以构建一个编译器。有一篇10页的论文是关于如何做的 这有一个鼓吹的时刻在你突然看到的中间 编译器可以自己编译。有一个MetaII教程(附论文)在:


检查一下

第一次有人向我解释编译时,我惊讶地发现它是多么根深蒂固。在编译中总是有相同的高级阶段,在子任务中有相同的划分


回首往事,其中一些有点武断。编写一个编译器是很困难的,重新应用在过去为无数其他人工作过的技术确实是一个好主意。但是,根据您的背景,您可能首先会惊讶地发现,并非所有内容都像计算机科学的其他领域那样自然地来自基本原理。

中列出的任何资源都可能有用。由于您没有说明编写编译器的哪一部分与您有关,因此很难推荐特定的资源。感谢链接。我希望我能说得更具体些,但这说明我对编译器知之甚少,课程大纲也相当模糊:)我认为这不是他需要的基本背景。如果他能理解龙之书,他不需要上课:-}现在下载它。我学得很快,所以无论如何我都要看一看。@Ira,学习的方法很多。那些真正对学科感兴趣的人可以从中间材料中学习。对某事感到兴奋或感兴趣通常意味着你想了解那件事。如果你遇到了你不知道的事情,并且在你的文档中没有很好的解释,你通常会寻找答案。也就是说,如果这意味着对计算机科学的知识和理解,那么对于“精通大多数与计算机技术相关的知识”的人来说,这本书中没有什么是不熟悉的。这是一本好书,我从第一版起就把它放在书架上。是的,你可以看穿它,严肃的人可以研究它。但得到一些基本的想法和一些经验,使这本书远更有趣和平易近人。这本书的序言表明,书的前半部分应该涵盖在一个本科课程,而下半年应该涵盖在一个研究生课程。10天后开始上课,所以我应该开始阅读:)虽然你说的每一句话都有价值,但其中一些内容严重局限于考虑某一类语言。编译器适用于许多不同类型的语言,包括涉及汇编知识的语言,以及更多不涉及汇编知识的语言。我相信你想说的是,你应该知道你想做什么,你想得到什么。@Jer:是的,是的,但我怀疑他是否会编译成一个Prolog目标作为起点。大多数传统的编译器类都是以某种简化的汇编程序为目标的,所以很有可能知道这一点会有所帮助。看看今天存在的所有系统,即使只是在编程语言中,也有更多的解释器,它们本身包含一个编译器和read-eval循环。另外还有其他系统,比如语法突出显示引擎,一直到配置文件。@Jer,同意,你可以使用“编译器技术”完成各种各样的任务。(见我的简历…)。他仍然在学习编译器的入门课程:-}(+1)“对数据结构的扎实掌握”,我遇到的许多学生/开发人员在构建编译器时遇到了问题,因为他们还没有完全理解所需工具的概念或用法……我在第一章已经深入了解了很多,我想这正是我想要的。从我的阅读中,我已经看到我也需要提高我的组装技能,但我已经对这门课感觉好多了。谢谢