编译原理课程总结

                         编译原理课程总结

  在步入大三下学期以来,编译原理是我们所面对的一门非常重要的专业课程。在这门课程中,我们都能够感受到它的主旨是想要通过对我们的介绍,从而让我们进行设计和构造编译程序基本原理和方法的学习。我们知道,在计算机上,我们如果想要执行一个高级语言程序,通常要分为两步:第一步是用一个编译程序把高级语言翻译成机器语言程序,第二步是运行所得的机器语言程序求得计算结果,编译原理这门课程,便是按照由浅入深的程度,帮助我们学习以上的相关内容。

  在第一章中,我们主要了解了什么叫做编译程序,同时编译过程以及编译程序的结构又是如何?在编译过程中,我们有五个阶段需要按顺序分模块进行设计。第一阶段是词法分析,它的任务是输入源程序,其次进入语法分析,以便在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位。下一阶段是语义分析与中间代码产生,在这一阶段中的主要任务是对语法分析所识别出的各类语法范畴进行分析含义并初步翻译(产生中间代码);第四阶段是优化,为对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效的目标代码;最后一阶段是目标代码生成,进行到这一阶段的任务是将中间代码(或经过优化处理后)变换成特定机器上的机器语言代码,实现了最后的翻译,其工作有赖于硬件系统结构和机器指令含义。

  当我们了解完编译程序的具体内容后,便要尝试接受第二章为我们带来的简单的高级语言的描述。第二章的重点内容我认为是上下文无关文法与文法的二义性。我们知道文法是描述语言的语法结构的形式规则,这些规则必须准确且易于理解。了解上下文无关文法G的构成部分,其次便是语法分析树以及文法的二义性。

  接下来所学习的是词法分析,在第一章节中我们已经明白词法分析器的主要功能是输入源程序,输出单词符号。第三章便向我们介绍用正规式描述单词符号结构、如何用有限自动机构造词法分析器等。在这一章节中的重点内容是状态转换图以及DFA与NFA的构造,对于后者,我掌握的不是很好,存在的问题偏大。

  结束了词法分析的学习后就进入了语法分析。在第四章中第一项我们所学习的是LL(1)文法的消除左递归,其次是FIRST集与FOLLOW集的求解。在开始面对题中的FIRST集时都能够顺利做对,但是再对于FOLLOW集而言,难度便不免有些增加,总是忘记#的填写,也会漏填其他元素,多加练习后改正了很多,LL(1)的分析表难度不大。第五章的内容也是语法分析的讲解,这一章我认为是存在问题最大的一章,算符优先分析法以及LR分析表的构造我一直都不会做,在对第五章进行复习时也是非常的迷茫,感觉特别难,做不出来,也很沮丧。

  第六章的内容首先介绍了属性文法的基本概念,其次介绍了基于属性文法的处理方法,依赖图、树的遍历等,感觉第六章的内容不是非常的重点,所以相对于其他章节花费的时间与精力也少很多。

  第七章中首先学习了逆波兰、也就是后缀式表示法、图表示法、三地址代码、三元式四元式语句等。三地址代码或者和程序相关的要求书写四元式的题目我做起来非常吃力,还是思维不够灵活,知识学习的过于死板,不能熟练掌握。

  通过老师为我们所做的对前七章的讲解,我首先感受到编译原理是一门相对于其他学科而言,理论与实际结合能力非常强的学科,需要对知识点拥有举一反三的掌握能力,而且面对于书中的很多概念性语言,若不加以反复阅读,很难参悟。编译原理是计算机专业非常重要的课程,对我们的思维锻炼以及未来的工作领域等都会起到一定的作用,因此我们必须扎实掌握。

编译原理课程总结_第1张图片

编译原理课程总结_第2张图片

编译原理课程总结_第3张图片

编译原理课程总结_第4张图片

你可能感兴趣的:(编译原理课程总结)