




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、如?/erXpn.,加为什么要学习编译原理程序设计语言是计算机软件专业的重要核心学习编程的历程:- C语言-汇编语言-数据结构高级语言 ?翻译程序?汇编语言编译原理201511250 WMS7a血r为什么要学习编译原理必修主干课程,操作系统和编译系统构成程序 设计者与计算机之间的基本界面.通过学习该课程,掌握编译的基本理论、常用 的编译技术,了解编译过程及编译系统结构和 机理.能运用所学技术解决实际问题,能独立 编写一个小型编译系统.此外,通过学习编译原理可以更好地理解程序 语言的内部机制,从而更好地理解和运用程序 设计语言.能运用编译程序构造的原理和技术 完成相关软件工具的设计和开发工作.为
2、什么要学习编译原理计算机软件学科理论与实践相结合的典范。在学习过程中既要注重该领域在理论上取得 的完美结论,也要注重这些理论在实际中的 应用.编译原理2015年丨I月25日° S1ST先修课程要求先学习以下课程 1程序设计语言 2算法与数据结构:栈分配、堆分配、静态分配等各 种存储分配方式.线性表、二叉查找树、哈希表等多 种数据结构. 3离散数学:集合论与数理逻辑是进一步学习形式语 言与自动机理论的数学基础.最好学习过或同时学习以下课程1 软件工程:掌握大型程序设计以只工程化的软件生 产方法.2形式语言与自动机:相当于本课程中词法分析与语 法分析的理论基础.编译原理邮年H月25日績1
3、STXonoi/erMA. A. I胡元义,邓亚玲,编译原理教程,西安电子科 技大学出版社参考书李建中译,编译原理(龙书),机械工业出版社陈火旺刘春林等, 防工业出版社程序设计语言编译原理,编译原理2015年11月25日ST编译原理2015年11月25日ST吕映芝,张素琴等,编译原理,清华大学出版社2015411 月 25 日李冬梅,施海虎,编译原理,人民邮电出版社编译原理Mb. d 要求及学习方法课程特点:理论性强,算法复杂平时(30%)无故旷课:-5 一本教材,认真听课:以讲义为主,板书为 辅做适当的笔记认真完成课堂和课后作业完成要求的课外实验内容期末(70%):闭卷笔试Co/)iler第
4、1章编译概述教学目标1.掌握编译程序中所涉及的有关名词术语2015年11月25日2理解编译程序总的框架,明确编译程序工作的基本过程及各阶段的基本任务编译原理Xo/? oiler 亠 教学内容1丄程序的翻译1.2. 编译程序的组成1.3. 编译程序构造编译技术的应用及发展编译原理2015年11月25日ST伽oiler伽oiler1.1程序的翻译低级语言(Low level Languajje)-字位码、机器语言.汇編语言特点:与特定的机器有关,功效高,但使用复杂、繁 琐.费时、易出错高级语言Fortran> Pascal、C 语言等-特点:不依赖具体机器,移植性好.对用户要求低、 易使用、
5、易维护等.编译原理20154H <250SISTCoi Me源程序用汇编语言或高级语言编写的程序称为源程序目标程序用目标语言所表示的程序目标语言:可以是介于源语言和机器语言之间的“中间 语言”,可以是某种机器的机器语言,也可以是某机器的汇 编语言.翻译程序将源呛序转换为目标程斤的程序称为翻译程序。它是 指各种语言的翻译器,包括汇编程序和编译程序,是汇编 程序、编译程序以及各种变换程序的总称。s 9 源程序、翻译程序、目标程序三者关系:Ll目标程序源程序翻译程序OBJECT PROGRAM即源程序是翻译程序的输入,目标程序是翻译程序的输出编译原理20*11月25日 戟iS7伽oiler汇编
6、程序若源程序用汇编语言书写,经过翻译程序得到用机器语言 表示的程序,这时的翻译程序就称之为汇编程序,这种翻译过 程称为“汇编”(Assemble)编译程序若源程序是用高级语言书写,经加工后得到目标程序,上述 翻译过程称“编译” (Compile)汇编程序与编译程序都是詡译程序,主要区别是加工对象的 不同.由于汇编语言格式简单,常与机器语言之间有一一对 应的关系。汇编程序所要做的翻译工作比编译程序简单的多.编译原理呦理H月2S日 "SlST3®er的编译和运行编译或汇编阶段运行阶段输入数据编译原理编译程序或汇编程序目标程序+运行子程序目标程序输出数据2015年II月25日编译
7、原理milf 25 n编译原理milf 25 n解释程序(Interpreter)类似于口译,不生成目标代码 对源程序进行解释执行的程序工作过程源程序输入数据解释程序检出数据特点:与编译系统比较,解释系统较简单、 可移植性好,易于查错,但速度慢3卫iler二爲春解释执行”系统源程序i输入数据输出数据编译原理Co/)iler2015年丨I月25日SIST例如Java语言Java虚拟机(JVM)本地计算机系统编译原理milf 25 nCon pjler©怎 oiler工2一编译程序的组成所谓编译过程是指将高级语言程序翻译为 等价的目标程序的过程.翻译外文资料:1、能识别出句子中的一个单词
8、;2、分析句子的语法结构;3、根据句子的含义进行初步翻译;4、对译文进行修饰;5、写出最后的译文.编译原理2015年亓月25日SIST编译过程翻译和编译工作的比较翻译外文编译程序分析识别单词 分析句子 根据语义进 行初步翻译牌册析语法分析语义分析.生成中间代码综合修辞加工 写出译文代码优化目标代码生成编译过程习惯上是将编译过程划分为5个基本阶段:吃乜语义分析及中间代码生成贊优竺标代码生成编译原理20*11月25日 鑽打Cot Me一、词法任务:根据词法规则分析和识别里迥I字符序列I»I编码形式I厂单词:是语言的基本语法单位<1> 保留字(如:if、else, wh i 1
9、 e )<2>标识符(如:max. min、str )<3>常数 (如:12、6.8、' a')<4>分界符(如:+.-、仁 /、;、(、)编译原理2015年II月25日Con pjler单词值单词类别y标识符=分界符(赋值)X标识符+分界符(加号)r标识符*分界符(乘号)6常数编译原2°"“月纱 rSlS7词法分析程序的结果二元式Co/)iler. .有关术语词法分析(lexical analysis or scanning) The stream of characters making up a source pro
10、gram is read from left to right and grouped into tokens, which are sequences of characters that have a collective meaning.单词token保留字reserved word标识符identifier (user-defined name)编译原理2015年II月25日Con pjlerjCo/L oiler三歳务:根据语法规则(即语言的文法),分析并识 别出各种语法成分(如表达式.语句.函数等), 并进行语法正确性检查.文法赋值语句:= 标识符“表达式表达式::=表达式%”表达
11、式 I 表达式”表达式2015年丨I可25日表达式:(”表达式“)” I标识符I 整数I 实数编译原理IV狀值语句:XV标识符七” V表达式表达式:=表达式"+”v表达式| V表达式“”表达式V表达式:=T表达式“)”| V标识符 I 幣数|实数编译原理2015年II月25日语法分析的结果:语法树Co/;)iler有关术语语法分析(syntax analysis or parsing)The purpose of syntax analysis is to determine the source program's phrase structure.This process
12、 is also called parsing.The source program is parsed to check whether it conforms to the source language's syntax,and to construct a suitable representation of its phrase structure 亠三T春文分析及中间代码生成存山任务:依据语义规则对识别出的各种语法成迪甚 含义,并进行初步翻译,生成中间代码.静态:分析语法成份的含义,进行语义上的正确性检查动态:根据相应语义,生成中间代码(介于源语言和目 标语言之间的中间语言
13、形式)编译原理2015年 11 月 25 BXlSTmoJIer”生成中间代码的目的:1、利于代码优化2.利于目标代码的移植存中间代码的形式:四元式、三元式、逆波兰表示编译原理2015年II 月25BST运算符左运算对象右运算对象结果(1)inttoreal6tl(2)*rtlt2(3)+t2Xt3(4)=t3y例:y = x + r * 6其中tl、t2、t3为编译程序引入的临时工作单元Con)iler四元式编译原理Xor)iler有关术语2015年 II 月25 0语义分析(semantic analysis)The parsed program is further analyzed t
14、o determine whether it conforms to the source language's contextual constraints:scope rules, type rulese.g. To relate each applied occurrence of an identifier in the source program to the corresponding declaratio n编译原理2015年 11 月 25 B中间代码生成(intermediate codeCori)iler有关术语generation)This is where t
15、he intermediate representation of the source program is createdWe want this representation to be easy to generate,and easy to translate into the target program.The representation can have a variety of forms,but a common one is called three-address code or 4 tuple codeft译原20*11月2$日 黄1S7Xpn oiler莪码优化慶
16、例:y = x + r * 6 |任务:对中间代码进行加工变换,以得到髙质量的目 标代码运算符左运算对象右运算对象结果(1X1 inttorealt2*运算符左运算对象右运算对象结果(1)r6.0tl(2)+tlXy+x13yCor)iler有关术语代码优化(Intermediate code optimization)The optimizer accepts input in the intermediate representation and output a version still in the intermediate representation In this phase9
17、the compiler attempts to produce the smallest,fastest and most efficient running result by applying various techniques编译原理2015年月25日“ST芒 Coolermovr,R1mul#6.0.R1movx.R2addRl,R2movR2,y编译2015年月25日任务:把中间代码变换成特定机器上的低级语言代码运算符左运算对象右运算对象结果(1)*r6.0tl(2)+tlXy£o 氐 Mer编译过程小结S.P词法分析' 程序4n1代吗优化 程序工 m需紳寵编译
18、原理2015年丨I月25日“STCor oiler d 按逻辑功能不同,可将编译过程划分为五个衣本阶段,与此相对应,我们将实现整个编译过程的编译程序划 分为五个逻辑阶段(即五个逻辑子过程).每个阶段中都要有: 符号表管理和错误处理编译原理2015年丨I月25日编译程序的逻辑结构符号表管理填表:巴源程序中的信息和编译过程中所产生的 信息登记左衰格中查表:在随后的编译过程中同时又要不断的查找 这些表格中的信息错误处理诊察错误,并能报告用户错误性质和位置出错处理能力的优劣是衡量编译程序质量好坏的 一个重要指标。编译原理Con)iler典型的编译程序具有7个逻辑部分S.P词法分析程序符号表管理语法分析
19、程序 语义分析及生成中间代码程序代码优彳匕程序错误处理代码生成程序OP编译原理2015年】1月25日ST编译程序的前端和后端根据编译程序各部分功能,将编译程序分成前端和后端前端:通常将与源程序有关的编译部分称为前端词法分析、语法分析、语义分析、中间代码生成分析部分特点:与源语言有关后端:与目标机有关的部分称为后端.代码优化、代码生成综合部分2015年II月25日特点:与目标苑有关编译原理同一祈端+不同后端-»不同机器构成同一语言的编译程序例如Java语言同一前端+不同后端-> 不同机器构成同一语言的编译程序同一前端+不同后端-> 不同机器构成同一语言的编译程序例如NET框架不同前端+同一后端同一机器生成几个语言的编译程序乂 、例如GCC对源程序(包括源程序中间形式J从头到尾扫描 一次,并做有关的加工处理,生成新的源程序中 间形式或目标程序,通常称之为一遍。第一遍第二遍SP CI恋加C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粮食储备的社区粮食安全计划考核试卷
- 酿酒行业节能减排措施考核试卷
- 道路工程测绘技术考核试卷
- 遥感技术在应急管理与救援中的应用考核试卷
- 组织结构优化与流程再造考核试卷
- 常见心脏疾病手术方式
- 新生儿NICU出科报告
- 麻醉专业就业分析研究
- Quadrilineatin-生命科学试剂-MCE
- 9-Heptadecanone-Heptadecan-9-one-生命科学试剂-MCE
- 双液注浆施工方案
- 民兵训练管理规定
- 2025年国家公务员考试行测常识题库及答案(共300题)
- 2024冀少版七年级下册生物期末复习知识点提纲(详细版)
- 2025年《义务教育小学体育课程标准测试卷2022版》测试题库及答案
- 全国卫生健康系统职业技能竞赛(传染病防治监督)参考试题(附答案)
- 人工智能算法与市场营销的融合研究
- DBJ50-T-157-2022房屋建筑和市政基础设施工程施工现场从业人员配备标准
- 国家开放大学专本科《经济法学》期末纸质考试总题库2025春期版
- 显示屏幕抗反光技术研究-洞察分析
- 地磅及地磅房施工方案
评论
0/150
提交评论