编译原理-第一章概述

上传人:宝路 文档编号:48366856 上传时间:2018-07-14 格式:PPT 页数:133 大小:1.40MB
返回 下载 相关 举报
编译原理-第一章概述_第1页
第1页 / 共133页
编译原理-第一章概述_第2页
第2页 / 共133页
编译原理-第一章概述_第3页
第3页 / 共133页
编译原理-第一章概述_第4页
第4页 / 共133页
编译原理-第一章概述_第5页
第5页 / 共133页
点击查看更多>>
资源描述

《编译原理-第一章概述》由会员分享,可在线阅读,更多相关《编译原理-第一章概述(133页珍藏版)》请在金锄头文库上搜索。

1、南京邮电大学计算机学院My E-mail: My E-mail: 蒋凌云教材:编译技术原理及其实现方法王汝传 编著第一章 概 述1.1 程序设计语言一、语言的概念和分类二、程序设计语言简述 1.2 翻译程序一、汇编程序 二、解释程序三、编译程序1.3 编译程序简史一、汇编语言阶段二、高级程序语言出现三、编译程序理论开始确定四、编译程序技术方法进一步发展1.4 编译过程简述一、编译步骤二、编译过程简述三、趟程(遍) 1.5 编译程序的生成一、编写编译程序的一般方法二、编译程序开发技术三、编译程序的自动生成第一章 概 述1.1 程序设计语言 一、语言的概念和分类1.语言概念2.语言的分类 二、程序

2、设计语言简述1.机器语言(第一代语言)2.汇编语言(第二代语言:50年代初期出现)3.高级程序设计语言(第三代语言:50年代中期 提出)4.超高级程序设计语言(第四代语言)1.1 程序设计语言 一、语言的概念和分类1.语言概念语言是人类所特有的用来表达意思、 交流思想的工具,是一种特殊的社会现象, 由语音、词汇、语法、语义构成一个系统。 语言包括口语和书面形式。第一章 概 述第一章 概 述1.1 程序设计语言 一、语言的概念和分类1.语言概念2.语言的分类 二、程序设计语言简述1.机器语言(第一代语言)2.汇编语言(第二代语言:50年代初期出现)3.高级程序设计语言(第三代语言:50年代中期

3、提出)4.超高级程序设计语言(第四代语言)第一章 概 述1.1 程序设计语言 一、语言的概念和分类1.语言的分类自然 语言数理 语言程序 设计语言人与人之间交流 信息的一种语言 动物之间通过动 物语言交流信息以数理逻辑、集合论 和统计数学来描述的 一种语言。例如,用 计算机进行几何定理 的证明就得以数理语 言形式进行描述是人和计算机进行信息交流的一种 语言,它遵循一定的语法和语义的 规则,而编译程序的功能正是 1)讨论语法,检查程序正确性 2)讨论语义,生成目标代码第一章 概 述1.1 程序设计语言 一、语言的概念和分类1.语言概念2.语言的分类 二、程序设计语言简述1.机器语言(第一代语言)

4、2.汇编语言(第二代语言:50年代初期出现)3.高级程序设计语言(第三代语言:50年代中期 提出)4.超高级程序设计语言(第四代语言)电子计算机之父John von NeumannJohn von Neumann 冯冯诺依曼诺依曼1949 EDSAC1949 EDSAC存储程序工作原理计算机的两个基本能力:一是能够存储程序,二是能够自 动地执行程序。计算机是利用“存储器”(内存)来存放所要执行的程序的 ,而称之为CPU的部件可以依次从存储器中取出程序中的每一条指令,并加以分析和执行,直至完成全部指令任务 为止。冯诺依曼计算机1.1 程序设计语言二、程序设计语言简述1.机器语言(第一代语言)随着

5、计算机科学技术发展,程序设计语言也 由低级到高级逐步地发展起来。定义:由机器指令构成的语言称机器语言, 即用二进制编码组成。如 01110101机器指令:是二进制编码,基本上是由操作 码和地址码两部分组成,所以要用机器语言编 程序一定要知道多种不同的操作码。指令系统:一种计算机所能识别的一组不同 指令系统1.1 程序设计语言二、程序设计语言简述1.机器语言(第一代语言)特点:u 费时费事u 难懂容易错u 只能在一种型号计算机上运行u 可以直接在计算机上运行第一章 概 述1.1 程序设计语言 一、语言的概念和分类1.语言概念2.语言的分类 二、程序设计语言简述1.机器语言(第一代语言)2.汇编语

