欢迎来到天天文库
浏览记录
ID:42033129
大小:2.59 MB
页数:56页
时间:2019-09-06
《张幸儿编译原理ch》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编译原理主讲:马慧芳2013.9-2014.1编译原理吕映芝清华大学出版社编译程序设计原理杜淑敏等北京大学出版社使用教材计算机编译原理张幸儿编著科学出版社编译方法马良行、曹启君机械工业出版社程序设计语言编译程序陈火旺等国防工业出版社CompilerConstructionPrincipleandPratice编译原理及实践KennethC.Louden机械工业出版社参考书籍参考书籍http://ultra1.wuhee.edu.cn/compiler/compiler.htmlhttp://edu.netbig.com/kaoyan/e4/245/20000524/gong.htm参考网站
2、为什么学习编译(1)编译程序构造的原理和技术一直属于计算机科学必备的专业基础知识。是计算机科学中一个非常成功的分支,也是最早获得成功的分支之一。它所建立的理论、技术和方法值得深入研究和学习。编译构造正确地建立了研究的问题领域和研究方式。为什么学习编译(2)针对编译程序构造的某些部分已经开发了标准的形式化技术,包括有限自动机理论、上下文无关文法、正规表达式、属性文法、机器代码描述、数据流分析方程式等。编译程序包含许多普遍使用的数据结构和算法,例如散列法(哈希算法)、栈机制、堆机制、垃圾收集、集合算法、表驱动算法。编译程序的许多构造技术已经得到了广泛的应用。学习编译原理和技术还有助于我们理解程
3、序设计语言,编写优秀的软件。本课程的目的构造编译器基本知识编译的阶段和相关的活动相关数据结构和算法计算机科学中相关的基础理论形式语言与自动机进一步加深对软件开发的认识说明基于形式语言理论中的有关概念来讨论编译实现问题。即编译原理=形式语言理论+编译技术本书主要内容涉及:高级程序设计语言形式语言理论的基本概念构造编译程序的基本概念、原理和技术主要内容总论(4h)文法与语言(6h)词法分析(12h)语法分析(18h)语义分析、中间代码生成与运行时存储分配(4h)优化和目标代码生成(2h)总结复习(2h)第1章总论主要内容:基本概念介绍高级语言的翻译编译程序的结构编译程序的相关软件和开发工具编译
4、程序在计算机系统中的作用编译系统是一种软件,一种系统软件。软件:计算机系统中的程序及其文档。系统软件:居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。和具体的应用领域无关,如编译系统和操作系统等。语言处理系统:把软件语言书写的各种程序处理成可在计算机上执行的程序,如编译系统。裸机操作系统语言处理系统应用软件层解释程序:接受所输入的用程序语言(源语言)编写的程序(源程序),然后直接解释执行源程序。相当于源程序的抽象执行机,是语言的实现系统。高级语言源程序计算结果数据解释程序(器)编译程序:源语言为高级语言,目标语言是低级语言(汇编或机器语言)的翻译程序。高级语言程
5、序(源程序)低级语言程序(目标程序)编译程序(器)目标程序源程序编译程序初始数据计算结果源程序解释程序初始数据计算结果解释程序与编译程序的特点概念上的不同基于解释执行的程序可以动态修改自身,而基于编译执行的程序则需要动态编译技术,难度较大。基于解释方式有利于人机交互。解释执行速度要慢。编译产生的目标代码所占用的空间通常要比解释方式多功能工作结果实现技术上解释程序源程序的一个执行系统源程序的执行结果执行中间代码编译程序源程序的一个转换系统源程序的目标代码把中间代码转换成目标程序解释程序和编译程序的区别解释程序和编译程序的根本区别:是否生成目标代码编译程序的功能和组织结构表处理词法分析源程序目
6、标程序错误处理语法分析语义分析目标代码生成前端后端中间代码优化中间代码生成词法分析词法分析的工作它是编译程序的第一个阶段,主要任务是从左到右地对构成源程序的字符串进行扫描和分解,识别出一个个具有独立意义的单词什么是单词逻辑上相连的一组字符,从语法的角度来看,这些字符所具有的集体含义已不能再区分了,通常包括:保留字、标识符、界符、算符和常量等考虑下面的一段源程序vararea,radius:real;beginread(radius);area:3.1415926*radius*radius;end.保留字:var,begin,end,read,real运算符:*,:界符:‘(’,‘)’
7、,‘;’,‘.’标识符:radius,area语法分析语法分析的工作语法分析是编译过程的第二阶段,其工作是在词法分析的基础上识别单词序列是否能组成其语法成分例.对赋值语句area:3.1415926*radius*radius进行语法分析赋值语句的语法树*<赋值语句><标识符>:<表达式><常量><表达式>*<表达式><表达式><表达式>3.1415926<标识符>radius<标识符>radius语义分析和中间代码
此文档下载收益归作者所有