第五讲程序设计语言和编程环境.ppt

上传人:ga****84 文档编号:387475 上传时间:2018-09-30 格式:PPT 页数:65 大小:1.59MB
下载 相关 举报
第五讲程序设计语言和编程环境.ppt_第1页
第1页 / 共65页
第五讲程序设计语言和编程环境.ppt_第2页
第2页 / 共65页
第五讲程序设计语言和编程环境.ppt_第3页
第3页 / 共65页
第五讲程序设计语言和编程环境.ppt_第4页
第4页 / 共65页
第五讲程序设计语言和编程环境.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

1、第五讲 程序设计语言和编程环境,北京大学 信息科学技术学院,2018年9月30日,2018/9/30,北京大学,2,主要内容,程序设计语言概述机器语言汇编语言高级语言及其程序的执行若干典型的高级语言介绍VC6.0编程环境,2018/9/30,北京大学,3,1、程序设计语言概述,计算机硬件组成,2018/9/30,北京大学,4,程序是由若干条指令的顺序排列组成,是为信息处理任务而预先编制的工作执行方案。,1、程序设计语言概述,计算机指令的执行及程序,2018/9/30,北京大学,5,1、程序设计语言概述,程序设计语言软件的基本组成部分是完成其功能的程序。程序描述了计算机处理数据、解决问题的过程,

2、这是程序的实质。程序的描述形式却可以是多种多样的,可以用不同的方式表述,这就是程序设计语言。程序设计语言(也被称为“编程语言”,Programming Language)是人们描述(编制)程序所使用的规范和方法(语言)。机器语言、汇编语言、高级语言,2018/9/30,北京大学,6,2、机器语言,机器指令采用二进制代码形式,它们符合具体计算机的指令系统,可以由计算机直接执行。因此机器指令实际上也是一种可以在程序设计中使用的语言,被称为“机器语言”。每一条机器指令包括两个主要方面:操作(指出计算机应做什么)被操作的对象(指出处理的数据或它的地址)下面给出了几条以二进制形式描述的 Intel 80

3、386 指令以及对它们的文字解释。,2018/9/30,北京大学,7,2、机器语言,01000000把一个寄存器(EAX)的值加110001011 00000101 00000000 01111001 10001111 10101101从某个内存单元取出数据,装入EAX寄存器,2018/9/30,北京大学,8,2、机器语言,从直接阅读的角度看,二进制代码简直是密码,难以理解和使用。因此也必然造成程序不易修改,无法由一种计算机环境移植到其他环境上。10101011 10100101 01000100 01011001 10011110 1011110110011011 01000101 0010

4、0000 11111001 10100111 0110110110100011 10000101 10000001 01111101 10001101 1010110101001111 10100101 01001010 01111011 10011011 10100111用机器语言编程,不仅指令操作需要用规定的二进制代码描述,程序里的数据也要程序设计者自己安排存储位置。这使程序设计工作更加烦杂和容易出错。要检查和发现程序中的错误也是极端困难的。这一系列因素使得用程序开发工作的效率非常低,据统计,一个人一天平均只能够写出几条有效指令。,2018/9/30,北京大学,9,3、汇编语言,从人的思维

5、方式而言,更适合于用概念描述事物,对于烦琐冗长的数字编码,由于它们不能与概念和概念之间的语义联系产生任何提示作用,则显然对设计思维没有任何帮助作用,纯粹是一种累赘。人们显然更希望用有帮助记忆作用的符号来书写程序,例如用 “ADD” 表示“加法”操作,用“ JMP” 表示“控制性转移”等。操作的对象(数据或数据的地址)最好也能用符号形式表示,例如用 X、Y代表两个存储数据的容器。显然这样做比直接采用二进码方便得多。这就是“汇编程序设计语言”的基本想法。,2018/9/30,北京大学,10,3、汇编语言,汇编语言提供一组具有帮助记忆作用的“汇编指令”,每条汇编指令都和一条机器指令相对应,只是指令码

6、和操作数都采用符号形式。PUSH ECXMOV ERROR, 0MOV ECX, EAXCMP ECX, 0JMP FAILCALL FACT,2018/9/30,北京大学,11,3、汇编语言,对于这种汇编语言形式写出的程序,计算机是不能直接执行的,必须在交给计算机执行之前先把它翻译成二进制的机器语言指令程序。把汇编语言程序翻译到机器语言的工作比较机械,可以用计算机来完成这个翻译工作。“汇编器”(Assembler)软件就是具有这种功能的软件,它能把用汇编语言书写的程序翻译成机器语言程序。,2018/9/30,北京大学,12,3、汇编语言,在这里,我们又看到了“程序”和“数据”两个概念的相对性

