版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章程序设计语言,学习目的是了解计算机程序设计语言的基本知识和编译原理。掌握程序的概念和高级语言程序设计的基本内容。第3章编程语言,3.1编程语言概述3.1.1程序,程序是一组能够实现特定功能的指令序列。其中,指令可以是机器指令、汇编语言指令、高级语言的语句命令,甚至是用自然语言描述的操作和操作命令。3.1.2使人们能够与计算机通信的计算机编程语言有各种类型,一般可分为两类:低级语言和高级语言。低级语言低级语言包括两种类型:机器语言和汇编语言。(1)机器语言机器语言是面向机器的,可以被中央处理器直接识别和执行。不同的机器可以识别不同的机器语言。机器语言指令由一串由0和1组成的二进制位表示。指
2、令系统是机器提供的一组机器指令,用二进制代码表示,称为机器指令或机器代码。用机器指令编写的程序被称为机器语言程序或目标程序,它们可以由计算机直接执行。机器语言难读难懂,难写难改,通用性差。3.1.2计算机编程语言,(2)汇编语言汇编语言也叫符号语言。指令助记符是指令英文名称的缩写,易于记忆。所谓汇编语言使用字母、数字和符号代替指令操作码、寄存器、数据和由0和1组成的存储地址,并在程序中使用它们代替二进制编码的数字,所以编写的程序称为符号语言程序或汇编语言程序。在大多数情况下,一条汇编指令直接对应一条机器指令,少数对应几条机器指令。汇编语言有一个基本上与机器语言一一对应的指令系统。汇编语言的本质
3、和机器语言一样。3.1.2计算机编程语言、低级语言的特点机器语言和汇编语言都是低级语言。他们有许多相同的特征。它们都与特定的计算机硬件系统密切相关,来自特定系统的指令系统移植性差。程序员需要有较高的专业知识,熟悉计算机硬件的结构和工作原理。每条指令都有一个单独的功能,当程序员编写源程序时,这些指令非常麻烦。因为它是为特定硬件直接编程的,所以最终的可执行代码非常精细,并且具有高执行效率。它们之间的主要区别是用机器语言编写的程序不需要翻译或编译,中央处理器可以直接识别和执行它们。汇编语言的源程序必须经过汇编才能得到目标程序。3.1.2计算机编程语言、汇编程序和汇编程序计算机的中央处理器只能“识别”
4、和“执行”机器语言,虽然汇编语言比机器语言更容易使用和阅读,但中央处理器不能“识别”和“执行”,这就要求汇编语言程序被“翻译”成计算机可以识别的机器语言程序。这个程序叫汇编程序,也叫汇编翻译程序或汇编程序,它是一种汇编3.1.2计算机程序设计语言,高级语言(1)高级语言的出现提出了一个问题:如何解决程序的可移植性,即程序员编写的源程序如何能方便地从一台计算机转移到另一台计算机上进行工作。为了解决这些问题,人们引入了高级语言来编写程序。所谓高级语言是指通过表达各种含义的单词和公式,按照一定的语法规则编写程序的语言,也称为程序设计语言或算法语言。高级语言之所以“先进”,是因为它使程序员能够完全避免
5、处理计算机硬件和理解机器的指令系统。,3.1.2计算机编程语言,(2)常见类型的高级语言BASIC语言FORTRAN语言COBOL语言PASCAL语言C语言C等高级语言都是基于windows操作系统的,如Visual Basic,Visual C,Delphi,Power Builder,Java等。3.1.2计算机程序设计语言,高级语言:语句的优点是功能强大,并且程序员编写的源程序简短、易学、易用、可移植性好,易于推广和交流。高级语言的缺点:编译器比汇编器更复杂,编译后的目标程序通常效率低下。目标程序的长度比由有经验的程序员编写的具有相同功能的汇编程序长一半以上,运行时间也更长。因此,在许多
6、对时间要求很高的系统中,如一些实时控制系统或大型计算机控制系统,仍然在一定程度上使用低级语言,主要是汇编语言。3.1.2计算机编程语言,3.1.3高级语言编程的基本内容,用高级语言编写的源程序可以提高程序员的开发效率,而高级语言编程依赖于它们特定的句子和语法。在高级语言中,语句是源程序的基本单元。高级语言的共同特征1高级语言的基本符号高级语言的语法成分都是由基本符号组成的,基本符号可以分为单字符和多字符类型。单字符基本符号由单字符组成,在高级语言中通常包括以下单字符基本符号。字母:大写字母az和小写字母AZ,共52个符号。编号:09,共有10个数字符号。3.1.3高级语言程序设计的基本内容,特
7、殊字符:(加号)、-、*(乘)、/(除)、(幂)、=(等号)、(左括号)、)(右括号)、(大于)、(小于)、多字符由两个或多个字符组成,例如“转到”(转移)、“小于或等于”(和)。3.1.3高级语言编程的基本内容,高级语言的共同特征2高级语言的基本元素由基本符号组成,基本符号可分为五类:数字、逻辑值、名称、标签和字符串。数字由09中的10个基本数字和其他符号(如小数点)组成。加号或减号 和指数符号 e 等。逻辑值由两个值组成:真和假。3.1.3高级语言程序设计的基本内容,名称由字符组成,一般认为名称的开头是字母或下划线,后面是字母或数字,如XYZ、A123、_C等。名字可以用来定义常量、变量、
8、函数、过程或子程序,也可以用来定义某些东西,所以它们也被称为标识符。在高级语言中,组成名称的字符长度,即字符数,通常是指定的。标签是在高级语言的程序语句前添加的名称,主要用于指示程序可能的传递方向。字符串由一串字符组成。在不同的高级语言中,字符串中的多个字符用一对单引号或双引号括起来。3.1.3高级语言编程的基本内容,高级语言的共同特征3基本数据类型任何计算机程序都不能没有数据,数据是程序运行的对象。通常,高级语言定义一些基本的数据类型,包括整数类型、实数类型和字符类型。在高级语言中,在使用变量之前,必须为每个变量分配所需的内存单元空间。因此,几乎任何高级语言都要求在使用之前必须定义变量。3.
9、1.3高级语言编程的基本内容,高级语言的共同特征4结构数据类型结构数据类型是在基本数据类型的基础上构造的数据类型,数组和结构是大多数高级语言支持的两种最基本的结构数据类型:数组类型数组是若干相同类型数据的集合。用户定义的结构类型。结构是属于同一事物的不同类型数据的集合,用于表示具有多个属性的事物。除了上述两种基本的结构数据类型之外,许多高级语言也有许多数据类型,如枚举、收集和更复杂的队列和堆栈。当使用结构数据类型时,也必须定义相应类型的“变量”名称。3.1.3高级语言编程的基本内容,高级语言的共同特征5运算符和表达式高级语言的表达式是由基本符号、基本元素和各种数据通过运算符连接而成的,大致包括
10、以下几类:逻辑运算:与、或、非、异或等。算术运算:加、减、乘、除、模等。数据比较:大于、小于、等于、不等于等。数据传输:输入、输出、分配等。通过连接各种运算符得到的表达式包括以下类型:算术表达式:表达式的运算结果是一个数值,非常类似于日常的数学计算公式。关系运算表达式:表达式的运算结果是一个逻辑值。字符串表达式:表达式的结果是一个字符串。3.1.3高级语言程序设计的基本内容,高级语言的共同特征6句子是高级语言源程序的基本单位,由基本元素、运算符和表达式组成。任何高级语言通常都支持诸如赋值、条件判断、循环、输入和输出等语句。通过组合这些语句,程序员可以轻松地编译强大的程序。3.1.3高级语言编程
11、的基本内容,高级语言的共同特征7库函数和用户自定义函数为了支持用户编写强大的源程序,几乎所有的高级语言都为用户提供了丰富的库函数,可以实现一些特定的功能,如计算复杂的数学函数。在源程序中,用户还可以定义自己的函数(子程序或过程),以便将来可以重复调用这些代码集。3.1.3高级语言编程的基本内容和高级语言的共同特征8注释任何编程语言都强调注释的重要性。源程序中包含的代码通常很长。添加必要的注释不仅有助于阅读程序,更重要的是,当程序功能需要扩展时,注释可以极大地帮助程序员理解原程序。经常发生的情况是,在一段时间后,也许半年或几个月后,程序员不能阅读他自己的程序。此外,程序不仅应该被自己理解,也应该
12、被别人理解。3.1.3高级语言编程的基本内容,高级语言的共同特征9编程风格程序不仅需要能够在机器上执行并给出正确的结果,还需要易于调试和维护。在编程过程中,程序员应该尽最大努力保持程序结构的合理和清晰,培养良好的编程习惯。良好的编程风格有助于提高程序的正确性、可读性、可维护性和可用性。3.1.3高级语言编程的基本内容,高级语言的共同特征10用高级语言编写程序的一般过程可以概括为以下步骤:使用文本编辑工具逐个编写源程序语句。保存源程序文件时,文件的后缀名称与使用的高级语言有关。编译源程序文件以生成目标文件,目标文件通常有obj后缀。链接目标文件以生成可执行文件,该文件通常带有exe后缀。在计算机
13、上运行可执行程序,并调试和维护它。3.1.3高级语言编程的基本内容,3.1.4高级语言的数据表示方式,1常量常量也叫常量,是不随时间变化的常量值或数据项。2可变变量是指程序运行过程中可以改变的量,是程序中数据的临时存储位置。3数据类型用于约束数据的解释。表达式表达式是由运算符、操作数和标点符号组成的序列,其目的是说明计算过程。3.2声明和类型,1声明声明用于解释每个标识符的含义,而不为每个标识符保留存储空间。保留存储空间的声明称为定义。类型类型检查使用一组逻辑规则来推断程序在运行时的行为。3.3类型系统,用于定义如何将编程语言中的值和表达式分类为许多不同的类型,如何操作这些类型,以及这些类型如
14、何相互作用。一个类型可以确认一个值或一组具有特定含义和目的的值(尽管某些类型,如抽象类型和函数类型,在运行的程序中可能不能表示为值)。3.4编译原理,3.4.1编译器20世纪50年代,IBM的约翰巴克斯领导一个研究小组开发了FORTRAN语言及其编译器。由于人们缺乏编译理论知识,开发工作变得复杂而艰巨。同时,诺姆乔姆斯基(1928)开始研究自然语言结构。他的发现最终使编译器结构变得极其简单,甚至有了一些自动形式。3.4.1编译器,用高级语言编写的源程序需要被“翻译”成计算机能识别的机器语言,然后机器才能执行它。这个“翻译”的程序被称为语言处理程序。在语言处理:的过程中,翻译程序可以将用诸如FO
15、RTRAN、Pascal、C、Ada、Smalltalk或Java等“高级语言”编写的源程序转换成诸如汇编语言等“低级语言”的逻辑等效源程序。这种翻译程序被称为编译器。编译器的功能如图:3.4.1所示,编译器通过解释和编译: (1)将高级语言编写的源程序翻译成机器语言程序,解释器在处理源程序时的执行方式类似于日常生活中的“同声翻译”。解释一个句子,执行一个句子,并立即产生运行结果。解释器不产生目标代码,并且不能独立于它们的语言环境执行。解释器以比编译器生成的目标代码程序更慢的速度执行源程序。3.4.1编译器(Compiler),Compiler (2)编译器是把一个高级语言程序(源程序)作为一
16、个整体来对待,首先把程序源代码“翻译”成目标代码(机器语言),然后把它和系统提供的代码库联系起来,形成一个完整的可执行的机器语言程序(目标程序代码)。目标程序可以独立于它的语言环境执行,这使用起来既方便又高效。因此,由于可执行程序必须在每次执行之前被编译,一旦可执行程序需要被修改,它必须首先修改源代码,然后重新编译以生成新的目标文件(*)。在执行之前。3.4.1编译器,其工作过程如图:3.4.1编译器,3.4.2词法分析所示,其任务是从左到右扫描源程序一个字符,读入,扫描并分解构成源程序的字符流,并通过词法分析识别每个单词(也称为单词符号或符号)。表达式示例1:位置:=初始值* 100;进行词汇分析。经过词法分析,得到以下结果:单词类型单词值标识符1(id1)位置运算符(赋值):=标识符2(id2)初始运算符(加)标识符3(id3)速率运算符(乘法)*整数100分号;3.4.2词法分析,3.4.3语法分析,这是编译过程的第二阶段。任务是将单词序列分解成各种语法短语,如“程序”、“语句”、“表达式”等。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度公务员(国考)题库试题附答案详解(轻巧夺冠)
- 2024-2025学年度执法资格考试彩蛋押题附参考答案详解AB卷
- 骨科患者心理护理查房
- 压疮护理的职业发展
- 客户关系管理(CRM)平台
- 2024-2025学年度冶金工业技能鉴定考试彩蛋押题附参考答案详解【培优】
- 2024-2025学年度医师定期考核考前冲刺练习题及参考答案详解(巩固)
- 2024-2025学年医疗卫生系统人员考前冲刺练习试题含答案详解【满分必刷】
- 2024-2025学年度电梯考试每日一练试卷附参考答案详解(研优卷)
- 2024-2025学年度电工考前冲刺练习试题含答案详解【满分必刷】
- T-CITS 273-2025 化工产品热安全检测实验室认可技术规范
- 2025年陕西省西安市高新第一中学中考八模历史试题(含答案)
- 供货期承诺及保证措施
- GB 2536-2025电工流体变压器和开关用的未使用过的矿物绝缘油
- 科研外协管理办法
- 银行清分管理办法
- 毒品知识课件图片
- 哈铁单招数学试卷
- 2025年云南省中考历史卷真题答案详解及复习指导课件
- 农产品质量安全检测员岗位面试问题及答案
- DB42T 1615-2021 城镇排水管道检测与评估技术标准
评论
0/150
提交评论