编译原理是计算机专业一门非常重要的课程,介绍高级语言编译程序的一般原理、基本设计方法、主要实现技术和一些自动构造工具。通过该课程的学习,我认识到计算机信息处理的实质并将综合运用所学的知识分析解决实际问题。本门课程的理论性与实践性都很强,我在学习时感到内容非常抽象,不易理解,难以完整、全面地掌握编译原理的有关知识。在学习编译原理之前,我认为编译原理只能运用在写程序语言的编译器上,感觉用处不大,学习兴趣不高。而在后来的学习中,我逐渐认识到计算机专业的学生,除了要会编写程序语言之外,还应该了解它是如何被计算机所识别,才能真正的学会编程。
我们主要学习了七章的内容:
第一章引论主要学习了编译程序的定义、过程和结构。编译程序由词法分析器、语法分析器、语义分析与中间代码产生器、优化器、目标代码生成器组成。
第二章高级语言及其语法描述主要学习了程序语言的定义、一般特性和语法描述,重点强调上下文无关文法、语法分析树与二义性。
第三章词法分析主要学习词法分析器的设计、正规表达式与有限自动机。在正规集、DFA的化简、NFA到DFA的转换等方面进行了大量练习。
第四章自上而下分析主要学习语法分析器的功能,由自上而下分析产生的问题引出LL(1)分析法来消除左递归和回溯,最后完成预测表的构造和工作过程。
第五章自下而上分析主要学习算符优先分析中文法及优先表构造、算法和优先函数等,LR分析法具体分析了LR(0)项目集族和分析表的构造、SLR分析表的构造、LR(1)分析表的构造等。
第六章属性文法和语法制导翻译主要学习了属性文法的定义,基于属性文法的处理方法,依赖图、树遍历、一遍扫描等,S-属性文法的自下而上计算,L-文法和自顶向下翻译。
第七章语义分析和中间代码产生主要学习了中间语言,有后缀式、图表示法、三地址代码,