7、:对汇编器而言,它的输入“数据”是汇编语言程序,这种程序当作数据(是一系列的字符行)被加工处理。汇编器产生的结果是机器代码程序(具有二进符号串的形式),同时它也是即将在计算机上运行的真正的程序。,2018/9/30,北京大学,13,3、汇编语言,从程序开发的角度来看,汇编语言与机器语言类似,仍然有许多缺点:汇编语言的描述机制层次太低,其基本描述单位仍然是指令,这种方式与人们描述计算过程的需要之间差距太大。汇编语言与计算机硬件的具体结构、指令系统联系过于紧密,这种情况造成的后果是在一种计算机上开发的程序极难搬到另一种不同结构的计算机上使用。如果想这样做,不仅工作量将非常大(与重写差不多),而且很

8、容易引出程序错误,修改也非常困难。,2018/9/30,北京大学,14,3、汇编语言,样例程序1计算表达式:135 22 1常用寄存器AX, BX, CX 等可以用来保存中间结果;计算过程:MOV AX, 135MOV BX, 22ADD AX, BXSUB AX, 1HLT,2018/9/30,北京大学,15,3、汇编语言,样例程序2计算从1累加到100得到的和AX保存累加和,BX存放被加数,每加完一次增加1。通过一个循环来完成累加工作。计算过程:MOV AX, 1MOV BX, 2calc:CMP BX, 101JE stopADD AX, BXINC BXJMP calcstop:HLT

9、,2018/9/30,北京大学,16,3、汇编语言,样例程序3求一组数33,15,21,7,9,23,4,76,87,45中的最大值总的思想是用一个存储单元保存到目前为止的最大值,将个数逐一取出与最大值比较,如果该数比当前最大值更大,则将更新当前最大值,2018/9/30,北京大学,17,3、汇编语言,数组变量DATA存储给定的十个整数;BX记录当前计算的是第几个数,;CX记录数组中当前没有被计算过的数,初值为10,每计算一个数,它的值减,当它为时,停止计算(循环计数);AX是16位寄存器,可以分成两个8位寄存器AH和AL使用,每次总是将一个数复制到AL中去,2018/9/30,北京大学,18

10、,3、汇编语言,MOV AL, 0MOV BX, 0MOV CX, 10next:CMP DATABX, ALJL unchangedMOV AL, DATABXunchanged:INC BXLOOP next /CX减1HLTDATA DB 33,15,21,7,9,23,4,76,87,45,2018/9/30,北京大学,19,4、高级语言及其程序的执行,高级语言在对计算过程的描述方面,完全脱离了简单的指令方式,采用类似于数学公式的书写方式描述由一些数据计算出结果的过程,用一些更高级程序流程描述结构取代简单的跳转指令方式,以更好地满足书写程序的需要。在高级程序语言中也使用“变量”这个概念

11、,在这里“变量”代表一种容器,用于存放程序中处理的数据。变量对应着存储器的若干字节(存储单元),但它们在存储器中的具体位置并不需要编程人员关心,这样就大大减轻了编程人员的负担。,2018/9/30,北京大学,20,4、高级语言及其程序的执行,高级语言中的变量采用字符串形式的名字,如 x、len、Max、Number 等。一方面名字可以帮助人们掌握变量所代表的信息含义,在程序里只要用变量的名字就可以读写访问它的存储单元里的数据。定义确定了变量的大小。,2018/9/30,北京大学,21,4、高级语言及其程序的执行,高级语言中用于描述计算的结构采用类似于数学中代数运算公式的形式,这种结构被称为“表

12、达式”。程序中基本的动作单位被称为“语句”,不同的语句实现不同的功能。高级语言里最基本语句就是“赋值语句”(Assignment Statement),这种语句描述把通过计算得到的结果(值)赋给变量的动作。举例说:X 100;Y = 2 * SIN(1.047);Z = X * Y;,2018/9/30,北京大学,22,4、高级语言及其程序的执行,用高级语言书写的程序不可能直接在计算机上执行,与汇编语言程序一样,需要将它转换成机器语言指令程序。在计算机上将高级语言书写的程序转换成机器语言指令程序,有两种基本方法:编译(Compilation)方式解释(Interpretation)方式,201

