编译原理.

Slides:



Advertisements
Similar presentations
邱锡鹏 复旦大学计算机科学技术学院 Text Books  “Dragon book”  Compilers: Principles, Techniques, and Tools (2nd Edition)  Alfred V. Aho;Monica S.
Advertisements

首页 全国高等学校招生考试统一考试 监考员培训 广州市招生考试委员会办公室.
延边大学 2016年度本科专业评估指标体系解读.
理念是教育的灵魂 行动是成功的保证 咸阳底张学区小学段 课程改革研讨报告 2011年4月.
主题8 对教学设计与实施的评价 讲课教师:关坤
消防知识进校园 珠海市公安消防局 贾博.
文艺类说明文阅读.
人口增长.
墨子選 非攻.
主廚:蔡 明 宏 ﹝秘儀創始者,本店創立在民國七十年〈1981〉﹞ 副廚:欽天門弟子 〈由三十人聯廚〉
野薑花有機生態教育農場 主講人 林進財.
《天津市建设工程监理企业信用评价办法》 介绍.
审核性教学工作评估动员 李 永 苍 2015年5月22日.
一條美麗的銀蠹魚 從水經注裡游出來-──亞弦 讓晶瑩剔透的文字,停駐在我們心中-淺談新詩教學
通州国税纳税信用等级A类纳税人 取消发票认证操作培训 2016 通州国税.
工业区位因素 胶州二中 高绪军.
初级会计实务 第二章 负债(三) 主讲人:杨菠.
第一章 会计法律制度 补充要点.
長平之戰是戰國後期一場決定性戰役,秦將白起充分利用地利之便,採後退誘敵、合圍殲滅的戰術。
作者简介: 闻一多(1899-1946) ,湖北浠水人,前新月派诗人和新格律诗理论的奠基者,著名的诗人、学者、民主战士。 其新歌创作的主要成就是两部诗《红烛》(1923)《死水》(1928) 浓烈而真挚的爱国情思是其诗歌的灵魂。 朱自清曾称赞闻一多是五四时期“唯一的爱国诗人”。 闻一多诗歌理论的核心是讲究“三美”:
二、个性教育.
——解读《国务院办公厅关于继续深入开展 “安全生产年”活动的通知》
订单合并拆分功能详解 荷叶.
第三课:我国政府是人民的政府 3.2政府的责任:对人民负责.
幼托教師的在職教育訓練 第三組 498i0052蕭羽婷 498i0053 顏于淨 498i0058 黃祺婷 498i0059 林怡均
校园信息管理系统 河北科技大学网络中心 2000/4/10.
第九讲 医院信息系统应用——住院子系统一.
第一节 工业的区位因素与区位选择 【考点1】工业的区位因素 1.常见的工业区位因素 (1)自然因素:土地、原料、动力、水源等。 (2)社会经济因素:交通、劳动力、市场、政府政策、工农业基础、个人偏好、环境等。 2.影响不同工业部门的主导因素 列表分析不同的工业部门在区位选择时需要考虑的主导因素:
第一章 国际私法的概念 第一节 国际私法的调整对象 第二节 国际私法的范围 第三节 国际私法的性质 第四节 国际私法的名称
第九课 第二框 世界多极化:不可逆转.
《钢铁是怎样炼成的》 语段精读.
问题解决与创造思维 刘 国 权 吉林省高等学校师资培训中心.
第四单元 自觉依法律己 避免违法犯罪.
近代化 小农经济,铁犁牛耕 古老 男耕女织,肩挑背驮 中国 君主专制,文化专制 农耕文明 闭关锁国,天朝上国 近代 西方 工业文明 经济工业化/城市化 政治民主化/法治化 思想理性化/科学化.
财经法规与会计职业道德 (13) 四川财经职业学院.
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
第四课 恪守职业道德 我爱岗 我敬业.
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
第七章 诉讼参加人.
第八章了解法律制度自觉遵守法律.
高中历史多媒体课件 高中历史多媒体课件 隋唐时期政治经济概况. 高中历史多媒体课件 高中历史多媒体课件 隋唐时期政治经济概况.
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
一、考试范围 二、考试要求 三、近几年中考题型及解答技巧 四、近来复习中出现的问题 五、采取的措施 六、中考热点复习
中国科学技术大学 计算机科学与技术学院 陈意云
各位领导、各位专家上午好! 对你们的到来,双多公司全体干部员工表示热烈的欢迎.
必修三 稳态与环境 第5章生态系统及其稳定性 第5节 生态系统的稳定性.
近代中国经济结构的变动.
人口迁移与人口流动.
第八章 财务分析与评价.
思想政治选考数据分析 绍兴市教育教学研究院 骆新华 2016、9、14.
吳福明教授 排球運動發展簡史 編制.
光隆家商 優質化計畫 簡報 校 長 楊瑞明 教務主任 高美麗
地球在宇宙中 史苏丹.
一條美麗的銀蠹魚 從水經注裡游出來-──亞弦 讓晶瑩剔透的文字,停駐在我們心中-淺談新詩教學
第四章 存货 第一节 存货基础 第二节 原材料 第三节 其他存货 第四节 存货期末计量.
必备职业素养 主讲:程华.
基隆區創意發展校園 簡報 光隆家商校長 楊瑞明 光隆教務主任 高美麗
《中级经济法》模考点评 主讲老师:武劲松.
ISO14001環境管理系統簡介及推行程序 經濟部工業局 高 世 錦 2018年11月19日 ISO
你可以选择题目难度 你可以寻求多方帮助 但是,你不能 -不做 -拷贝 ….
为全面推进深化医药卫生体制改革,积极稳妥推进公立医院 改革,逐步建立我国医院评审评价体系,促进医疗机构加强自身 建设和管理,不断提高医疗质量,保证医疗安全,改善医疗服务, 更好地履行社会职责和义务,提高医疗行业整体服务水平与服务 能力,满足人民群众多层次的医疗服务需求,在总结我国第一周 期医院评审和医院管理年活动等工作经验的基础上,我部印发了.
有效執行 邁向成功的階梯 ( 摘錄自李開復先生著作 :做最好的自己 ).
学生干部角色的定位与转换 肖志文 2013年9月16日.
品管圈活動訓練 壹、活動圈組成 1.
微信商城系统操作说明 色卡会智能门店.
成 本 会 计 学 第六章 产品成本计算的基本方法.
教育部特殊教育通報網 學生異動、接收操作說明.
107學年度第1期 學生重補修說明會.
2.2 数轴.
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
Presentation transcript:

