编译原理 教学课件 ppt 作者 王生原 董渊 杨萍 张素琴 pll-2010-Overview

上传人:E**** 文档编号:89366521 上传时间:2019-05-24 格式:PPT 页数:25 大小:547KB
返回 下载 相关 举报
编译原理 教学课件 ppt 作者  王生原 董渊 杨萍 张素琴 pll-2010-Overview_第1页
第1页 / 共25页
编译原理 教学课件 ppt 作者  王生原 董渊 杨萍 张素琴 pll-2010-Overview_第2页
第2页 / 共25页
编译原理 教学课件 ppt 作者  王生原 董渊 杨萍 张素琴 pll-2010-Overview_第3页
第3页 / 共25页
编译原理 教学课件 ppt 作者  王生原 董渊 杨萍 张素琴 pll-2010-Overview_第4页
第4页 / 共25页
编译原理 教学课件 ppt 作者  王生原 董渊 杨萍 张素琴 pll-2010-Overview_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《编译原理 教学课件 ppt 作者 王生原 董渊 杨萍 张素琴 pll-2010-Overview》由会员分享,可在线阅读,更多相关《编译原理 教学课件 ppt 作者 王生原 董渊 杨萍 张素琴 pll-2010-Overview(25页珍藏版)》请在金锄头文库上搜索。

1、编译原理专题训练 介绍,课程介绍提纲,课程介绍 教学目标 教学方式 关于教材 课程计划 考核方式 总结,编译原理专题训练,本课程是计算机科学与技术系为本系本科生开设的一门重要的计算机限选课,目的是加强学生对系统软件的理解和把握,培养学生的软件素质,提高学生的软件开发能力。本课程基于工业界广泛采用的自由软件GCC、以程序语言编译系统框架为主线安排实验,通过实验掌握词法分析、语法分析、中间表示、优化和目标代码生成以及交叉编译等方面的基本技术和相关工具。,背景介绍,编译课程向来注重实践教学。2006年清华为本科四年级上学期推出专题训练系列课程: 计算机网络专题训练 编译原理专题训练 操作系统专题训练

2、 数据库专题训练 分析目前计算机行业对编译人才的需求特点,可以看出主要集中在三个方向: 面向高性能计算的编译优化:如多核/众核 面向嵌入领域的编译后端设计和优化 面向特定领域(如芯片设计)的编译框架和优化,长期存在的问题,背景 课程全生命周期支持? 筹备、开课、上课、传承 实践类课程“小组大作业”支持? 代码、参考、讨论、合作 实验平台更新? 老化、简单 作业监督和评价? 进度、质量、诚信 最新研究成果转化? 积累、继承 怎么办?,相关方案,介绍 清华大学“编译原理”课程 PL/0、Decaf /Mind 北航 王雷 GJC 开源工具 科大 张昱陈意云 实验平台 自行设计开发 . 并没有解决完

3、全上述问题!,开放:基于Blog的新对策,开放课程:基于开发源代码系统的开放编译实验教学 开放框架:GCC/Open64 开放实验:同学提出、教师设计、课程交叉 开放评估:支持小组软件开发和维护,公开作业、组间评分 开放监督:长时间、公开发布作业成果 博客平台与内容管理 WEB 2.0 /博客技术 交互式的网站在线协同编辑技术 论坛交流和全文检索技术 课件上载/下载;视频回放;访问控制;教学资料、教学过程信息发布 适用范围 学生:具有一定计算机技能的高年级学生 课程:有小组大作业,有交流范围和深度需求 队伍:具有一定的网站维护能力,开放课程,开放框架 GCC/Open64 开放实验 语言特征相

4、关:如GCC扩展特性 后端机器相关:如PPC重定向 优化技术相关:如快速除法优化、Code Size相关优化 编译性能评估:如benchmark设计和比较 嵌入系统相关:Android编译 开放评估 过程公开、结果公开 报告、演示,互相交流 开放监督 你google,我也google 作业公开三五年,教学目标,课程的主要目的: 通过本课程的学习,进一步掌握编译系统的基本原理; 介绍软件从高级语言源代码到可执行代码的整个翻译过程和相关的开源工具使用,掌握基本工具; 以GCC为例,剖析编译器整体框架和编译的一般流程和主要活动;通过对编译优化方法原理和实现技术的介绍,使学生可以有针对性地改善代码风格

5、; 通过对国际上流行的开源编译系统GCC的分析和实验,能够达到能够独立分析和改进编译系统软件的水平,具有独立承担科研任务的能力。 建立计算机系统的概念,覆盖多门课程交界的地方 以GCC项目为例,熟悉自由软件开发方法和项目实例,教学方式,Education Learning (联合国教科文组织) 有组织有目的的知识传授活动 能够导致学习的交流活动 多种方式、有效交流 课堂讲解 课堂讨论 教学实验 实验讨论 实例介绍 围绕实例 给出参考文档,关于教材,编译原理的课程比较多,相关教材也很多,有翻译本、影印本和编著本,其中具有权威性的教材国外为:Compilers Principles,Techniq