13、8/9/30,北京大学,23,4、高级语言及其程序的执行,编译方式是设法把高级语言程序(也称为“源程序”)翻译转换成为可以由计算机直接执行的机器语言指令程序,经连接装配后转变为“可执行程序”(Executable Program)。人们实现了高级语言“编译器”(Compiler)完成这种翻译工作。编译器把高级语言程序看成是符合一定语法结构的符号串,对它进行加工变换。,2018/9/30,北京大学,24,编译器对源程序的加工一般分为两个阶段: 源程序首先被翻译成机器语言,这种翻译结果称为“目标码”(object code),目标码构成的程序片段称为目标模块。 第二步,这些目标模块被与其他一些基本

14、模块(通用目标程序模块,由编译软件或其他人提供)连接在一起,最终形成“可执行程序”(executable program),这样的程序就可以在计算机上实际运行了。 第一个加工步骤称为“编译”(compiling),第二个步骤称为“连接”(linking)。,4、高级语言及其程序的执行,2018/9/30,北京大学,25,可执行的机器语言指令,4、高级语言及其程序的执行,解释(Interpretation)方式由一种称为“解释器”(Interpreter)软件实现。解释器在工作方式上与编译器不同,它不事先对源程序进行翻译,而是在执行时即时对源程序的语句进行分析和解释,实现源程序所描述的功能。,2

15、018/9/30,北京大学,26,5、若干典型的高级语言的介绍,第一个高级程序语言是 FORTRAN 语言,它是由美国 IBM 公司的科技人员在五十年代开发出来的。高级语言的开发成功是软件技术发展的一个重要里程碑。从那以后,人们设计并实现了许多高级程序语言。高级语言不但是程序开发的工具,也成为一种在人与人之间,在不同的计算机之间交流的工具。为了保证语言的通用性,国际标准化组织动用很多人力物力,对应用较广泛的一些语言提出了标准语言文本。这些工作进一步打通了交流渠道,推动了计算机应用的发展。 FORTRAN、PASCAL、C / C+COBOL、BASIC、ADA、JAVA,2018/9/30,北

16、京大学,27,5.1、FORTRAN,FORTRAN 的名字是由英文 FORmular TRANslation 缩写而成,意思是“公式翻译”。在五十年代初期人们考虑的主要是如何有效地把数学公式描述的计算过程翻译成计算机程序,设计 FORTRAN 语言的主要目的是为了描述科学计算的算法。FORTRAN 语言大约在 1954 年设计,它的编译器在 1957 年完成。 后来这个语言还有很大的发展,成为在科学计算(数值计算)方面最主要的编程语言。,2018/9/30,北京大学,28,5.1、FORTRAN 程序样例,FUNCTION FUNC1(N) ISUM = 0 DO 10 I=1, N ISU

17、M = ISUM + I*I10 CONTINUE FUNC1 = ISUM RETURN END,求1N的平方和,2018/9/30,北京大学,29,5.2、PASCAL,Pascal 语言是由著名瑞士计算机科学家 N. Wirth (1984年图灵奖得主)设计的一种语言,1968 年提出后被全世界广泛接受,成为一种对计算机科学技术发展有巨大影响的语言。这个语言的名字是为了纪念历史上著名的数学家和计算学科的先驱 Blaise Pascal(帕斯卡)。Pascal 语言把许多好的东西结合在一个很简练的语言里,被计算机教育界广泛采用。从七十年代末往后的很长一段时间里,Pascal 成为世界范围的

18、计算机专业教学语言,多数教科书用 Pascal 给出程序例子,描述计算的算法。,2018/9/30,北京大学,30,5.2、PASCAL 程序样例,function func1(N : integer) : integer;var SUM, I : integer;begin SUM = 0; for I := 1 to N do SUM := SUM + I * I; FUNC1 := SUM;end,求1N的平方和,2018/9/30,北京大学,31,5.3、C语言,C 是由美国贝尔实验室的 Dennis Retchie 在 1972 年设计开发的,开发目的是想成为一种编制“系统程序”的工

