编译原理第01章编译程序概述

编译原理第01章编译程序概述

ID:39632108

大小:388.00 KB

页数:38页

时间:2019-07-07

编译原理第01章编译程序概述_第1页
编译原理第01章编译程序概述_第2页
编译原理第01章编译程序概述_第3页
编译原理第01章编译程序概述_第4页
编译原理第01章编译程序概述_第5页
资源描述:

《编译原理第01章编译程序概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理李红军E-mail:tech.lihj@gmail.comTel:1388078610510/7/20211/38课程简介课程内容介绍编译器构造的一般原理和基本实现方法介绍的理论知识:形式语言和自动机理论、语法制导的定义和属性文法、类型论等强调形式描述技术和自动生成技术强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不偏向于某种源语言或目标机器10/7/20212为什么要学习编译原理是计算机学科中一个非常成功的分支蕴涵着计算机学科中解决问题的思路、抽象问题和解决问题的方法有利于加深对

2、程序语言的理解是一个很好的软件工程实例,所介绍的概念和技术能应用到一般的软件设计之中在软件逆向工程、程序理解和软件安全等方面有着广泛的应用。10/7/20213教材和参考书教材《程序设计语言编译原理》.陈火旺著,国防科技大学出版社。参考书COMPILERCONSTRUCTION-PrinciplesandPractice.KennethC.Louden著(SanJoseStateUniversity)《编译原理》.(美)阿霍(Aho,A.V.)等著.李建中等译.北京:机械工业出版社,2003.8《编译

3、原理考研辅导教程》.电子科技大学出版社10/7/20214课程要求目标:相互交流,共同进步课时:48课程学分:3先修课程:《离散数学》《数据结构与算法》《程序设计语言》考核:考试(70%)+平时(30%)作业:每章至少1题10/7/20215编译程序历史(国外)1957年,IBM的JohnBackus带领的一个研究小组设计出了Fortran语言及其编译器。与此同时,NoamChomsky开始了他对自然语言结构的研究,发现ChomskyHierarchy。70年代后期和80年代早期,编译器其它部分的生成

4、自动化。这些尝试并未取得多少成功。在九十年代,作为GNU项目或其它开放源代码项目的一部分,许多免费编译器和编译器开发工具被开发出来。10/7/20216编译程序历史(国内)60年代初期,董韫美院士和杨芙清院士的研究组开发国产机上的ALGOL和FORTRAN编译器。改革开放前,研制国产计算机,包括大型机和高性能计算机(如向量机、并行机),相应的也在研制高级语言编译器。90年代以来中科院计算所张兆庆教授研究组(ACTGroup)先后开发了共享内存多处理机的并行识别器,分布式内存多处理机的并行识别器,SIM

5、D芯片和VLIW芯片的并行优化C编译器。将编译技术与图形学结合,ACTGroup还推出了集成化、可视化的并行编程环境。10/7/20217编译程序现状并行机的并行编译技术基于GCC(GNUCCompiler)生成面向特定芯片的编译器工作反编译技术10/7/20218第一章编译程序概论什么是编译程序本章重点介绍编译程序的基本概念。编译的过程编译程序的结构10/7/20219程序设计语言计算机可以直接接收的语言是机器语言,由二进制(0、1序列)组成,唯一可以在机器上直接执行的语言。难读、难写、与硬件环境密

6、切相关。汇编语言用助记符表示指令的操作码。高级程序设计语言摆脱了对硬件的依赖,易读、易写、便于算法交流。10/7/2021101.1什么是编译程序翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成等价的另一种语言(称作目标语言)的程序(目标程序)。高级语言程序机器语言程序翻译程序10/7/2021111.1什么是编译程序编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。源程序高级语言程序编译程序目标程序汇编语言或者机器语言程序10/7

7、/202112程序运行阶段第一种情况:源程序编译程序机器语言目标程序初始数据运行系统结果编译阶段运行阶段高级语言程序10/7/202113第二种情况:源程序编译程序机器语言目标程序初始数据运行系统结果编译阶段运行阶段汇编程序汇编语言目标程序汇编阶段高级语言程序程序运行阶段10/7/2021141.2编译过程和编译程序的基本结构将英文句子“Iwishyousuccess”翻译成中文句子的大致过程是:词法分析语法分析语义分析修饰工作翻译成文10/7/202115编译过程编译程序的工作过程:五个阶段词法分析

8、语法分析中间代码生成代码优化目标代码生成10/7/202116floatr,h,s;s=2*3.1416*r*(r+h);例如计算圆柱体表面积的程序片断如下:编译过程10/7/202117词法分析阶段的任务是对构成源程序的字符串从左到右进行扫描和分解,根据语言的词法规则,识别出一个一个具有独立意义的单词(也称单词符号,简称符号)。1.词法分析10/7/202118词法规则是单词符号的形成规则,它规定了哪样的字符串构成一个单词符号。词法规则floatr,h

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。