这一学期在老师的指导下,我们学习了编译原理这一门学科。编译原理是介绍的是对一个程序进行编译的过程,之前的时候我们只是学习了高级语言会用高级语言写相应的程序,并不知道程序是如何编译运行的,编译原理这门课就是解决这个问题的,,编译程序的工作,从输入源程序开始到输出目标程序为止的整个过程,是非常复杂的,虽然他和人们进行自然语言之间的翻译有很多的相似之处。编译原理这门课程的学习对于我来说还是有一定难度的,有很多地方理解的并不是很透彻,下面是我这学期学到的主要内容的总结,在学习过程中遇到的问题,和自己的一点感悟。
学习总结:
首先,从总体上来看,一个编译程序主要分为五个部分:词法分析器,语法分析器,语义分析和中间代码的生成器,优化器,目标代码生成器。以上编译过程的五个阶段是编译程序工作时的动态特征。五个模块之间是紧密联系的,他与我们之前学习高级语言有所不同,是一个完整的过程。
词法分析中的重点是有穷自动机DFA的生成以及DFA和正规式与正规文法的关系,以及NFA装还成DFA的方法和DFA的化简。词法分析的核心是构建DFA,最后建立一个状态转移表,通过转移的结构来识别词性。
编译原理这门课主要讲述了两种分析方法,自上而下的分析和自下而上的分析方法。自上而下的分析是从文法符号开始,反复使用各种产生式,寻找匹配于输入符号串的推导。自下而上的分析方法是从输入符号串开始,逐步进行规约到文法符号。自上而下的分析主要就是ll(1)文法,首先要判断某个文法是否是ll(1)文法,如果是ll(1)文法就用其方法进行分析。自下而上的分析主要是算符优先分析和lr分析&#