19、具语言。Retchie 等人首先用自己发明的 C 语言编写了 UNIX 操作系统。以后 C 语言逐步发展成为开发系统软件的主要语言。许多常见的软件系统,例如,在中国使用很广泛的计算机辅助设计软件 AUTOCAD,数学软件系统 Mathematica 等,以及许多语言编译系统本身,其软件系统的全部或者部分程序就是用 C 语言开发的。C 语言已成为最重要的软件系统开发语言,由此可见 C 语言在计算机领域地位之重要。,2018/9/30,北京大学,32,5.3、C语言 样例程序,int main ( ) int n; int i, sum = 0; scanf(“%d”, ,求1N的平方和,2018

20、/9/30,北京大学,33,5.4、C+语言,C+ 是在 C 语言基础上发展出的一种“面向对象”语言。它是由 Bjarne Stroustrup 在美国贝尔实验室开发的(1983)。C+ 是 C 语言的一个扩充,它一方面修正了 C 的一些弱点和不足,使用起来更方便可靠;另一方面,也是更重要的,这种语言以支持“面向对象”(Object-Oreinted,简称为OO)的程序设计方法为基本目标,提供了一套支持面向对象程序设计的机制,如“类”(class)、“对象”(object)等等。面向对象的方法被认为是开发复杂软件系统的一种有效途径, OO 程序设计语言也已经被广泛接受。C+ 是目前使用最广泛的

21、一种面向对象的程序设计语言。,2018/9/30,北京大学,34,5.5、COBOL,COBOL(COmmon Business Oriented Language,通用事务处理语言)语言是在美国国防部推动下,由政府机构和工业界联合开发的一种语言,1960 年正式推出。它的主要设计目标是用于编制商业企业管理信息系统的处理程序和各种软件。COBOL 语言采用一种类似英语的形式,对使用英语的人而言它的可读性较强,但这也带来程序罗嗦冗长的缺点。数据记录(DATA RECORD)的概念是在COBOL语言中第一次引入的。COBOL语言曾经使用非常广泛, 七十年代曾有人统计过,当时程序语言使用的情况是:将

22、近一半的程序(以字符数计算)是用 COBOL 语言书写的。但目前的情况是 COBOL 语言已经走向衰败。,2018/9/30,北京大学,35,5.6、BASIC,BASIC (Beginners All-purpose Symbolic Instruction Code,初学者的通用符号指令代码)语言可能仍然是世界上使用人数最多的语言。这个语言是由 John Kemeny 和 Thomas Kurtz 于 1964 年开发的,基本上是 FORTRAN 语言的一个缩减版本。设计者当时希望开发一个简单的交互式语言,用于学习程序设计。由于语言简单,BASIC 语言可以在很低档的微机上实现,因此得到广

23、泛普及,流行到世界的每个角落。可以说,无论国内还是国外,BASIC 语言对于计算机的普及都发挥了重要的作用。,2018/9/30,北京大学,36,5.7、ADA,Ada 这个名字是纪念历史上第一位编程者Ada 夫人(生活在十九世纪中叶,是著名诗人拜伦的女儿),她被认为是第一个写程序的人,她曾经为计算机先驱者 Charles Babbage 未完成的计算机写程序。Ada 语言开发的目的是作为新一代的美国军用程序设计语言(1983-1995),作为所有与国防有关的程序和软件的统一语言标准。Ada的设计目标是针对那些装备在机电设备上和武器装备里的计算机控制、管理软件系统开发所使用的。这类系统现在被称

24、为“嵌入式计算机系统”,是计算机的一个重要应用方面。Ada 语言的设计也特别注意对复杂的大型和巨型软件系统的支持。Ada语言自 1983 年作为标准提出后,虽由美国国防部大力推行,也受到各国军方的重视,但不像预想的那样成功,其中一个原因是它太复杂。,2018/9/30,北京大学,37,5.7、ADA 样例程序,FUNCTION func1 (n : IN INTEGER) RETURN INTEGER IS sum : INTEGER = 0; i : INTEGER;BEGIN FOR i IN 1.n loop sum := sum + i * i; end loop; return su

25、m;END;,求1N的平方和,2018/9/30,北京大学,38,5.8、JAVA,1991年,SUN MicroSystem公司的Jame Gosling、Bill Joe等人为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件,1995年正式推出并更名为Java。Write once, run everywhere.目前网络程序开发的主要语言特点面向对象便于网络开发简单易学,2018/9/30,北京大学,39,5.8、JAVA 样例程序,public int func1(int n) int sum = 0; int i; for(i=1;i=0),要求出在第

26、几年年末,这个点将被侵蚀。例如:给定X,Y坐标为(1.0,1.0),则输出:第1年年末。,2018/9/30,北京大学,62,房地产问题,程序示例 3,2018/9/30,北京大学,63,编程及调试过程,启动VC创建新工程编辑源代码编译链接运行:输入/输出,2018/9/30,北京大学,64,学习安装VC6.0 (课后,有条件的同学)使用 V6.0编程环境,进行编程。完成编程网格练习输入并运行程序示例1、2、3。,上机练习(第1次上机),2018/9/30,北京大学,65,程序设计语言概述 不同的程序设计语言 机器语言 汇编语言 高级语言(Fortran、C、C+、Java,) VC6.0编程环境,小结,

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

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。