6、言(第二代语言:50年代初期出现)3.高级程序设计语言(第三代语言:50年代中期 提出)4.超高级程序设计语言(第四代语言)1.1 程序设计语言二、程序设计语言简述2.汇编语言(第二代语言:50年代初期出现)定义:用容易记忆的符号来代替机器指令中 操作码和地址码的一种语言.如:ADD 代表“+” SUB代表”-” MOV代表”传递”特点: 优点(1)程序直观容易阅读;(2)编 程工作量相对小;缺点(1)只能在一种型号 机器上运行;(2)不能直接在计算机上运行。第一章 概 述1.1 程序设计语言 一、语言的概念和分类1.语言概念2.语言的分类 二、程序设计语言简述1.机器语言(第一代语言)2.汇

7、编语言(第二代语言:50年代初期出现)3.高级程序设计语言(第三代语言:50年代中期 提出)4.超高级程序设计语言(第四代语言)1.1 程序设计语言二、程序设计语言简述3.高级程序设计语言(第三代语言:50年代中期提出)机器语言和汇编语言都与具体的计算机相关 联,计算机类型一旦改变,程序就得重写。于 是就有了高级程序设计语言的出现1956年,第一个高级程序设计语言 FORTRAN(FORmulaTRANslator)正式开始使用 。定义:高级程序设计语言是一种面向过程或 者面向对象的语言,不面向机器,用一些符号 或者数字对求解的问题或者现实世界进行描述 。1.1 程序设计语言二、程序设计语言简

8、述3.高级程序设计语言(第三代语言:50年代中期提出)高级语言的分类(按发展时期),可以分 为四个阶段:(1)初始时期;(2)发展时期 ;(3)结构程序设计时期;(4)多范型程序 设计语言时期。高级语言初始时期 FORTRAN语言 (FORmula TRANslator 公式翻译 ) 1954年由美国IBM公司研制,主要用于科学计算,它首先 提出“变量”的概念,奠定了高级程序设计语言名字理论基 础。 ALGOL语言 (ALGOrithmic Language 算法语言) 1960年原西德应用数学和力学学会研制出来, 主要用于科 学计算,它第一次采用形式化语法描述体系 BNF范式 (Backus

9、 Normal Form巴科斯瑙尔范式)。ALGOL语言在 60、70年代广泛使用,后被PASCAL代替。 COBOL语言(COmmon Business Oriented Language 面 向 商业通用语言) 1959年由美国国防部研制,主要用于商业数据和事务处理 ,自80年代后数据库技术的广泛应用使COBOL的使用受 到限制。高级语言发展时期(1/3)在60年代初期编译技术与理论研究受到高度重视,并得到发展,这也促使了多种新程序设计语言的研 制。除了若干普通过程性程序设计语言外,还研制 了一些其它风格的程序设计语言如:LISP、APL等。高级语言发展时期(2/3)60年代初由美国麻省

10、理工学院研制,主要 用于人工智能定理证 明、谓词演算等领域。 纯LISP语言是完全非冯诺依曼风格的。LISP语言(LISt Processor 表处理)1962年由IBM公司研制,它是一种交互式 通用语言。APL语言(A Progr -amming Language)它是面向字符串符号的 语言,在60年代由美国 贝尔实验室研制,主要 用于字符串的处理。SNOBOL语言(String Oriented Symbol Lang -uage面向字符串符号 的语言)高级语言发展时期(3/3)1964年由IBM研制,原 想使之成为一个真正 通用的全能语言,包含 不同程序设计风格。 最终因太复杂而未能 成

