如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
编译原理周开来zkl2@163.com西南林业大学计算机与信息科学系教材和参考书教材和参考书
陈火旺,刘春林,谭庆平等编著,《程序设计语言编译原理》,国防工业出版社出版,2001.1
高仲仪、金茂忠,《编译原理及编译程序构造》,北航出版社。
AlfredV.Aho,RaviSethi,JeffreyD.Ullman,Compilers—Principles,Techniques,andTools.机械出版社(翻译版),2003
吕映芝,张素琴等,《编译原理》,清华大学出版社,1998,1。版权所有
KennethC.Louden著,《编译原理及实践》,机械工业出版社,2000,3。
李赣生,王华民,《编译程序原理与技术》,清华大学出版社,1997,10。关于学习编译原理先导课程
计算机组成原理
数据结构
离散数学
高级程序设计语言
汇编程序语言构造编译程序的前提:
掌握源语言
掌握目标语言
掌握编译方法关于学习编译原理现实意义:
计算机专业核心课程
考研必考科目
考资格认证必考知识点(软件工程师)理论意义:
学习编译程序构造原理,技术
更好地理解高级语言
编译的原理和方法有助于构造一些实用的工具关于学习编译原理课程特点:
综合性比较大
难度比较大要求:
理解性
技术性关于纪律不要作为选修课看待
为什么???????既来之,则听之
不许捣乱不要随便缺席
缺席三次以上,肯定会坐飞机,不知所云第一章编译原理概述本课程介绍程序设计语言编译程序构造的基本原理和基本实现技术.第一章编译原理概述编译理论与方法
计算机科学与技术中理论和实践相结合的最好典范
ACM图灵奖,授予在计算机技术领域作出突出贡献的科学家程序设计语言、编译理论与方法约占1/3程序设计语言的发展机器语言汇编语言面向用户面向问题(机器指令)的语言的语言C70600000002MOVx,2x=2低级语言高级语言低级语言(LowlevelLanguage)
字位码、机器语言、汇编语言
特点:与特定的机器有关,功效高,但使用复杂、繁琐、费时、易出错高级语言--Fortran、Pascal、C语言等
特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。用高级语言编制的程序,计算机不能立即执行,必须通过一个“翻译程序”加工,转化为与其等价的机器语言程序,机器才能执行。这种翻译程序,称之为“编译程序”。一.什么是编译程序翻译程序把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序源语言翻译目标语程序言程序翻译程序一.什么是编译程序编译程序(compiler)把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序诊断编译程序优化编译程序交叉编译程序可变目标编译程序高级语翻译机器语运行结果言程序言程序编译程序一.什么是编译程序解释程序把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身解释执行源程序结果解释程序编译程序vs.解释程序编译解释二.编译过程把英文翻译为中文词法分析
识别出句子中的一个个单词;语法分析
分析句子的语法结构;
根据句子的含义进行初步翻译;中间代码产生
对译文进行修饰;
写出最后的译文。优化目标代码产生编译过程概述编译程序的工作,从输入源程序开始,到输出目标程序结束,与自然语言之间的翻译有很多相似之处。构成编译程序各个一段英文翻译成中文,编译程序阶段需经下列步骤:Iamaexperiencedteacher.识别出句子中的单词词法分析分析句子的语法结构语法分析根据句子的含义进行初步分析语义分析及中间代码生成对译文进行修饰代码优化写出最后的译文目标代码生成二.编译过程编译程序的工作一般分为五个阶段:
词法分析
语法分析
语义气分析及中间代码产生
优化
目标代码产生1.词法分析任务:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。依循的原则:构词规则描述工具:有限自动机,正规式FORI:=1TO100DO保留字标识符等符整常数保留字整常数保留字1、词法分析任务:分析和识别单词。源程序是由字符序列构成的,词法分析扫描源程序(字符串),根据语言的词法规则分析并识别单词,并以某种编码形式输出。•单词:是语言的基本语法单位,一般语言有四大