编译原理

课 程 简 介 课程内容 介绍编译器构造的一般原理和基本实现方法 介绍的理论知识:形式语言和自动机理论、语法制导的翻译、属性文法等 强调形式化描述技术 强调对编译原理和技术的宏观理解 1.本课程介绍编译器构造的一般原理和基本实现方法,主要介绍编译器的各个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。反映直至20世纪末的一些重要成果,如有关类型制导的编译思想。 2.本课程在介绍命令式程序设计语言实现技术的同时,强调一些相关的理论知识,如形式语言和自动机理论、语法制导的定义和属性文法、类型论等。它们是计算机专业理论知识的重要一部分,在本书中结合应用来介绍这些知识,有助于学生较快领会和掌握。 3.本课程强调形式化描述技术,并以语法制导定义作为翻译的主要描述工具。 4.本课程强调对编译原理和技术在宏观上的理解,而不把读者的注意力分散到一些枝节的算法上,如计算开始符号集合和后继符号集合的算法,回填技术等。作为原理性的教材,本书介绍基本的理论和方法,而不偏向于某种源语言或目标机器。

课 程 简 介 学习的意义 对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论有所了解,对宏观上把握编程语言来说,起一个奠基的作用。 从软件工程看,编译器是一个很好的实例,所介绍的概念和技术能应用到一般的软件设计之中。 成熟的理论,广泛的应用,深刻的影响。 虽然只有少数人从事构造或维护程序设计语言的编译器,但是本课程对本科生来说是一门重要课程。 1.本课程能使学生对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论(形式语言和自动机理论、类型论等)有所了解,对宏观上把握编程语言来说,起一个奠基的作用。 2.对软件工程来说,编译器是一个很好的实例(基本设计、模块划分等),也是本科期间能碰到的唯一的大型例子,学生从本课程的学习也能了解到软件工程中的一些技术(如基于事件驱动的编程)。本课程所介绍的概念和技术能应用到一般的软件设计之中。 3.大多数程序员同时是语言的设计者,虽然是一些简单的语言(如输入输出),本课程的学习有助于提高对这些语言的设计水平。 4.编译技术在软件逆向工程、程序理解和软件安全等方面有着广泛的应用 软件逆向工程:以另外一种形式创建系统同一层次的表示或者更高层次的抽象, 应用:技术仿造、软件维护。 程序理解:通过分析、抽象和一般化来获取软件知识的演绎过程。(1)基于机器代码和中间代码层的理解,需要借助于反汇编和反编译技术;(2)基于源代码的理解;(3)基于语法层的理解,程序分段、程序切片和程序分析等技术就是其中的最典型代表;(4)基于程序语义层的理解,模式匹配、格局识别(plan recognition)、概念赋值(concept assigned)和概念分析(concept analysis)等都是进行语义级的软件理解和分析技术。 软件安全:满足安全策略。基本安全策略:类性安全、控制流安全和内存安全。还有信息流安全。用到词法、语法和语义分析、类性系统和类性检查、控制流分析和数据流分析等。编译器将走向类型制导的编译器。 美国的名牌大学:都有编程语言和编译器方面的课程,80%有这方面的研究。国内对这方面的人才需求将增加。

