《编译原理---第1章.》由会员分享,可在线阅读,更多相关《编译原理---第1章.(69页珍藏版)》请在金锄头文库上搜索。
1、 编译原理 国家精品课程 学时与参考教材 v学时:44+12学时 v教材 蒋宗礼,姜守旭,编译原理,高等教育出版社,国 家“十一五”规划教材,2010年2月 v参考书 1.陈火旺等,程序设计语言编译原理(第3版) ,国防工业出版社,2003.8.印刷 2.Alfred Aho ect., 编译原理,赵建华等译,机械 工业出版社,2009.1. 3. Alfred Aho ect.,编译原理,李建中等译,机械 工业出版社,2003.8.(原版-邮电出版社) 4.Kenneth C. Louden,编译原理及实践,冯博琴 等译,机械工业出版社,2001.2.印刷 1 编译原理 国家精品课程 v 参
2、考教材(续): 6. 金成植,编译程序构造原理和实现技术,高 等教育出版社,2000.7. 7. 高仲仪等,编译技术,西北工业大学出版社 ,1985.9 8. 何炎祥等,编译原理,华中理工大学出版社 ,2000.10. 9. P.M.刘易斯,编译程序设计理论,科学出版 社,1984.5. 2 学时与参考教材 编译原理 国家精品课程 课程网站 3 教学 目的 是一门 非常好 的课程 18个方面 助你成长 编译原理 国家精品课程 课程网站 v路径:进入北工大主页 ,进入“教育在 线”,再进入“精品课程”,继续进入“编 译原理” 4 全程录像讲稿 (最新)、有 关资料 编译原理 国家精品课程 主要内
3、容 q 编译系统及其设计概述(总体结构、设计方法;3) q 语言与文法(文法、推导、归约、分类、分析树;5) q 词法分析(词法分析、正规式与正规文法、DFA状态转移图;6) q 语法分析(自顶向下:LL(1)、递归子程序;自底向上:算符优先、 LR;13) q 语义分析(属性文法、各种语句的语法制导翻译;10) q 运行环境(存储分配、过程调用、符号表管理;3) q 代码优化与代码生成(基本块与流图、局部优化、驯化优化、 代码生成;2) q 总结(2) 5 编译原理 国家精品课程 实验安排(另行通知) v11周12周(5月11日5月20日) 星期二12节、星期四56节 v13周14周(5月2
4、0日6月1日) 星期二12节可以验收 v基本要求:实现词法分析、语法分析 选作:语义分析、LR分析表自动生成、系统 v16周(6月15日) 星期二12节总结 6 编译原理 国家精品课程 成绩评定 v考试必备条件 必须按照要求完成指定的习题 必须通过实验系统的验收 v成绩 平时20% 期末80% 7 编译原理 国家精品课程 教学目的计算学科是一个宽泛的学科 8 用户 多层虚拟系统 基本计算 机系统 开发利用 工程实现 计算机理 呈现抽象、理论、设计三种学科形态 性能越来越好 使用越来越方便 编译原理 国家精品课程 教学目的计算学科的定义 关键:由计算机自动完成/实现自动计算 v 对信息描述和变换
5、算法的系统研究,主 要包括它们的理论、分析、效率、实现和应 用 v 计算学科的根本问题是什么能且如何被 有效地自动计算 v 讨论问题求解的“能行性” 9 编译原理 国家精品课程 教学目的计算学科各有分工 10 科学 工程 技术 什么能够被有效地 自动计算 如何方便有效地利 用系统进行计算 如何低成本、高效 地实现自动计算 :发现规律 :构建系统 :实现服务 计算学科涉及 编译原理 国家精品课程 教学目的学科基本特征 11 形式化、抽象、逻辑 思维方式描述手段 符号、符号变换 表达形式 求解途径 本学科的基本教育原理抽象第一 程序的非物理特性 编译原理 国家精品课程 教学目的计算学科本科生专业能
6、力构成 编译原理的授课涉及上述四种能力的培养 12 计算思维 算法设计 程序实现 系统开发 公共基础系列 基础理论系列 程序与算法系列 软件系统系列 (系统级的再认识与再提高) 硬件技术系列 实践系列 学科基础能力 工程型 应用型 科学型 编译原理 国家精品课程 教学目的编译原理是一门非常好的课程 vAlfred V.Aho:编写编译器的原理和技术具 有十分普遍的意义,以至于在每个计算机科 学家的研究生涯中,本书中的原理和技术都 会反复用到 v涉及的是一个比较适当的抽象层面上的数 据变换(既抽象,又实际) v既有一些具体的表示和变换算法;又是针 对一类问题的求解(自动计算的具体体现) 13 编
7、译原理 国家精品课程 教学目的编译原理是一门非常好的课程 v一个相当规模的、逻辑结构清晰系统的设计 (含总体结构) v“自顶向下”和“自底向上”的系统设计方法( 思想、方法、实现) v结论:计算机专业最恰当、有效的知识载体 之一 v编译:掌握“编译原理”中的基本概念、基本 理论、基本方法,在系统级上再认识程序和 算法,提升计算机问题求解的水平,增强系 统能力,体验实现自动计算的乐趣 14 编译原理 国家精品课程 教学要求 v知识层面 掌握编译程序总体结构系统能力基础 掌握程序变换基本概念、问题描述和处理方法 ,学习有关的原理、实现方法和技术,掌握典 型方法 (自顶向下、自底向上、逐步求精、递归
8、求解,目标驱动,问 题分析、问题的抽象与形式化描述,算法设计与实现,系统构建 、模块化 ) 增强理论结合实际能力,获得更多的“顶峰体 验” 程序实现实现能力基础 15 编译原理 国家精品课程 教学要求 v能力层面 理论与实践的结合能力:理论指导系统实现 系统能力:在系统级上认识算法、系统的设计 ,从宏观到微观、从微观到宏观,提高把握系 统的能力 较大规模程序的设计与实现 形式化描述能力:修养“问题、形式化描述、 计算机化”问题求解典型过程,推进从“实例计 算”到“类计算”和“模型计算”的跨越 程序语言:兼顾语言描述方法、设计、应用 16 编译原理 国家精品课程 学习方法 v学习是一个过程 上课
9、、读书、复习、做作业、讨论、做实验、自 己编程序、上机调试排错是绝对必要的,不 可缺的 v上课 课堂是本科教育的主要渠道:不要放弃自己经过 多年努力争取到的权利 美国心理学家阿贝尔.梅拉别思: 信息总效果=文字27%+音调38%+面部表情35% 17 编译原理 国家精品课程 v复习、做作业、讨论:勤于思考 博览、多思(学而不思则罔、思而不学则怠; 书由厚到薄、由薄到厚)、常实践 思考由怀疑和答案组成。怀疑是智慧的大门, 知道得越多,就越会发问,而问题就越多。 发问使人进步学问 v“轮子”与人类的认识 18 学习方法 编译原理 国家精品课程 v理论:使自己“站到巨人的肩膀上”,并拥有一个“ 智慧
10、的脑” 增加问题求解和探索的主动性 v实践:用智慧的脑,练就一双灵巧的手,开创一 个新世界希望创新性实践 v在理论指导下实践,强化理论与实践相结合能力 的培养 v读书:强化基础 在独立思考之前,必须先有基础知识。所谓“获得基 础知识”并不是形式上读过某门课程,而是将学过的 东西真正弄懂 19 学习方法 编译原理 国家精品课程 学习方法 v加强实践 “听过的会忘记, 看过的能记得, 做过的才理解” 20 提高实践能力 教了什么 学到什么 会做什么 编译原理 国家精品课程 学习方法 v辅导答疑 教师是最宝贵的资源 自己要思考,以追求最大收获:习题、问题 v应对困难 不畏惧困难 从教训到经验亲身体验
11、 要实践(作业、实验),加深理解,探讨开拓 21 编译原理 国家精品课程 学生的体会 v向我们展示了一个原先未曾接触过的世界。我 越来越坚信在编译这个领域里,包含了太多前 人的智慧 v课中不时的小问题,让我们去自由思考 v问题不断被解决的同时,又有一个个新的问题 提了出来,问题的出现恰恰是上一个方案的不 足,这个逐渐递进,逐渐解决问题的过程好像 踏着前人研究编译理论的路线,不断感觉大师 们遇到的问题、解决问题的思路 22 编译原理 国家精品课程 学生的体会 v开阔思路,建立严谨的思考方法,潜移默化地培养 形式化描述能力和抽象思维能力, 建立和完善系 统观和全局观 v带给我的不只是理论知识,更重
12、要的是自动计算 的思路,感到了一种“自动计算”的快乐 v这门课不仅让我对编译器有了一个比较理性的认 识与了解,让我提高了自己的编程能力,还让我 再次体会到了计算机学科的一些基本思想,再次 感受到了人类的伟大在于抽象的公理系统以 及算法的巧妙 23 编译原理 国家精品课程 第1章 引论 v1.1 计算机语言的发展 v1.2 翻译系统 v1.3 编译系统的功能分析 v1.4 编译程序总体结构 v1.5 编译程序的生成 v1.6 编译技术的应用 24 编译原理 国家精品课程 1.1 计算机语言的发展 v机器语言(Machine Language) 0、1代码 v汇编语言(Assemble Langu
13、age) 0、1代码与助记符:接近计算机硬件指令系统 v高级语言(High Level Language) 语句定义数据、描述算法(程序) 如:C、FORTRAN、PASCAL、C+、JAVA、 SQL(数据定义、数据操作) v命令语言(Command) 以功能封装为特征 25 编译原理 国家精品课程 高级语言的分类 v命令式语言(Imperative Language) FORTRAN(段结构)、BASIC、Pascal(嵌套结构)、 C、COBOL、ALGOL v函数(应用)式语言(Functional Language) LISP、ML v逻辑式(基于规则)语言(Logical Lang
14、uage) Prolog v面向对象语言(Object-Oriented Language) Smalltalk、 Ada(程序包)、 C+ 、Java 26 编译原理 国家精品课程 1.2 翻译系统 v翻译程序(Translator) 将某一种语言描述的程序(源程序Source Program)翻译成等价的另一种语言描述的程序(目 标程序Object Program)的程序 27 翻译程序 源程序 目标程序 (*.C / *.PAS/*.AS)(*.OBJ / *.EXE/*.*) 编译原理 国家精品课程 1.2 翻译系统 v解释程序(Interpreter) 口译与笔译(单句提交与整篇提交
15、) 28 源程序 输入数据 计算结果解释程序解释程序 编译原理 国家精品课程 1.2 翻译系统 v编译程序(Compiler) 高级语言程序汇编/机器语言程序 29 高级语言 源程序 汇编/机器语 言目标程序 编译程序编译程序 编译原理 国家精品课程 1.2 翻译系统 支撑环境、支撑环境、 运行库等运行库等 30 n n 编译系统编译系统( (Compiling System ) ) uu编译系统编译系统= =编译程序编译程序+ +运行系统运行系统 SourceProgram Compiler ObjectProgram InputRunSystem Output 编译原理 国家精品课程 1.2 翻译系统 v其它翻译系统 诊断编译程序(Diagnostic Compiler) 优化编译程序(Optimizing Compiler) 交叉编译程序(Cross Compiler) 可变目标编译程序(Retargetabl