6、ues,and Tools Advanced Compiler Design and Implementation 国内国防工业出版社程序语言编译原理、清华大学出版社编译原理等。 机械工业出版社的编译原理课程设计是一本针对编译实践教学的好教材,该书以开源的JAVA编译器GJC为实验环境,GJC是一个用JAVA语言实现的JAVA编译器,规模不大且符合软件工程规范。但是和目前业界对编译人才需求有较大的差距。 编写专门教材,普通高等教育“十一五”国家级规划教材(电子教案),辅助教材,“编译原理”相关教材 英文版:龙书、虎书、鲸书 中文版:清华大学、国防科技大学、科技大学、北京大学 “An Intro

7、duction to GCC for the GNU Compilers Gcc and G+” by Brian Gough 开源文档,http:/gcc.org “The Use of The GNU Compilers” 开源文档,http:/gcc.org “The Internals of The GNU Compilers” 开源文档,http:/gcc.org 课程主页相关英文原版和翻译文档 开源文档,http:/ Internals V4.5 翻译,课程计划,内容安排原则:遵循科研工作的一般活动规律 1)收集、查阅相关文献资料 2)熟悉工具和工作对象 3)提出问题、初步方案并进

8、行可行性评估 4)实际研究、开发,根据实际情况修改方案,不断推进 5)测试和评估 6)总结报告,课程内容,课程内容(一),讲解1:通用编译系统介绍 Hello.c,从源代码到可执行程序 1)编译各阶段的功能 2)动态连接与静态连接 3)熟悉BIN Utilities工具的使用 演示1:Hello World 从C到可执行文件 gcc使用演示 binutilis使用,课程内容(一),实验0:分组和BLOG注册 3人一组(24),请注意选课情况,和操作系统专题训练、嵌入式系统课有共享实验。 在课程BLOG网站注册帐号并建立小组页面,熟悉该站点使用 实验1:熟悉GCC的行为(2周) 使用GCC编译特

9、定的软件 熟悉使用GCC的各种统计功能 比较不同选项对编译结果的影响 为特定语言、特定体系结构构造交叉编译系统,课程Blog注册,课程内容(二),讲解2:Linker and Loader 1)Linker介绍 2)目标文件与重定位 3)可执行文件及其加载 4)相关工具系统介绍 作业1: 编译相关的学术会议调研(2周) 利用互联网资源,小组为单位搜集POPLPLDICCCGOLCTES等重要编译相关国际会议最近3年的资料,每个小组针对某一年的某一个会议,写出包括研究方向特点、人员和内容分布,发展趋势评价,深入阅读该会议中某一篇,给出该论文的阅读评价,35千字,上载到课程的BLOG网站上,会议名

10、称年份选读论文不允许完全重复。,课程内容(三),讲解3:GCC介绍 深入GCC,从源代码到汇编 1)GCC的演变,GCC、GPL与自由软件开发方法 2)交叉编译 3)GCC的组织结构 :前端、中间表示、后端 4)相关编译系统介绍 作业2:GCC文档翻译升级整理(2周) the use of the GNU compilers the internals of the GNU compilers 每个小组升级其中一部分,原始内容参看课程的BLOG网站以前版本(不允许重复,原则上每个小组对应原有一个小组的内容)。,课程内容(四),讲解4: GCC Tree 1)GCC前端分析 2)GCC Tree

11、的基础定义 3)Tree code相关的定义 4)Tree node内容相关的数据结构 5)Tree的外部文件表示 6)如何为GCC增加新的语言支持 7)GCC源代码级调试跟踪 讲解5: GCC中间表示RTL 1)RTL综述 2)RTL的内部数据结构表示 3)RTL的外部线性文本表示,课程内容(六),讲解6: GCC 后端 1)GCC后端分析 2)GCC后端主要配置文件 3)如何为GCC增加新的体系结构支持 讲解7: 编译研究介绍和评价 1)同学主讲(58分钟) 2)会议论文介绍,发展趋势讨论,作业1、2 3)大作业开题进展报告 讲解8:大作业答辩 1) 教师、助教、自选实验各组代表组成评委会

12、 2) 各组现场介绍、演示,组内随机抽取主讲 讲解9:外请报告,关于大作业,来源: 1) 同学自己设计,或者其他课程的相关任务 2) 参加自由软件开发,完成一个新的功能或者特性 3) 教师结合课程情况,专门设计任务 大致安排: 由同学在第1周开始自行提出,并经过和教师讨论确定 初步安排:国庆之后选题,第7周开题报告(1页纸),每2周进展汇报讨论(1页纸),第13/14/16周汇报(110,100,90加权) 要求分组独立完成实验题目并通过基准测试用例,提交源代码和实验报告软件,并能够演示编程结果,做1015分钟的简要报告。采用GPL发布。 关键: 和课程相关,能够给同学以锻炼,工作量适中 具有较好的可操作性,课程考核要求,参加课堂讨论,提出自己的观点、实验题目,小组协调、活跃,分数: 40分 2次书面作业,完整,准确: 210分 大作业,40分 要求: 各组独立完成,严禁抄袭,一旦发现,成绩归零,总结:课程特点,将程序语言编译原理和技术应用于实践,注重动手能力的培养 通过同学提出自选实验题目来培养创新精神; 注重多学科多课程内容交叉 操作系统 系统结构 程序设计语言,Q&A,Thank you,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号