2022年程序设计语言理论 .pdf
《2022年程序设计语言理论 .pdf》由会员分享,可在线阅读,更多相关《2022年程序设计语言理论 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 第三章程序设计语言返回所谓程序设计语言就是计算机所能识别的代码,计算机代码通常要能够向计算机描述清楚做什么,用什么做这两个问题,因此计算机代码的一般形式是:操作码目的操作数源操作数操作码向计算机描述做什么,操作数向计算机描述用什么做的问题。所谓计算机的程序就是用计算机语言书写的、能完成一定功能代码序列。随着计算机技术的发展,用于程序设计的计算机语言也不断的向语言更加丰富、语句更容易理解的方向发展,以扩大计算机的应用范围。3.1 程序设计语言的分类3.1.1 低级程序设计语言低级程序设计语言提供的语句是计算机所能进行的基本操作,如:数据传送指令; 算术运算指令;逻辑运算指令;串操作指令;控制
2、转移指令;条件转移指令;控制指令;位操作指令等,这些操作和我们日常用语差别很大。理解它们需要对计算机结构有一定的了解。1、 机器语言计算机所能直接接受的只能是0 、 1这样的二进制信息,因此最初的计算机代码的操作码、 操作数都是用二进制形式表示的,利用机器语言编写程序,要求程序设计人员熟记计算机的全部指令,工作量大、 容易出错又不容易修改。同时各种计算机系统的机器指令也不一定相同, 所编制的程序只适用于特定的计算机系统。因此,利用机器语言编写程序对非专职程序设计人员几乎是不可能的。2、 汇编语言由于机器语言编写程序困难很大,出现了用符号来表示二进制指令代码的符号语言,称为汇编语言。 汇编语言用
3、容易记忆的英文单词缩写代替约定的指令例如用MOV 表示数据的传送指令、IN 表示从给定的端口输入数据到目的操作数中,OUT 表示将源操作数的内容通过目的操作数指明的地址输出;用ADD 表示加法指令,SUB 表示减法指令等等。汇编语言的出现使得程序的编写方便了许多,并且编写的程序便于检查和修改。汇编语言仍然是面向机器的程序设计语言,与具体的计算机硬件有着密切的关系,汇编语言指令与机器语言指令基本上是一一对应的,利用汇编语言编写程序必须了解机器的某些细节,如累加器的个数、每条指令的执行速度、内存容量等等,因此汇编程序的编写、阅读对非计算机专业的技术人员来说,依然存在着很大的障碍,下面是一个利用80
4、386/80286汇编语言编写的程序。例 1 求分段函数-1 x0 y= 0 x=0 1x0 的函数值。DATA SEGMENT ;数据段开始XX DB X 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 2 YY DB ? DATA ENDS ;数据段结束 CODE SEGMENT ;代码开始 ASSUMS CS:CODE ,DS :DATA ;规定 CS段装代码, DS段装数据 START: MOV AX ,DATA ;程
5、序开始,将数据传送到累加器 MOV DS,AX ;将累加器的数据装DS段MOV AL ,XX ;将 x 数据传送到累加器CMP AL ,0 ;将 AL数据与 0比较JGE BIGR ;如果大于等于0 转到 BIGR MOV AL 0FFH MOV YY AL ; x0,将 -1 传送到 YY HLT BIGR:JE EQUT MOV AL,01H MOV YY,AL ; x0,将 1 传送到 YY HLT EQUT :MOV YY ,AL ; x=0,将 AL的数据 0 传送到 YY HLT CODS ENDS ;代码结束 END START ;程序结束从上面的程序可以看到,利用汇编语言编写程
6、序,编程人员必须了解计算机系统的累加器、各种寄存器、存储单元,对计算机的硬件资源有一定的了解。计算机所能直接接受的是二进制信息,因此利用汇编语言编写的程序,必须经过翻译,转化为机器语言代码才能在计算机上运行,这个过程是通过一个翻译程序自动完成的,将汇编程序翻译成机器代码语言程序的翻译程序通常称为汇编程序,其过程可以用图2.1 描述汇编软件连接软件图 2.1 汇编语言程序的运行过程3.1.2 高级程序设计语言所谓高级程序设计语言是接近于自然语言或数学语言的计算机语言。利用高级语言编写程序,编程者不需要掌握过多的计算机专业知识,特别适合于非计算机专业的专业技术人员利用计算机技术解决本专业的问题,高
7、级语言的产生,大大扩展了计算机的应用范围,推动了各行各业的发展。高级语言分为过程化语言和非过程化语言。3.2 面向过程的程序的程序设计基本特征所谓计算机程序, 就是把完成某项任务的具体步骤,利用计算机语言提供的语句(指令)描述出来,形成的语句序列。过程化的程序设计语言是接近于数学语言的计算机语言。利用过程化程序设计语言设计程序,完成一定的任务,无论所完成的任务简单或者复杂,都必须将具体的步骤描述清楚。例如, 利用高级语言编写程序完成两个整数相加的程序,必须描述以下步骤定义三个变量x,y,z 分别用来存放被加数、加数与和将加数、被加数分别输入到变量x,y 中汇编语言源文件目标文件可执行文件名师资
8、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 3 计算 x+y 的值,并将结果存入变量z 中把变数 z 的值输出程序结束完成某项任务的具体步骤通常称为算法,所以过程化的程序设计语言也称算法语言。3.2.1 过程化语言的种类过程化程序设计语言有很多种,每一种语言都有各自的特点,较为常用的有以下几种:FORTRAN语言: FORTRAN 语言是最早、 最常用的科学和工程计算语言,采用了结构化的程序设计思想,其程序结构是分块结构。一个F
9、ORTRAN 程序由一个主程序块和若干个子程序块组成,程序的执行从主程序开始,主程序可以调用子程序,子程序也可以调用子程序。FORTRAN语言提供高精度的数据类型,特别适用于工程计算;并且FORTRAN程序的结构比较简单,可以分块书写,分块编译,使用起来灵活、方便。BASIC 语言: BASIC 语言是适合于广大初学者的一种计算机语言,其语句结构简单。BASIC 语言采用了结构化的程序设计思想,一个BASIC 程序由一个主程序块和若干个子程序块组成。程序的执行从主程序开始,主程序可以调用子程序, 子程序也可以调用子程序。BASIC 语言可以实现递归调用,有较强的作图功能,具有良好的编辑环境,友
10、好的用户接口,可以使用键盘和鼠标,有功能丰富的联机帮助系统,提供分步和跟踪等调试工具,可以说BASIC 语言功能全、编程简单,程序容易理解,特别适用于帮助初学者进入计算机应用大门。PASCAL 语言: PASCAL 语言是一种典型的系统结构化语言,PASCAL 语言的出现和结构化程序设计技术的发展,推动了编译程序工程技术的发展。PASCAL 语言强调概念清晰,实现简化,方便用户;具有丰富的数据类型,便于用户组织和处理各种形式的数据。C 语言: C 语言是一种短小精悍的计算机程序设计语言,它根据结构化程序设计原则设计并实现。C 语言具有丰富的数据类型;为结构化程序设计提供了各种控制结构和数据结构
11、;具有丰富的运算符和表达式,能实现汇编语言中的大部分功能; C 语言还有丰富的标准函数库,调用这些标准函数可以操作计算机的硬件、进行动态地址的分配、绘图等功能,因此C 语言具有表达力强、编译出的目标程序质量高、语言简单灵活、易于实现等特点,有时C 语言被称为是介于高级语言与低级语言之间的中级语言。C 语言不仅可以用来写操作系统、编译程序,也可以用来编写写各种应用软件,C 语言已成为当今最流行的程序设计语言。3.2.2过程化语言的编程特点各种高级的过程化语言各有自己的特点,但它们的语句基本上是相同的;在使用这些编程语言进行编程时,编程的方法也基本相同;结构化程序设计语言每个程序模块的格式基本是相
12、同的。下面是各个模块的基本模式程序模块的开始程序模块的必要说明(如函数调用的说明等)程序模块中使用的常量、变量的定义数据的输入名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 4 数据的处理数据处理结果的输出程序模块的结束下面是用不同的程序设计语言编写的解决同一个问题的程序,可以使读者从中体会,用不同语言编写程序的相同点和不同点。例 2 编写程序计算 (2i+1)!FORTRAN 语言程序INTEGER I ,J,FUN,SUM
13、 变量的定义SUM=0 给变量赋初值DO 10 I=0 ,10 FUN=1 DO 20 J=1,2*I+1 FUN=FUN*J 数据的处理20CONTINUE SUM=SUM+FUN 10CONTINUE WRITE (*,100)SUM 数据的输出100FORMAT (1X,I10)101END 程序结束BASIC 语言程序DIM I AS INTEGER DIM J AS INTEGER 变量的定义DIM FUN AS INTEGER DIM SUM AS INTEGER SUM=0 给变量赋初值FOR I=0 TO 10 FUN=1 FOR J=1 TO 2*I+1 FUN=FUN*J
14、数据的处理NEXT SUM=SUM+FUN NEXT PRINT SUM 数据的输出END 程序结束PASCAL 语言程序PROGRAM mysum(input,output)VARI,J,FUN,SUM :INTEGER ;变量的定义BEGIN程序开始SUM :=0;给变量赋初值FOR I:=0 TO 10DO BEGIN FUN=1 ;FOR J:=1 TO 2*I+1 DO数据的处理名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 - - - - - - -
15、 - - 5 FUN=FUN*J ;SUM=SUM+FUN ;END WRITELN (SUM ) ;数据的输出END程序结束C 语言程序main()程序开始 int i, j,fun ,sum;变量的定义sum=0;给变量赋初值for (i=0;i=10;i+) fun=1 ;for(j=1;j=2*i+1 ;j+ )数据的处理fun=fun*j ;sum=sum+fun; printf ( “ sum=,%d” , sum) ;数据的输出 程序结束从这个例子我们可以清楚的看到不同的高级语言编写程序的基本格式是相同,提供的相同功能的语句, 其形式也大同小异,只是在一些语法点上有些差异,如果熟
16、练掌握其中的一种语言,就不难读懂用其它语言编写的程序。3.2.3 过程化语言程序的执行过程前面我们提到,计算机所能直接接受的是二进制信息,利用高级语言编写的程序,应转变为机器代码, 才能在计算机上运行。利用高级语言编写程序的过程是:借助每种语言提供的各自的编辑软件生成各自的高级语言源程序;利用各自的翻译程序(编译或解释程序)将高级语言源程序自动翻译成目标程序 (.obj 文件) ;再将目标程序通过连接程序自动生成可执行文件。整个过程可以用图2.2 表示。编辑软件翻译软件连接软件图 2.2 高级语言程序的执行过程随着计算机的发展出现了高级语言各自的集成化的环境,所谓集成化环境就是将程序的编辑、
17、编译或解释、 连接、 运行的操作集成在一个环境中,各种命令设计成菜单命令,这样,更加方便了非计算机专业人员掌握利用高级语言设计程序的过程。在集成环境中除了关于程序的主要操作命令外,还设计了关于文件操作的命令(打开、存盘、关闭等)、程序调试命令(分步操作、跟踪、环境设置等)等等,方便了编程者在集成环境下进行程序的编写、调试、运行。3.2.4非过程化程序设计语言非过程化的程序设计语言是接近于自然语言的计算机语言。 利用非过程化语言编写程序高级语言源程序文件目标文件可执行文件高级语言源程序清单名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
18、 - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - 6 往往只需要通知系统做什么,而不需要说明怎么做。典型的非过程化程序设计语言是各种类型的数据库语言,例如利用FOX 系列的数据库管理系统提供的数据库语言,编写将数据库中的数据记录按某个字段进行排序的程序如下:select 1 选择工作区use student 打开数据库sort to st1 on grade / d for 性别 =女对女同学按成绩降序排序use 关闭数据库通过执行上面的程序,就可将数据库student 全体女同学的数据记录进行排序,生成一个新的数据库st1,其记录是
19、按照女同学的成绩从高分到低分排序。非过程化程序设计语言也有很多种类,其中数据库语言是典型的非过程化语言,最流行的数据库语言是关系型的数据库语言:FOX 系列,如从最早的DOS 环境的Dbase、Foxbase,到 Windows 环境下的Foxpro ,可视化的Visual Foxpro ,各种数据库语言编写的程序虽然有一定的差别,但总的程序结构是相同的,与过程化语言一样,只要掌握了其中的一种,就能读懂用其它数据库语言编写的程序。3.3.5 过程化程序设计语言的特点过程化程序设计语言自20 世纪 50 年代问世以来已有一千多种,虽然每种语言都有自己的特点,都是针对不同的使用者设计的,但是过程化
20、程序设计语言都有共同的特点。3.3.5 .1常量、变量、表达式1、常量: 计算机语言中提到的常量指的是常数,从这一点上说计算机语言中常量的概念和数学上常量的概念相同,但与数学上常量的概念也有不同,在计算机语言中常量有一定的类型、 有严格的表示方式。不同的计算机语言提供的数据类型不同,常用的数据类型有整型、浮点型、字符型,有的计算机语言也提供逻辑型的数据类型,由于数据的类型不同,计算机系统提供的存放数据的存储单元(字节数)不同,因此在计算机程序中使用数据时,一定要明确指出数据的类型,这一点与我们在日常中使用常量的概念是有差异的。另外在计算机语言中, 对常量的表示, 不同的计算机语言都有自己的语法
21、规定,程序设计者在编写程序时应按照相应语言的语法规定严格书写,以免编译错误。2、变量:计算机语言中提到的变量的概念,可以这样理解:变量是用来存放常量的,因为常量是有类型的,存放常量的变量也应该是有类型的,在计算机语言中规定程序中使用的变量必须先定义,后使用。 程序中定义一个变量,在编译该程序时编译系统为该变量分配相应的存储单元,变量和存储单元之间的关系可以用图2.3 表示。图 2.3 高级语言中变量与存储单元的对应关系即一个变量名对应一个存储单元(整型变量对应整型的存储单元、浮点型变量对应浮点型的存储单元) ,在高级语言中用变量名的方式对存储单元进行访问,这些访问包括从存储单元中读数、向存储单
22、元中存数,把存储单元的数据输出等等。不同的高级语言,对变量名的规定、 对变量的定义方式都有各自的语法规定,程序设计者在使用某种高级语言编写程序时,要严格按照使用的高级语言的语法规定定义变量。3、表达式:高级程序设计语言中用表达式进行运算,所谓表达式就是把常量、变量和其它形式的数据用运算符连接起来的式子。高级语言中的运算符分为:算术运算符:加、减、乘、除、乘方关系运算符:大于、小于、等于、大于等于、小于等于、不等于变量名相应的存储单元名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6
23、页,共 17 页 - - - - - - - - - 7 逻辑运算符:与、或、非字符运算符:字符连接高级语言中,根据表达式结果类型不同,表达式分可为:算术表达式;逻辑表达式、字符表达式,其中算术运算的结果是算术量,关系运算、逻辑运算的结果是逻辑量,字符运算的结果是字符量, 各种运算符有不同的优先级别。在程序设计中, 表达式的使用最为频繁,因此程序设计者在设计程序时,必须严格按照所使用的编程语言的语法规定书写表达式(包括算运符、格式、是否添加括号、运算优先级别等)确保编译系统所识别的表达式与实际表达式一致。3.3.5.2赋值语句,输入、输出语句1、赋值语句:赋值语句是高级程序设计语言中使用最频繁
24、的数据处理语句,其功能是完成数据的运算和存储。程序设计需要进行某种运算时,通常是将该运算通过一个表达式表示出来, 交给计算机来完成,运算的结果存储到计算机的存储单元中,以备后面的数据处理(读取、输出等)使用,在高级语言中使用赋值语句实现上述过程。赋值语句的一般格式为:变量名赋值号表达式在上式中,变量名代表计算机的存储单元,表达式表示所进行的运算,不同的高级语言,赋值号的形式不同,通常使用数学中的“=”作为赋值号,读者切勿将赋值号理解为等号。如:C 语言中的语句x=x+1; 表示的意义是将变量x 存储单元中的数据读出,完成加 1运算后,再将运算的结果存入变量x 存储单元中,切勿将上式理解为x 等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年程序设计语言理论 2022 程序设计语言 理论
限制150内