编译的过程就像处理一个英语句子,从单词到词组再到整个句子、然后翻译,所以编译也有固定的五个过程。
鉴于前几章内容已经在之前详细总结过了,所以这里只介绍主要内容:
基于编译过程的五个基本阶段:词法分析、语法分析、语义分析与中间代码、代码优化、目标代码产生,我们主要学习了文法的相关内容、有限自动机的构造、LL(1)文法的分析过程,自下而上和自上而下的语法分析,其中包括规范归约和LR分析、SLR分析,还学了属性文法及其制导翻译、语义分析,其中包括逆波兰式、布尔表达式的翻译。
说真的,这里面我觉得最难的不是什么LL文法或者LR分析或者文法翻译等等,而是一开始的语言到文法的转换,真的是get不到那个点。
编译原理的内容很抽象,一开始学基本不懂,后来系统的复习将前后知识串接起来,觉得也并没有那么难理解,我们平时和学的是高级语言程序,而编译原理讲的就是基于程序设计的最初的原理。虽说对于课本知识理解容易,但是没有实践经验,对于其实际作用还是基本不了解,就像老师说的,真的动手做一下才能真的明白。
以下是复习期间总结的比较基础又容易混淆的一些概念: