版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
刘铭骆婷付才文明付铨张乾坤华中科技大学第1章编译概述
—编译程序的基础知识编译原理(第5版)课程说明教材:《编译原理》(第5版),电子工业出版社,2024年其他参考书:
[1]AlfredAhoect.,Compilers:Principles,Techniques,andTools,北京:人民邮电出版社,PearsonEducation出版集团,2002.2.[2]许畅等.编译原理实践与指导教程.北京:机械工业出版社2学时参考内容讲课学时1编译概述22文法和语言的基本知识63词法分析与有穷自动机74语法分析155语法制导翻译技术和中间代码生成7内容讲课学时6符号表的组织与管理17代码优化48运行时的存储组织与管理29目标代码生成210并行编译技术基本常识23评分参考评分项目占比考试70%平时成绩30%4第1章编译概述编译原理这门课程主要介绍设计和构造编译程序的基本原理和常用的技术和方法。本章重点介绍编译程序的基本概念编译的过程编译程序的结构5第1章编译概述编译器与解释器6CompilersInterpretersProgram+DataInterpreterOutput第1章编译概述1954IBM704Software>Hardwareprice如何提高软件的产量?JohnBackus1924‐2007
Speedcoding1953(10-20slower,解释执行300bytes=30%memory)
FORTRAN1(FormulasTranslation)1954-1957195850%()FORTRAN1第一个编译器意义重大诞生大量理论+实践现代编译器仍遵循781.1翻译程序与编译程序
翻译程序:将一种语言所写的程序译成等价的另一种语言的程序。
源语言源程序目标语言目标程序高级语言程序机器语言程序翻译程序#include<stdio.h>intmain(void){printf(“hello,world!\n");
return0;}00001010…..91.1翻译程序与编译程序
编译程序:是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。
源程序高级语言程序编译程序目标程序汇编语言或者机器语言程序1.1翻译程序与编译程序程序运行阶段第一种情况:源程序编译程序机器语言目标程序初始数据运行系统结果编译阶段运行阶段高级语言程序101.1翻译程序与编译程序源程序编译程序机器语言目标程序初始数据运行系统结果编译阶段运行阶段汇编程序汇编语言目标程序汇编阶段高级语言程序11程序运行阶段第二种情况:1.2编译过程与编译程序的基本结构自然语言翻译Thisisasentence.Isthisasentence12
词法分析
语法分析
语义分析
修饰工作
翻译成文
编译过程编译过程一般可划分为五个阶段:13
词法分析
语法分析
语义分析和中间代码生成
代码优化
目标代码生成编译过程例如:程序片段14floatr,h,s;s=2*3.1416*r*(r+h);或Ifx==ythenz=5;elsez=10;1)词法分析词法分析:是对构成源程序的字符串从左到右进行扫描和分解,根据语言的词法规则,识别出具有独立意义的单词(也称单词符号、符号
)。15词法规则词法规则:是单词符号的形成规则,它规定了字符串如何构成一个单词符号。16
例子:
floatr,h,s;
s=2*3.1416*r*(h+r);基本字float 标识符r、h、s常数3.1416、2 算符*、+
界符(、)、;、,、=id1=2*3.1416*id2
*(id2
+id3);2)语法分析语法分析:在词法分析的基础上,根据语言的语法规则从单词符号串中识别出各种语法单位(如表达式、说明、语句等),并进行语法检查,即检查各种语法单位在语法结构上的正确性;产生形成语法树。17自然语言语法树Thislineis
alongersentence18Articlenounverbaritcleadjectivenounsubjectobjectsentence语法树ifX==ythen
Z=5;elseZ=10;19relationassignassignpredicateElse-stmtThen-stmtIf-then-elseX==yZ
5Z10语法规则语法规则:规定了如何从单词符号形成语法单位。语法规则是语法单位的形成规则。例子:floatr,h,s;s=2*3.1416*r*(h+r);20“s”是<变量>;“2*3.1416*r*(h+r)”组合成<表达式>;<变量>=<表达式>组合成<赋值语句>。213)语义分析和中间代码生成语义分析:首先对每种语法单位进行静态的语义审查,然后分析其含义,并用另一种语言形式来描述这种语义。比源语言更接近于目标语言
(中间代码或直接用目标语言)223)语义分析和中间代码生成例子:将s=2*3.1416*r*(h+r)翻译成如下形式的四元式中间代码:(1)(*,2,3.1416,T1)(2)(*,T1, r,T2)(3)(+,h, r,T3)(4)(*,T2,T3,T4)(5)(=,T4,__,s)例子:将s=2*3.1416*r*(h+r)翻译成如下形式的四元式中间代码:233)语义分析和中间代码生成T1=2*3.1416T2=T1*id1T3=id2+id3T4=T2*T3Id1=T4问题作用域:{intJack=3;{intJack=4;cout<<Jack;}}二义性:JacksaidJerrylefthishomeworkathome244)代码优化
代码优化:对前阶段产生的中间代码进行等价变换或改造,以期获得更为高效即省时间和空间的目标代码。主要包括:局部优化和循环优化等,例子:四元式经局部优化后得:25(1)(*,6.28,
id2,T2)(2)(+,id3,id2,T3)(3)(*,T2,T3,T4)(4)(=,T4,__,id1)5)目标代码生成目标代码生成:将中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。26表格管理和错误处理在编译程序的各个阶段中,都涉及表格管理和错误处理。
表格:记录源程序中所提供的、在编译过程中产生的信息;表格管理:构造、查找、修改或存取表格中的信息;错误处理:编译程序在编译过程中,应具有广泛的程序查错能力,并能准确地报告错误的种类及出错位置,以便用户查找和纠正。27编译程序的结构28
源程序语义分析和中间代码生成程序语法分析程序词法分析程序代码优化程序目标代码生成程序
目标程序表格管理程序出错处理程序(字符串)1.3编译程序的生成方法编译程序是一个复杂的系统程序,需要考虑以下几方面:29
对源语言和目标语言认真分析
设计编译算法
选择语言编制程序
调试编译程序
提交相关文档资料编译程序的自动生成随着编译技术和自动机理论的发展,近年来已研制出了一些编译程序的自动生成系统:词法分析程序的自动生成系统:Flex/Lex;语法分析程序自动生成系统:Bison/YACC等30编译程序的自动生成生成编译程序的方法还常采用自编译方式和移植方式。随着并行技术和并行语言的发展,处理并行语言的并行编译技术和将串行程序转换成并行程序的自动并行编译技术正在深入研究之中。311.4编译技术在软件开发中的应用大部分系统软件和应用软件的开发,通常要用到编译的原理和技术。例子:词法分析器的串匹配技术用于正文编辑器、信息检索系统和模式识别程序;上下文无关文法和语法制导定义用于排版、绘图系统和语言结构化编辑器中;代码优化技术用于程序验证器和从非结构化的程序产生结构化程序中。32本章小结什么是编译程序编译过程的五个阶段编译程序的结构框图33编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成本章小结34
源程序语义分析和中间代码生成程序语法分析程序词法分析程序代码优化程序目标代码生成程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园林景观土方造型施工工艺
- 甘肃省天水市罗玉中学2027届化学九年级第一学期期中综合测试试题含解析
- 陕西省榆林市一中学分校2027届化学九年级第一学期期中达标测试试题含解析
- 《管道投产技术》课件
- 2027届贵州省威宁县九年级化学第一学期期中综合测试模拟试题含解析
- 县人民医院工作计划(2篇)
- (新)成立新公司的合作合同
- 2027届湖南省平江县九上物理期末质量检测试题含解析
- 开环电子控制系统的结构方框图
- 2027届天津市滨海新区枫叶国际学校物理九上期末检测模拟试题含解析
- 2026年8月成都市建筑科学研究院有限公司招聘检测辅助岗笔试备考题库及答案详解
- GB 48013-2026养老机构基本规范
- 2026 高考化学试题评析及教学启示河南卷
- 2026年国家统一法律职业资格考试全套真题(含标准答案+详细解析)
- 2025年绵阳育才中学初一入学数学分班考试真题含答案
- 2026四川光雾山文旅康养产业有限公司招聘1人笔试题库含答案详解【黄金题型】
- 老师批改作业8种方法
- 中国中医科学院西苑医院招聘笔试真题2023
- 2024用电信息采集系统技术规范第1部分:专变采集终端
- GB/T 5270-2024金属基体上的金属覆盖层电沉积和化学沉积层附着强度试验方法评述
- 手术室正确识别患者身份
评论
0/150
提交评论