版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编译原理,编译原理,南京邮电大学计算机学院,我的电子邮件:蒋凌云,教材:编译原理与实现方法,王汝川主编,第一章是概述。1.1编程语言1。语言的概念和分类。编程语言简介1.2翻译程序1。汇编程序2。解释程序3。编译程序1.3编译程序1的简史。汇编语言第二阶段。高级编程语言的出现。编译理论开始被确定。编译器技术和方法得到进一步发展。1.4编译过程简述1。编译步骤2。编译过程的简要描述。旅程(通过)1.5代编译器1。编译编译器2的一般方法。编译器3的开发技术。编译器的自动生成。第1章总结,1.1编程语言1。语言概念和分类1。语言概念2。语言分类2。编程语言简介1。机器语言(第一代语言)2。汇编语言(
2、20世纪50年代初出现的第二代语言)3。高级编程语言(20世纪50年代中期提出的第三代语言)4。超级高级编程语言(第四代语言)。1.1编程语言1。语言的概念和分类1。语言概念语言是人类用来表达意义和交流思想的独特工具。它是一种特殊的社会现象,由语音、词汇、语法和语义组成。语言包括口头和书面形式。第一章是概述,第一章是概述,1.1编程语言1。语言概念和分类1。语言概念2。语言分类2。编程语言简介1。机器语言(第一代语言)2。汇编语言(20世纪50年代初出现的第二代语言)3。高级编程语言(20世纪50年代中期提出的第三代语言)4。超级高级编程语言(第四代语言)1.1编程语言1。语言的概念和分类。语
3、言的分类,自然语言,数学语言,程序设计语言,一种人与人之间交换信息的语言,一种动物通过动物语言交流信息的语言,用数学逻辑,集合论和统计数学来描述。例如,计算机对几何定理的证明可以用数学语言的形式来描述,这是一种人与计算机之间进行信息交流的语言。它遵循一定的语法和语义规则,编译器的功能是:1)讨论语法和检查程序正确性;2)讨论语义并生成目标代码。1.1编程语言1。语言概念和分类1。语言概念2。语言分类2。编程语言简介1。机器语言(第一代语言)2。汇编语言(20世纪50年代初出现的第二代语言)3。高级编程语言(20世纪50年代中期提出的第三代语言)4。超级高级编程语言(第四代语言)约翰冯诺依曼冯诺
4、伊曼,1949 EDSAC,存储程序的工作原理计算机的两个基本能力:一个是存储程序,另一个是自动执行程序。计算机使用“内存”(内部存储器)来存储要执行的程序,一个叫做中央处理器的组件可以依次从内存中取出程序中的每一条指令,对其进行分析和执行,直到完成所有指令任务。冯诺依曼计算机,1.1编程语言2。编程语言简述1。机器语言(第一代语言),随着计算机科学和技术的发展,编程语言逐渐从低级发展到高级。定义:由机器指令组成的语言称为机器语言,它由二进制代码组成。例如,01110101机器指令是一个二进制代码,它基本上由两部分组成:操作码和地址码。因此,要用机器语言编程,你必须知道各种不同的操作代码。指令
5、系统:可被计算机识别的一组不同的指令系统,1.1编程语言2。编程语言简述1。机器语言(第一代语言),其特点是耗时、麻烦、容易理解和容易出错。它只能在一种类型的计算机上运行,并且可以直接在计算机上运行。第一章是概述。1.1编程语言1。语言概念和分类1。语言概念2。语言分类2。编程语言简述1。机器语言(第一代语言)2。汇编语言(20世纪50年代初出现的第二代语言)3。高级编程语言(20世纪50年代中期提出的第三代语言)4。超级高级编程语言(第四代语言)。1.1编程语言2。编程语言简介2。汇编语言(第二代语言出现在20世纪50年代早期),它被定义为用容易记忆的符号代替机器指令中的操作码和地址码的语言
6、。例如,ADD代表“SUB代表“-”MOV代表“变速器”。优点:(1)程序直观易读;(2)编程工作量相对较小;缺点(1)它只能在一种类型的机器上运行;(2)它不能直接在计算机上运行。第一章概述,1.1编程语言1。语言概念和分类1。语言概念2。语言分类2。编程语言简介1。机器语言(第一代语言)2。汇编语言(20世纪50年代初出现的第二代语言)3。高级编程语言(第三代语言是在20世纪50年代中期提出的)4。超高级编程语言1.1编程语言2。编程语言简介。高级编程语言(第三代语言是在20世纪50年代中期提出的),机器语言和汇编语言都与特定的计算机有关。一旦计算机类型改变,程序必须重写。然后出现了高级编
7、程语言。1956年,第一个高级编程语言FORTRAN(公式翻译器)被正式使用。定义:高级编程语言是一种面向过程或面向对象的语言,它不是面向机器的,使用一些符号或数字来描述问题或现实世界。1.1编程语言2。编程语言简述3。高级编程语言(20世纪50年代中期由第三代语言提出),高级语言的分类(按发展时期)可分为四个阶段:(1)初始阶段;(2)发展时期;(3)结构规划期;(4)多范式编程语言时期。在高级语言的初始阶段,FORTRAN语言(FOrmular TRANSLATOR FOrmular Translation)是由美国IBM公司于1954年开发的,主要用于科学计算。它首先提出了“变量”的概念
8、,为高级编程语言的名称奠定了理论基础。ALGOL(算法语言算法语言)是由前西德应用数学和力学学会在1960年开发的。它主要用于科学计算。它首次采用了形式语法描述系统BNF范式(Backus Normal Form Bacos Nauer范式)。ALGOL语言在20世纪60年代和70年代被广泛使用,并被PASCAL所取代。COBOL(CommOn Business Oriented Language)是美国国防部于1959年开发的,主要用于业务数据和事务处理。自20世纪80年代以来,数据库技术的广泛应用限制了COBOL的使用。高级语言发展期(1/3)、高级语言发展期(2/3)、高级语言发展期(3
9、/3)和结构化程序设计期(1/3)。自1968年以来,不同的结构编程语言相继出现,如PASCAL、Ada、C等。在结构编程时期(2/3),PASCAL以法国数学家PASCAL的名字命名,并由瑞士技术大学的NWirth在20世纪70年代早期创建。前面的数据结构是用PASCAL编写的,所以这里不再详细描述。模-2是一种模语言,它是在PASCAL于20世纪70年代末提出后不久由Wirth实现的。它支持多通道编程和模块化编程,并引入了过程的概念。Ada语言是以著名数学家和第一个程序员的名字命名的。由美国国防部于1978年设计。可靠性、可维护性和高效率使其适用于军事、空间武器控制,这种语言是中国国防科学
10、技术委员会使用的。在结构程序设计(3/3)时期,C语言是从BCPL语言的第二个字母派生出来的,由贝尔实验室于1972-1973年开发。c语言具有高级语言和低级语言的特点,应用广泛。在多范式编程语言(1/4)时期,非过程编程语言如LISP、APL和SNOBOL出现在高级编程语言出现后的几十年里,但它们在当时仍然是过程语言的世界。自1987年图灵奖获奖演讲提出传统过程语言的缺点以来,人们将注意力转向了对其他风格和范式编程语言的研究。如函数语言、逻辑语言、面向对象语言和关系语言等。在多范式编程语言(2/4)时期,函数语言也称为动作语言,而纯函数语言不使用赋值语句,其语法形式类似于数学函数,如LISP
11、、APL、ML等。逻辑语言,也称为声明性语言,是基于规则语言。它基于逻辑编程的思想,其主要核心是事实规则和推理机制。其代表语言是PROLOG(PROgramming in LOGic),主要用于人工智能,由法国马赛大学人工智能研究中心于1972年开发。在多范式编程语言(3/4)时期,面向对象语言与传统过程语言的主要区别在于,在传统过程语言中,数据和处理它们的子程序互不相关,而在面向对象语言中,它们被当作对象一起处理。面向对象语言的一个重要概念是类。Smalltalk、C、java和c#都是面向对象的语言。面向对象语言的特征:抽象:复杂世界的简洁表示。封装:数据和数据操作的结合。继承:阶级系统被
12、认为是一个等级结构,下层阶级(子类)遵循上层阶级(父类)的所有特征。多态性:也就是说,一个名字有多种语义。例如,只要定义了一个abs()函数,它就可以用来分别查找整数、实数和双精度数据的绝对值。e .消息驱动:通过传递消息实现对象之间的连接和完整的动作。它是通过结构化编程中的参数传递来实现的。在多范式编程语言(4/4)时代,随着互联网的发展,网络语言要求各种高级编程语言能够在网络上运行。为此,人们开发了各种语言,如JAVA、PERL和C# JAVA,它们是由SUN公司的JAVA语言开发小组在20世纪90年代初开发的。以印尼咖啡生产命名的岛屿名(java) PERL,是拉里沃尔在87年创造的一种
13、网络语言。拉里沃尔现在为奥雷利公司工作。PERL是“实用抽取和报告语言”。C#语言是微软公司在2000年开发的。C语言是从C/C语言发展而来的。它是一种比C/C语言更高级的编程语言,并且是一种下的网络语言。NET开发环境。1.1编程语言2。编程语言简介。高级编程语言(20世纪50年代中期由第三代语言提出),具有以下特点:1)直观、易写、易读、工作量小2)独立于特定的机器3)便于程序通信4)不能直接在计算机上运行,只能由编译器编译成机器语言后运行。1.1编程语言2。编程语言简介4。超高级编程语言(第四代语言)是20世纪80年代出现的一种非过程编程语言。第三代编程语言要求程序员有很高的技能,不仅要
14、告诉计算机做什么,还要告诉计算机怎么做,而第四代语言只需要指出要做什么。在超高级程序设计语言时期,(1)定义只需要指出问题、输入数据和输出形式,并且不需要描述算法和计算过程就能得到输出结果的语言。第四代语言主要包括:1)数据库及其查询语言,如SQL;2)应用程序生成器;3)可执行规范语言的第四代语言是ADF和MAPPER。(2)特点:1)语言功能强,效率高,使用方便;2)开发的应用系统易于修改和维护;3)复杂系统,不仅需要编译,还需要生成程序。编程语言概述,机器语言(第一代)低级语言汇编语言(第二代)早期阶段:FORTRAN,ALGOL,COBOL开发阶段:LISP,APL,SNOBOL,PL
15、/1,(第三代)SIMULA,BASIC编程语言高级语言结构阶段:PASCAL,MODULA-2,Ada,C函数公式:ML,LISP,APL多范式时期的逻辑公式:PROLOG面向对象:Smalltalk,C,Java(第四代)SQL网络:Java,Perl,C#超高级语言的概念和分类。编程语言简介1.2翻译程序1。汇编程序2。解释程序3。编译程序1.3编译程序1的简史。汇编语言第二阶段。高级编程语言的出现。编译理论开始被确定。编译器技术和方法得到进一步发展。1.4编译过程简述1。编译过程简述2。编译过程简述3。旅程(通过)1.5代编译器1。编译编译器2的一般方法。编译器3的开发技术。编译器1的自动生成。概述,1.2翻译程序1。汇编程序2。翻译3。编译器。1.2翻译程序在前一节中,我们介绍了机器语言、汇编语言和高级编程语言,我们知道只有用机器语言编写的程序才能被计算机识别和运行。为了使用汇编语言和高级编程语言编写的程序被计算机所接受,它们必须被转换成特定的机器语言程序。我们将介绍的汇编器、解释器和编译器是完成这种转换功能的翻译程序。翻译器是将一个语言程序(称为源程序)转换成另一个等价语言程序(称为目标程序)的程序。用源语言编写源程序的语言称为源语言,用目标语言编写目标程序的语言称为目标语言。第一章概述:1.2翻译程序一、汇编程序二、解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准化PBL案例库在内科规培中的应用
- 极端高温下血液成分分离速度优化
- 护士长年终述职报告
- 河北省邯郸市大名县2025-2026学年八年级下学期期中考试道德与法治试卷(含答案)
- 26年骨病灶疗效评估规范指引
- Unit 5.Clothes说课稿-2025-2026学年小学英语三年级下册广东版(开心英语)
- 安徽省宿州市泗县2025-2026学年七年级下学期期中质量检测生物试卷 (含答案)
- 26年DRG下基因检测成本管控指南
- 初中劳动教育说课稿
- 2026年汪明荃歌曲说课稿
- 2026福建福州开大学川智慧教育科技有限公司招聘财务主管笔试参考题库及答案解析
- 2026下半年湖南益阳市资阳区事业单位招聘工作人员16人易考易错模拟试题(共500题)试卷后附参考答案
- 2026浙江杭州市西湖区人民政府西溪街道办事处招聘编外合同制工作人员2人笔试模拟试题及答案解析
- 环氧彩砂自流平地坪施工及验收规范
- 2026年科目1驾驶技术模拟题库及完整答案详解
- 六化建设培训
- 2026年甘肃省平凉市辅警人员招聘考试真题解析含答案
- TSG08-2026《特种设备使用管理规则》全面解读课件
- 《2026年化学制药企业安全风险防控专项工作方案》解读
- 中学生面试礼仪培训
- 四川绵阳科技城发展投资(集团)有限公司招聘笔试题库2026
评论
0/150
提交评论