11、功。PL/1语言(Pogra -mming Language)1967年由挪威计算机 中心研制,是一种仿真问题语言,它首先提出 类的概念,影响了 C+/Smalltalk等语言。SIMULA语言(仿真语言)1964年由美国达特茅斯 大学研制,BASIC语言 不仅用于科学计算,还 用于事务处理,且具有 简单易学的特点。是 许多大中专院校的启蒙 教学语言。BASIC语言(Begin -ner All-purpose Sybolic Instructor Code 初学者通用符指令码)结构程序设计时期(1/3)结构化程序设计思想,即任何程 序都可以用顺序、选择、循环这 三种结构语句来构造。从1968

12、年 开始,不同的结构程序设计语言 陆续问世,如:PASCAL、Ada 、C等结构程序设计时期(2/3) PASCAL语言 以法国数学家PASCAL命名,在70年代初由瑞士工业大学 NWirth创建。以前的数据结构就是用PASCAL来写程序的, 在这里就不再详细介绍了。 MODULA-2语言 它是一种模块化语言,在70年代后期由Wirth在提出了 PASCAL语言后不久实现的。它支持多道程序设计和模块 化程序设计,并引进了进程的概念。 Ada语言 以著名数学家、第一位程序员命名。1978年由美国国防部 设计。可靠性、易维护性和高效性使它适合在军事、空间 武器控制、光端技术、卫星、火箭等领域应用。

13、我国国防 科工委就使用该语言。结构程序设计时期(3/3) C语言 取自于BCPL语言第二个字母,于1972-1973年由美国贝尔实 验室研制。C语言具有高级语言和低级语言的特征,应用十 分广泛。多范型程序设计语言时期(1/4)在高级程序设计语言问世几十年内,出现 了LISP、APL、SNOBOL等非过程式程序 设计语言,但当时仍然是过程性语言的天 下,自从1987年图灵奖获奖讲演中提出传 统过程性语言的不足后,人们把注意力转 向其它风格、其它范型程序设计语言的研 究,如:函数式语言、逻辑式语言、面向 对象式语言和关系式语言等多范型程序设计语言时期(2/4) 函数式语言也称作用式语言,纯函数式语

14、言中不使用赋 值语句,其语法形式类似于数学上的函数,典 型函数式语言,如LISP、APL、ML等。 逻辑式语言也称说明式语言,基于规则式语言,它以逻 辑程序设计思想为理论基础,主要核心是事实 规则与推理机制,其代表语言是 PROLOG(PROgramming in LOGic),PROLOG 语言主要用于人工智能,于1972年由法国马塞 大学人工智能研究中心开发。多范型程序设计语言时期(3/4) 面向对象式语言面向对象式语言与传统过程性语言的主要区别在于:在传 统过程式语言中数据以及处理它们的子程序互不相关,而在面 向对象式语言中则把这两者统一作为对象封装在一起处理。面 向对象式语言的一个重要

15、概念是类。smalltalk、C+、java、c# 等都是面向对象式语言。面向对象语言的特点:a. 抽象性:即对复杂世界简明表示。b. 封装性:即将数据和对数据的操作结合在一起。c. 继承性:将类体系看成层次结构,下层类(子类)沿用上层类 (父类)的所有特性。d. 多态性:即一个名字具有多种语义。如:只要定义一个 abs()函数,就可分别用来求整型、实型、双精度型数据的绝对 值。e. 消息驱动:通过传递消息来实现对象间联系以及完成动作 。在结构化程序设计中是通过参数传递实现的。多范型程序设计语言时期(4/4) 网络语言随着Internet网的发展,要求能够在网络上运行各种不同 的高级程序设计语

16、言,为此人们研制出各种不同的语言如: JAVA、PERL、C#JAVA语言是由SUN公司JAVA语言开发小组于90年代初研制出来,取名于印 度尼西 亚产咖啡的岛屿名爪哇(java)PERL语言 是由Larry Wall于87年创造的一种网络上的语言,Larry Wall现就职 于 OReilly公司,PERL是“Practical Extraction and Report Language”( 实用摘录与报告语言) C#语言 是由微软公司2000年研制的,C语言是从C/C+语言继承发展起 来的,是一种比C/C+语言更加高级的编程语言,它是在.NET开发 环境下的网络语言。1.1 程序设计语言二、程序设计语言简述3.高级程序设计语言(第三代语言:50年代中期提出)高级程序

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

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

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