陈火旺编译原理复习重点及复习思路总结,不知道对大家有没有用?
sodme 2003-09-22 11:07:20 这是我在kaoyan.com发的一篇关于编译原理复习的系列文章,不知道对这里的计算机考研者有没有帮助,这篇系列文章会在kaoyan.com计算机版陆续更新,如果大家需要,我可以在本版同步更新。现转贴如下:
说明:本归纳参考的主要编译书籍是国防科大陈火旺院士的教材,同时兼具参考清华吕映芝及中科大陈意云的教材。
“发表,是最好的记忆” ――候捷 语。
前言:
作为考研课程中最难的科目,编译原理的复习一直以来困扰着无数的计算机考研者,特别是本科期间没有认真学习这门课程或者专业外的人士。由sodme写作的这一系列文章将主要以陈火旺院士的编译原理教材为主线,对编译原理的复习重点和复习思路进行归纳和总结,以帮助大多数朋友尽快入门。由于绝大多数的本科编译教材,都是在围绕着原理性方面的知识进行介绍和展开,所以,本总结也适合于使用其它教材的朋友。anyway,希望使用各种不同教材的朋友都能从中受益并有所感悟。
与数据结构的总结类似,对于编译的总结都是采用我自己认为比较容易理解的语言进行描述,绝不对书上的概念和算法进行原原本本的照搬,这里,在多数情况下讲的都是我自己的学习经验和学习心得。So,其行文写作的style可能有些朋友不太适应,but,I promise:这个总结绝不会平庸、泛泛无奇。
Ok,now,let’s go.
一、编译原理的章节结构及重点构成
第1章 引论:本章属非重点章节,简单介绍了编译的基本知识。出题分值不会太多,如果出题(很多情况是不出题,^_^),其分值比例一般情况下不会超过5%.
第2章 高级语言及其语法描述:本章属重要章节,在本章逐步引出了编译的若干基础概念和术语。如果出题,其分值比例一般在5%-20%.
第3章 词法分析:重难点章节。本章是难点章节之一,同时又是编译原理最重要的章节和多数学校的必考章节之一,通常作为大题中的先行题考查。分值比例各有侧重,一般在10%~20%不等。
第4章 语法分析-自上而下分析:重难点章节。本章的难度要高于词法分析一章,与词法分析一章一样,同属编译原理最重要的章节之一,是多校学校的必考章节之一,通常作为大题考查。如果出题,其分值在10%~20%不等(如果同一试卷中既出现词法分析又出现语法分析,语法分析题目的分值一般比词法分析的分值要大)。
第5章 语法分析-自下而上分析:重难点章节。属多数学校的必考章节之一,其重要性描述同上,通常作为大题考查。一般情况下,在同一学校的同一张编译试卷内,多数不会同时考自上而下分析和自下而上分析两种语法分析方法,各学校会根据自身题目的难度定位选择考查自上而下的还是自下而上的。自下而上的分析要难一点。如果本章出题,其分值比例约为:10%~20%.
第6章 属性文法和语法制导翻译:重难点章节。属多数学校的必考章节之一。多数与语义分析一章联合出题,通常作为大题考查。如果出题,本章的分值比例约为:10%~20%左右。
第7章 语义分析和中间代码生成:重难点章节,常考内容之一,报考名校的同学应该多留意本章节内容。如果出题,本章分值约为:10%左右。
第8章 符号表:非重点章节,本章介绍的是编译过程中的辅助内容,并未紧密联系编译的主体思想。多数学校在本章不出题,如果出题,其分值比例约为:5%左右。
第9章 运行时存储空间组织:常考内容之一。本章多数会联系实际语言进行考查,如果出题,其分值比例约为:10%左右。
第10章 优化:常考内容之一。分值比例约为:10%左右。
第11章 目标代码生成:较少考查,即使考查,分数比例一般在5%左右。
第12章 并行编译基础:很少考查,只作了解,了解其基本概念即可。
关于重要性标识的几点说明:
“必考内容”:是针对于多校学校一般的出题规律而言,本章极易被考到。或者说,作为一个完整的试卷,本章是应该被考查的,这是放在多个学校都比较适合的规律,也就是说本章是不同的学校共同关注的章节。
“常考内容”:虽然本章内容重要,但是,各校根据自己的考查方式,可能选择考,也可能不选择考查这一章,这样的章节常常作为对必考章节的配合和补充,以完善和形成一张完整的试卷。这些章节要求读者自己对所报院校的历年试题进行归纳和分析,从中找出哪些是是这一次比较容易考查到的。
注:关于分值比例的统计样本来自于国防科大,中科院,上海交大,哈工大,清华等多所学校的历年试题。
二、编译原理各章节重点难点归纳
第1章 引论:
本章作为编译原理的开启章节,其意义在于为原本对编译一无所知的朋友撩开一条细缝,让你从本章大致了解编译程序工作的原理。所以,本章的考点都是象征性的。需要读者掌握的是:清楚编译程序的总框架,了解编译程序工作的大致过程,能分辨清楚编译前端与后端的区别及其相互配合的方法,要清楚编译程序是如何生成的。请大家记忆并理解以下概念:
编译程序,解释程序,翻译程序,扫描器,分析器,编译前端与后端,符号表,“遍”的概念等。说让大家记忆并理解以上概念,并不是要大家原原本本地记住书上的解释,而是让大家达到这样的一种程度:知道这些概念的含义,并且能够按照自己的语言对其进行准确描述。一般而言,当你真正理解了一个概念之后,你是有能力对其进行精辟描述的。针对于本章的考点,多数是考查这些小概念,比如国防科大就曾经考过“扫描器”等概念。In a word,理解第一。