课 程 简 介 教材和参考书: (1)陈火旺,编译原理,国防工业出版社 (2)A. Aho, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools 人民邮电出版社

第一章 引 论 翻译器、解释器 编译器从逻辑上可以分成若干阶段 每个阶段把源程序从一种表示变换成另一种表示 第一章 引 论 翻译器、解释器 编译器从逻辑上可以分成若干阶段 每个阶段把源程序从一种表示变换成另一种表示 通过描述编译器的各个阶段来介绍编译这个课题

1.1 什么叫编译程序 编译器(编译程序):compiler 能将一种计算机高级语言程序(源语言程序)转换成另一种等价的计算机低级语言程序(目标语言程序)

解释器(解释程序):interpreter 也是一种翻译程序,以一种语言写的源程序作为输入,但不产生目标代码,而是边解释边执行。 解释器与编译器的区别: 编译分成两步完成:先翻译,再运行 解释只用一步完成:边解释边执行

可变目标编译程序(Retargetable Compiler) 交叉编译程序(Cross Compiler)

英译与编译的比较 1 识别出句子中的一个个单字 2 分析句子的语法结构 3 初步翻译句子的含意 4 译文修饰 5 写出最后译文

1.2 编译程序的组成 词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器

一 词法分析过程 for i=1 to 100 do 词法分析器 符号序列 符 号 表 保留字 标识符 赋值号 for . . i. 一 词法分析过程 词法分析器 符号序列 for i=1 to 100 do 符 号 表 保留字 标识符 赋值号 for . . i. . =. . 1 2 3

二 语法分析过程 1。2。2语法分析 语法分析的任务:在词法分析的基础上,根据语言的语法规则,把单词符号分解成各类语法单位(语法范畴),如“短语”、“句子”、 “子句”、“程序段”等。 语法规则通常用上下文无关文法描述。 先介绍语法,然后才介绍语法分析。

1.2.3语义分析与中间代码的产生 这一阶段通常包括两方面的工作首先对各种语法范畴进行静态语义检查,如果正确则进行另一方面的工作,即进行中间代码的翻译。 通常使用属性文法描述语义规则 所谓“中间代码”是一种含义明确,便于处理的记号系统。 中间代码除四元式外,还有三元式、间接三元式、逆波兰记号、树形表示等。

中间代码 temp1=c*d temp2=b+temp1 a=temp2 (* , c , d , tempt1) a=b+c*d temp1=c*d temp2=b+temp1 a=temp2 (* , c , d , tempt1) (+ , b, tempt1 ,tempt2) (= , tempt2 , , a)

前三个阶段的作用 前三个阶段完成对源程序的分析 词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器 前三个阶段完成对源程序的分析

1.2.4 优化 优化的任务在于对前段产生的中间代码进行加工,以期在最后阶段产生更为高效(省时间和空间)的代码 优化所依循的原则是程序的等价变换规则 其方法有:公共子表达式的提取、循环优化、删除无用代码等。

六 目标代码的产生过程 代码生成器 temp1 := id3 * 60.0 id1 := id2 * temp1 MOVF id3, R2 MULF #60.0, R2 MOVF id2, R1 ADDF R2, R1 MOVF R1, id1

后三个阶段的作用 后三个阶段对源程序进行综合 词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器 后三个阶段对源程序进行综合

词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器

前端 后端 词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器

前端 后端 遍 词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器

如何学习构造编译程序 源语言,对被编译的源程序要深刻理解其结构和含义 目标语言,假定目标语言是机器语言,就必须搞清楚硬件的系统结构和操作系统的功能 编译方法,把一种语言翻译成另一种语言的方法很多,课程重点 本章作业:画出编译程序结构图,说明各部分功能