大学信息技术导论第5章.ppt
《大学信息技术导论第5章.ppt》由会员分享,可在线阅读,更多相关《大学信息技术导论第5章.ppt(160页珍藏版)》请在三一办公上搜索。
1、大学信息技术导论第5章,2004年10月,第5章 程序设计基础,程序设计语言是人们用来向计算机传递信息与下达命令的通信工具。软件发展的三个阶段:1946年1956年 低级语言(机器语言或汇编语言),追求功效,顺序程序。1956年1968年 高级语言(数学语言或接近于自然语言(英语)的语言),追求易读性和易维护性,并发程序和并行程序。1968年 高级语言,结构良好性,使之易读、易维护,并发程序和 并行程序。程序设计语言的发展趋势:模块化 简明性 形式化 并行化 可视化,5.1 基本概念和程序设计语言的发展,基本概念:程序、子程序、子例程、协同例程、模块,程序的顺序性、并发性、并行性和分布性等。,
2、5.1.1 基本概念,1.程序 指令是计算机可以理解并执行的操作命令,有完整含义,在高级语言中表现为可执行的语句。机器指令是CPU可以理解并执行的操作命令。用二进制数0和1组成的一串代码(1100110是8086的加法指令e.g.)一条指令对应着一种基本操作,由两部分组成:操作码和操作数。操作码是指明该指令要完成的操作,如加、减、传送、输入等。操作数是指参加运算的数或者数所在的单元地址。计算机所能执行的全部指令,就是计算机的指令系统(Instruction Set),为特定体系结构独有。,5.1.1 基本概念,程序:狭义地定义为计算机指令的集合;广义地定义为说明一项任务或工作过程的符 号代码形
3、式,这种符号代码人可以读懂,而 由计算机处理执行。程序的实际工作过程称为程序的执行。程序的静态特性:与执行过程无关的特性。程序的动态特性:与执行过程有关的特性。,5.1.1 基本概念,程序必须具备的特征程序必须具有解决某一问题的特定任务与功能,都需要回答“解决什么或做什么”的问题程序要遵循一定的规则和步骤,而不是多条指令的胡乱堆砌。程序必须按照算法所规定的语法格式和步骤,回答“怎样做”和“如何执行”的问题程序的执行者是计算机,由于计算机有其自身的逻辑和执行方式,所以程序必须符合计算机的逻辑及处理方式,才能被计算机识别和执行程序是由人来编写的,是人对要处理和解决问题的方法和步骤要求计算机操作处理
4、的说明程序可以连续自动运行。计算机能够在无需人干预的情况下,连续、自动地执行程序,最终给出结果,5.1.1 基本概念,2.程序单位构成程序基本成分:子程序、子例程、协同例程、递归例程和模块。把计算机所进行的一项信息处理定义为一个计算任务,与子计算任务相应的处理对象和处理规则的描述被称为子程序。可由其它程序或子程序调用的子程序被称为是子例程。协同例程是指一组可以互相调用的程序单位,它们彼此处于平等地位,调用后毋须返回到开始位置,且自带工作区。递归例程是可以作为其本身的子例程而被调用的例程。模块是具有相对独立性的一组逻辑上有关的实体。在现代高级语言中,有各种定义模块的方式,但其主要成分是一组说明和
5、一组语句。,5.1.1 基本概念,3.源程序为解决特定的问题用程序的宿主语言编写的正文,称为源程序(Source Program)或源代码(Source Code)。源代码由顺序执行的指令组成。按语言是否可以直接被机器识别的程度可以分为机器语言、汇编语言和高级语言三类,前两者为低级语言。低级语言中,源程序是一组机器指令和有关的数据。高级语言中,源程序一般是一组说明和语句。,5.1.1 基本概念,机器语言 是表示成数码形式的机器基本指令集,或者是操作码经过符号化的基本指令集,也称为面向机器的语言。用二进制代码指令与计算机打交道,可以被计算机硬件直接识别,不需要翻译,因此执行速度快,执行效率高。缺
6、点是不直观,编程工作量大,易出错,程序难读、难记、难修改,也不具有通用性(在一种型号的机器上编写的程序一般不能在其他型号的机器上运行),对编程人员要求高。,5.1.1 基本概念,汇编语言 用一些简单的助记符(约定的某些为人们易记忆和理解的符号)来描述指令(如加法指令用“ADD”,数字用10进制或16进制来表示),因此又叫作“符号语言”。一般情况下,汇编语言的指令和机器语言的指令是一一对应的。宏汇编指令 一条宏汇编指令可以代替若干条机器指令。同机器语言的指令相比,汇编语言指令的含义比较直观,也易于阅读和理解。计算机并不能直接识别和执行汇编语言的指令,必须将它们翻译成机器语言指令,计算机才能执行;
7、把汇编语言程序翻译成机器语言程序的程序为汇编程序(Assembler),而称翻译前的程序为汇编语言源程序,称翻译后的程序为目标程序。,5.1.1 基本概念,低级语言更接近于计算机的逻辑,而不是人类思维的过程描述。高级语言是为普通用户使用而设计的程序语言,比较接近自然语言和数学语言,对机器依赖性低,在一定程度上与具体机器无关,即适用于各种机器的计算机语言。易学、易用、易维护。用变量名代替了存储单元的地址,不必由人们直接分配地址和管理存储空间。程序具有可移植性。不能被计算机硬件直接识别,需要翻译成机器可执行的目标代码后方可执行。,5.1.1 基本概念,编译程序把高级语言所写的程序作为一个整体进行处
8、理,将高级语言指令一次翻译为机器语言组成的可执行代码文件,即编译程序生成独立可执行的目标代码。编译后与子程序库链接,形成一个完整的可执行程序。,解释程序对高级语言程序将源程序逐句分解为最低级的机器语言代码并执行,而不产生目标程序。解释方式便于查找错误,但效率较低。,4.编译程序和解释程序,5.1.1 基本概念,伪代码 当编写的程序并不完全生成可执行的目标代码,而由计算机内部产生中间代码(程序员无法看到)被称为伪代码。伪代码保留在内存中,等待用户或程序员的执行调用。可执行的目标代码最后被执行,但并不保留在内存中。所有程序,即使它们有EXE扩展名,也都必须使用解释程序或编译程序来运行(如VB)。,
9、5.1.1 基本概念,5.程序理论研究程序的语义性质和程序设计及开发方法的理论。主要包括程序语义理论、数据类型理论、程序逻辑理论、程序验证理论、并发程序设计理论和混合程序设计理论。程序理论(theory of programs)和算法理论是计算机科学的两大支柱。程序理论研究程序的规约、变换和验证,基本问题是如何建立一个相对完善的理论框架,为软件的设计和开发方法提供理论依据。这个框架应能提供有效地描述程序规约的语言;应能定义可操作的变换方法以便能规约构造可执行的程序;应能给出验证程序与其规约之间一致性的机制。,5.1.1 基本概念,6.程序设计语言语义用数学方法刻画程序语句的加工过程,并将其执行
10、结果形式化。也叫形式语义。分为四类:操作语义,模拟程序执行中计算系统的操作过程。指称语义,把程序作为论域间的泛函以便刻画程序的执行数学结果。公理语义,用公理化方法刻画程序与被加工数据的逻辑关系。代数语义,把程序执行的结果定义为满足某种公理体系的代数结构。在高级语言中广泛使用的过程说明和过程调用的精确概念和实现机制,就是在语义理论的研究中逐步明确的。ALGOL60是第一个明确区分语法和语义的程序设计语言。,5.1.1 基本概念,7.并发程序 包含多个没有因果关系进程的程序。进程间的通信、同步和它们的并行执行是并发程序区别于顺序程序的基本操作。计算机科学中的并发概念是由 Petri 在1962年提
11、出的。20世纪70年代初期,为了保证在操作系统中多个并行执行进程的正确性,导致了并发程序理论的产生。进入80年代以来,随着超大规模集成电路技术的日臻成熟,并行和分布计算机系统得到了迅速发展,成为程序理论的一个重要分支。并发程序理论研究的内容包括:并行进程的描述(用代数方法),并行进程的相互模拟,各种通信及同步机制以及死锁及活性,可观察性和发散性等并发现象。,5.1.1 基本概念,8.程序设计(programming)设计、编制和调试程序的方法与过程,是目标明确的智力活动。程序设计的分类:按结构性质,有结构化(具有由基本结构构造复杂结构的层次性)与非结构化程序设计之分按用户要求,有过程式与非过程
12、式程序设计之分按程序的成分性质,有顺序、并发、并行和分布式程序设计之分按设计风格,有逻辑式、函数式和对象式程序设计之分,三者的设计基本构件分别为逻辑子句、函数和对象类。,5.1.1 基本概念,9.程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。程序设计语言(programming language)包含三个方面,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规则,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示各个记号的特定含义,但不涉及使用者。语用表示
13、程序与使用者的关系。程序设计语言的基本成分包括:数据,用以描述程序中所涉及的数据;运算,用以描述程序中所包含的运算;控制,用以表达程序中的控制构造;传输,用以表达程序中数据的传输。,5.1.1 基本概念,程序设计语言的分类 按照语言级别低级语言与高级语言 按照用户要求过程式语言(如FORTRAN、COBOL、ALGOL60)和非过程式语言,非过程式语言用户无法明确 表示计算过程的一组可顺序执行的运算(如PROLOG)按照应用范围通用语言(非单一目标,如FORTRAN、COBOL、ALGOL60)和专用语言 按照使用方式交互式语言(具有反映人机交互作用的语 言成分,如BASIC)和非交互式语言(
14、如Pascal、C)按照成分性质顺序语言、并发语言和分布语言。传统的程序设计语言大都以冯诺伊曼式的计算机为设计背景,因而又称为冯诺伊曼式语言。J.Backus于1977年提出的函数式语言FP则以非冯诺伊曼式的计算机为设计背景,因而又称为非冯诺伊曼式语言。20世纪80年代,在结构化程序设计方法的基础上,提出了面向对象的程序设计方法。相应产生了面向对象的语言。典型的面向对象的语言有C+,Delphi等。,5.1.1 基本概念,10.程序设计方法学(programming methodology)以程序设计方法为研究对象的学科。程序设计方法可以分为两类。一类是全局性的,如结构化程序设计方法。它不仅要
15、求编出的程序结构良好,而且要求程序设计过程是结构化、层次式、逐层降低抽象级别的;另一类则是局部性的,如子例程方法、协同例程方法等。,5.1.2 程序设计语言的发展,1.FORTRAN(FORmula TRANslation)语言IBM公司1956年创立的世界上第一个高级程序设计语言,一种面向过程的非常适合于科学计算的语言。它已经具有相当完善的工程设计计算程序库和工程应用软件。FORTRAN支持一些最常用的编码方式,如算术表达式、逻辑运算、过程调用、循环和条件等等,提高了程序员的编程效率。第一个FORTRAN语言标准称为FORTRAN6670年代修订为FORTRAN77,分全集和子集。1991年
16、国际标准化组织又批准了新的FORTRAN标准,称为Fortran90(规定F后面的6个字母用小写),它是国际上第一个支持多字节字符集的标准,该标准采纳了我国FORTRAN工作组关于CHARACTER(KIND=,)的建议。新一代高性能FORTRAN(HPF)正在设计中。HPF的目标是支持并行程序设计;能在SIMD或MIMD机上获得较高性能;易于在不同体系结构的计算机之间移植其目标代码;扩充数据分布特性和并行语句。,5.1.2 程序设计语言的发展,2.ALGOL(ALGOrithmic Language)语言1958年在苏黎世举行的一次ACM和GAMM(欧洲小组)的联合会议上,关于算法表示法的建
17、议被综合为ALGOL,又称ALGOL 58。“关于算法语言ALGOL 60的报告”是程序设计语言发展史上的一个里程碑,是程序设计语言由技艺转向科学的重要标志。ALGOL是一种用日常英语以及与常用数学表达式相近的形式表现算法的语言,没有输入输出语句,全部以过程的形式进行描述,以块结构为基础。ALGOL的主要特点有:首次引进局部性概念,既扩充了语言的表达能力,又节省了内存空间;语言含有动态成分,从而明显提高了语言的表达能力,不过实现中的系统开销也明显增加;递归性的引进开拓了软件的研究领域,促进了软件的发展;语法和语义均有严格描述,语法的描述采用巴科斯形式体系(BNF),结构清晰,理论严谨。ALGO
18、L60的国际标准于1984年公布(IS01538:1984),全名为Programming Language ALGOL60。,5.1.2 程序设计语言的发展,3.COBOL(COmmon Business Oriented Language)语言一种用于事务处理的通用程序设计语言。1959年Grace Murray Hopper开始,同年5月,成立CODASYL,要求面向用户,面向问题,与机器无关,用简单英语或类英语表示,并尽可能避免符号化。1960年4月,COBOL 60。COBOL最早应用于事务数据处理,并使用文件、记录、组项、初等项的数据描述方法。COBOL语言将其核心和功能模块均分成
19、若干级,故可以灵活地构造功能上具有积木式的但又是标准的适用于不同层次的语言实现系统,从而适应不同行业的实际需求。COBOL程序由4个部组成:标识部用于刻画程序的标识性特征;环境部用于刻画程序和计算机环境有关的成分;数据部用于刻画数据(包括文件、记录、组项和初等项等)定义的构成以及相关特征和属性;过程部用于刻画处理加工流程,采用节、段、语句的结构层次。目前的COBOL国际标准版本是ISO COBOL 1989-1985。直到今天,仍然有许多用COBOL编制的程序在大型机上运行。,5.1.2 程序设计语言的发展,4.LISP(LISt Processing)语言 用于处理被称为“表”的特殊数据集的
20、函数式程序设计语言,J.McCarthy于1960年创立。在人工智能领域内曾被广泛使用。LISP的主要特点:程序的通常形式是一串函数定义,其后跟着一串带有参数的函数调用,函数之间的关系只是在调用执行时才体现出来。LISP中没有语句概念,也没有分程序结构或其它语法结构。语言中的一切成份都是以函数的形式给出。在标准LISP中只有很少几个原始函数,虽然现有的LISP系统已增加了大量的内部函数,但这些新增加的函数都可以用最初的原始函数来表示。在LISP中,程序和数据在形式上是等价的。LISP的唯一数据结构是S表达式(表),而程序本身也是用S表达式写的,因此可以把程序当作数据来处理,也可以把数据当作程序
21、来执行。递归是LISP的基础,是语言的主要控制结构,它不象大多数程序设计语言那样以迭代(循环)作为主要的控制结构。LISP的递归处理是基于递归定义的数据结构。,5.1.2 程序设计语言的发展,5.BASIC(Beginners All-purpose Symbolic Instruction Code)最简单易学的交互式高级程序设计语言。由美国Dartmouth学院数学系的Thomas E.Kurtz和John.G.Kemeny两位教授于19631964年间开始研制,1964年正式推出。广泛应用于数值计算、数据处理、实时控制、绘图、游戏等多种领域。1978年美国发布最小BASIC国家标准(AN
22、SI X3.60-78),1984年又被定为国际标准(IS0 6373-84),1987年美国发布全BASIC国家标准(ANSI X3.113-87)。我国于1991年发布了BASIC子集国家标准(GB 12856-91)。Microsoft于1991年推出VB(Visual Basic)语言,称为“可视化BASIC”,是重要的多媒体编程工具语言。它是以结构化BASIC语言为基础,以事件驱动作为运行机制的新一代可视化程序设计语言。VB既保留了BASIC语言简单易用的优点,又充分利用了Windows提供的图形环境。,5.1.2 程序设计语言的发展,6.PASCAL(Philips Automat
23、ic Sequence CALculator)语言世界上第一个结构化程序设计语言,简明、结构化。PASCAL语言的主要特点是:丰富的数据结构和构造数据结构的方法,除了整型、实型、布尔型和数组外,还提供了字符、枚举、子域、记录、集合、文件、指针等类型,由这些数据结构可以方便地描述各种事务元;简明灵活的控制结构,其结构语句包括:复合语句、如果语句、情况语句、While语句、Repeat语句、For语句和处理记录变量分量的缩写形式With语句;编译运行效率高;有利于书写程序设计语言的编译程序。BSI(英国标准化学会)于1982年正式出版了PASCAL语言的英国标准(BS 6192,即ISO 7185
24、),Specification for Computer Programming Language PASCAL。我国于1987年正式生效的国家标准(GB 7591-87),全名为程序设计语言PASCAL。1993年ISO又公布了有关修订标准(ISO/IEC 7185:1990)。1983年,Borland公司创始人Philippe Kahn和Anders Hejlsberg,合作研制了Turbo Pascal。,5.1.2 程序设计语言的发展,7.PROLOG(PROgramming in LOGic)语言一种处理逻辑问题的逻辑程序设计语言。曾广泛用于关系数据库、数理逻辑、抽象问题求解、自然
25、语言理解等多种领域。1972年前后,英国的Kowalski和法国的Colmeraur提出“逻辑可用作程序设计语言”这一基本思想,PROLOG这一语言也被提出来了。20世纪80年代初,日本曾将PROLOG语言定为第五代计算机的核心语言。曾在PC上流行的Turbo PROLOG是美国Borland公司1986年推出的。无论是功能还是运行速度,此编译程序都很成熟,使用它可生成任一实际应用原型,实现动态关系数据库,建造专家系统和专家系统工具,完成语言翻译,形成同现有软件的自然语言交互,解方程,求微积分,设计智能软件,管理工业过程以及作情报检索等。PROLOG语言的主要特点有:使用事实和规则;不作初始说
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 信息技术 导论

链接地址:https://www.31ppt.com/p-5816900.html