资源描述:
《《编译原理实践及应用》第1章编译原理概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编译原理实践及应用----清华大学出版社教材及主要参考资料教材:编译原理实践及应用,黄贤英,清华大学出版社主要参考资料:(1)编译原理,陈火旺,国防工业出版社程序设计语言编译方法,肖军模,大连理工大学出版社编译原理,张素琴,吕映芝,清华大学出版社编译原理,alfredV.Aho等著,李建中等译,人民邮电出版社2考核方法平时成绩、作业完成:10%要求上课不迟到早退,不旷课,有事请假,记好笔记要求用大作业本,不能交单张纸,独立完成实验:30%要求程序可运行,并有相关设计和使用说明期末考试:60%闭卷形式3C语言程序voidmai
2、n(){intx,y,z;x=3;y=2;z=x+y;}内存地址内存内容单元名字………………200H3x:局部变量201H2y:局部变量202H5z:局部变量…………汇编语言程序……movax,3movx,axmovax,2movy,axmovax,xmovbx,yaddax,bxmovz,ax......300302304306308……序言4为什么要学习编译原理?1、有助于深刻理解和正确使用程序设计语言,加深对高级语言程序执行过程的理解2、有助于加深对整个计算机系统的理解。3、设计开发编译程序的软件技术同样可以用于其他软
3、件的设计开发。4、随着微处理器技术的飞速发展,处理器性能在很大程度上取决于编译器的质量、编译技术成为计算机的核心技术,地位变得越来越重要。5《编译原理》课程在计算机科学中的重要地位(1)学习编程最初是学习一门高级语言,C或Pascal,掌握编写一些简单程序的方法;(2)学习数据结构,建立“算法”的概念,对编程有更深入的理解。遇到问题的时候,能够寻找相应的数据结构模型,设计适当的算法来解决问题;(3)学习汇编语言,这门课程是我们真正深入了解计算机内部工作的第一门课程。通过学习了解汇编语言如何变为机器语言,如何对应于一条指令;(
4、4)计算机组成原理课程的学习使我们了解到计算机的硬件组成,以及机器指令程序如何在计算机中运行的过程。(5)编译原理课程帮助我们了解高级语言程序转换成机器指令程序的过程。可以帮助我们更深刻地理解高级语言程序运行的内部机制。6《编译原理》课程在计算机科学中的地位高级语言程序设计离散数学数据结构编译原理操作系统系统软件应用软件软件工程信息系统电子商务汇编语言计算机组成原理7学习本课程的目的和任务加深对编程语言设计和实现的理解,对和编程语言有关的理论有所了解,对宏观上把握编程语言来说,起一个奠基的作用,提升自身的编程能力掌握编译程序
5、的基本结构,掌握常用的编译技术和方法,将编译原理的理论和方法应用于一般的软件设计中培养团队协作能力8本课程的特点(1)本课程理论性很强,学习时需要很强的逻辑思维能力(2)涉及的算法复杂,要深入地理解这些算法很困难(3)整个编译程序的构造方法非常精妙,就像一部走时精确的时钟,很多齿轮、部件协调地运转,以驱动指针准确地旋转;编译程序也是如此,一边扫描源程序,一边经过各个部件的运算,准确地输出为目标语言。(4)编译原理课程各个部分之间的独立性很强,包括词法分析、语法分析、存储的组织与分配、中间语言、语法制导翻译、代码生成与优化这几
6、大部分。词法分析和语法分析是其中的重点,语法分析也是难点,需要掌握比较复杂的算法逻辑;其他部分相对来说知识性更强一些。各部分之间的方法也互相独立,在学习时,便于逐个击破。(5)考试考查的内容相对来说是很稳定的,绝大多数题目的解法都非常机械。9学习方法(1)尽可能地掌握编译原理的思想,要站得高一点,尽可能理解算法的思想,而不是背固定的算法。应该尽力理解为什么要这样做,逐渐在头脑中建立起编译器的整体概念,而不是零零散散的一些算法。(2)很多题目的解法比较固定,要熟练掌握相应的具体方法。(3)多做习题,对于编译这样的学科,题目的规
7、模很大,步骤繁多,而且前面的步骤一旦出错,后面都错。(4)要扎扎实实地牢记重要算法,配合大量的习题进行练习,达到拿到题目就可以动手做的地步。(5)一边学习,一边总结,关键是找差异:同一问题可以用多种方法来求解,不同方法适用于不同的文法,对文法的限制和要求,相应的表格的构造、使用等,各个方面的差异都要关注。(6)亲自动手实现书上的一些算法,完成实验指导书上给出的一个简单的编译程序,或者编译程序的一部分,这样能更灵活地掌握编译程序构造的精髓。10引论第一章本章要求主要内容:各种翻译程序的概念,编译过程和阶段划分,编译程序的组成和
8、结构,编译程序的构造方法重点掌握:编译程序工作的基本过程及其各阶段的基本任务,编译程序总框。121.1程序设计语言与翻译程序机器语言(machinelanguage)C70600000002汇编语言(assemblerlanguage)MOVX,2高级语言(high-levellangua