第1章+引论(编译程序概述)ppt课件.ppt

第1章+引论(编译程序概述)ppt课件.ppt

ID:59020601

大小:731.00 KB

页数:41页

时间:2020-09-26

第1章+引论(编译程序概述)ppt课件.ppt_第1页
第1章+引论(编译程序概述)ppt课件.ppt_第2页
第1章+引论(编译程序概述)ppt课件.ppt_第3页
第1章+引论(编译程序概述)ppt课件.ppt_第4页
第1章+引论(编译程序概述)ppt课件.ppt_第5页
资源描述:

《第1章+引论(编译程序概述)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理《编译原理》课程组计算机工程学院编译原理教学内容第一章引论第三章文法和语言第四章词法分析第五章自顶向下分析方法第六章自底向上优先分析法第七章LR分析法第八章语法制导翻译与中间代码生成第九章符号表第十章目标程序运行时的存储组织第十一章代码优化第十二章代码生成考核方式考试成绩:70%平时:30%【学习目标】明确编译程序的功能及其在计算机系统中的作用。了解编译程序的结构,以及将源程序编译为目标程序的各个过程。明确编译方式与解释方式的异同。【学习要求和学习方法】对于该课程的学习从理解原理、掌握技术到自己设计和实现一个完整的编译程序,难

2、度很大,因为课程内容广泛,涉及到数据结构、操作系统、离散数学及语言理论,是综合性很强的一门课程。从抽象形式语言与自动机的概念,到具体构造实现的复杂性,要理解原理掌握技术。第一章引论(编译程序概述)1.1什么是编译程序1.2高级语言程序处理的两种方法1.3编译过程和编译程序的结构1.4编译技术在其它软件中的应用1.1什么是编译程序一、编译程序定义语言和翻译:语言是人类交流思想和信息的工具。从自然语言来说,世界上存在着许多种语言,各国之间要交流信息,就要有各种语言之间的翻译。编译程序:编译程序就是一个语言的翻译程序,是把一种语言(称源语言

3、)书写的程序翻译成另一种等价功能语言(称目标语言)的程序。换句话说,编译是指把一种用源语言表示的算法转换到另一种等价的用目标语言表示的算法。二、编译程序的必要性:用机器语言书写程序,不仅不易学,而且可调试性、可读性、可维护性和结构性都很差,开发时间也很长。因此,编译程序最初的定义是把一种高级程序设计语言的源程序(面向人的)翻译成另一种等价的低级程序设计语言(面向硬件的)即机器语言或汇编语言。三、编译程序的功能S:源语言(程序)O:目标语言(程序)I:实现语言SOI用T型图表示编译程序高级程序设计语言(源语言)机器语言(目标语言)编译程

4、序种类随着计算机及其应用的发展,出现了各种应用更方便的高级语言,如:FORTRAN、PL/1、ALGOL60、COBOL、PASCAL、Ada、LISP、C、C++、JAVA等。早期开发的软件需转换,因此,编译程序不仅是高级语言翻译成机器语言,广泛地讲:编译程序高级语言低级语言高级语言高级语言高级语言中间语言中间语言低级语言例:高级语言高级语言FORTRANPASCALCJAVAPL/1C++COBOLCAdaJAVA当功能相同时,不同语言之间的区别,只是语言的词法、语法和语义规则形式不同。运行环境也可能不同。例:计算圆面积

5、C程序:functioncircle();{intr;floats;scanf(“%d”,&r);s=3.1416*r*r;printf(“%d”,s);}Pascal程序:procedurecircle;varr:integer;s:real;beginread(r);s:=3.1416*r*r;write(s);end;从计算机系统的角度编译程序是一种软件,是系统软件。通常认为系统软件是居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。系统软件和具体的应用领域无关,如编译系统和操作系统等。编译程序也是一种语

6、言处理系统即把软件语言书写的各种程序处理成可在计算机上执行的程序。四、编译程序在计算机系统中的所在层编译程序在计算机系统中的所在层翻译程序Translator汇编程序Assembler编译程序Compiler解释程序Interpreter高级语言1.2高级语言程序处理的两种方法汇编语言编译:按源程序的实际输入顺序,处理程序语句,得到可执行的目标程序。解释:按源语言的定义边解释边执行,不产生目标程序。优点:交互方便,节省空间。缺点:因对源程序的循环语句部分要反复解释执行效率低共同点:都需进行词法、语法、语义分析。可比喻为:编译---笔译

7、(产生目标程序)解释---口译(不产生目标程序)编译途径(A)源程序运行程序目标程序编译程序结果初始数据编译阶段运行阶段1、编译途径编译途径(B)源程序运行程序目标代码编译程序结果初始数据编译阶段运行阶段汇编语言汇编程序汇编阶段源程序结果解释程序初始数据直接解释执行、中间代码与编译的主要区别:解释程序不产生目标代码返回2、解释途径两种途径的使用1、纯粹的解释或者编译是两个极端情况,很少使用,一般采用两种技术的结合2、采用哪种技术是由被实现的语言和实现环境决定编译:C,C++,Pascal等解释:LISP,Prolog等Java不像LI

8、SP更C++,但由于运行在网络环境故为解释3、发展趋势:尽量采用编译技术1.3编译过程概述和编译程序的结构一、编译过程从概念上来讲,一个编译程序的整个工作过程是划分成若干个阶段进行的,每个阶段将源程序的一种表示形式转换成

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

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

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