程序语言的分类
考试要求: 掌握     
知识路径:  > 计算机系统基础知识  > 计算机软件基础知识  > 程序设计语言和语言处理程序知识  > 程序设计语言的基本成分(数据、运算、控制和传输)、函数调用机制  > 程序语言概述  > 程序语言的基本概念  > 程序设计语言的分类


 
       程序语言的分类没有统一的标准,这里根据设计程序的方法将程序语言大致分为命令式和结构化的程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。
       (1)命令式程序设计语言。命令式语言是基于动作的语言,在这种语言中,计算被看成是动作的序列。命令式语言族开始于Fortran,Pascal和C语言都可以体现命令式程序设计的关键思想。
       通常所称的结构化程序设计语言属于命令式语言类,其结构特性主要反映在以下几个方面:一是用自顶向下逐步精化的方法编程;二是按模块组织的方法编程;三是程序只包含顺序、判定(分支)及循环构造,而且每种构造只允许单入口和单出口。结构化程序的结构简单清晰、模块化强,描述方式接近人们习惯的推理式思维方式,因此可读性强,在软件重用性、软件维护等方面都有所进步,在大型软件开发中曾发挥过重要的作用。目前仍有许多应用程序的开发采用结构化程序设计技术和方法。C、Pascal等都是典型的结构化程序设计语言。
       (2)面向对象的程序设计语言。程序设计语言的演化从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言,反映的就是一条抽象机制不断提高的演化道路。
       面向对象的程序设计在很大程度上应归功于从模拟领域发展起来的Simula,其提出了对象和类的概念。C++、Java和Smalltalk是面向对象程序设计语言的代表,它们都必须支持新的程序设计技术,如数据隐藏、数据抽象、用户定义类型、继承和多态等。
       (3)函数式程序设计语言。函数式语言是一类以λ-演算为基础的语言,其基本概念来自于LISP,这是一个在1958年为了人工智能应用而设计的语言。函数是一种对应规则(映射),它使定义域中每个元素和值域中唯一的元素相对应。
       函数定义1:Square[x]:=x*x
       函数定义2:Plustwo[x]:=Plusone[Plusone[x]]
       函数定义3:fact[n]:=if n=0 then 1 else n*fact[n-1]
       在函数定义2中,使用了函数复合,即将一个函数调用嵌套在另一个函数定义中。在函数定义3中,函数被递归定义。由此可见,函数可以看成是一种程序,其输入就是定义中左边括号中的量。它也可将输入组合起来产生一个规则,组合过程中可以使用其他函数或该函数本身。这种用函数和表达式建立程序的方法就是函数式程序设计。函数式程序设计语言的优点之一就是对表达式中出现的任何函数都可以用其他函数来代替,只要这些函数调用产生相同的值。
       函数式语言的代表LISP在许多方面与其他语言不同,其中最为显著的是,其程序和数据的形式是等价的,这样数据结构就可以作为程序执行,程序也可以作为数据修改。在LISP中,大量地使用递归。常见的函数式语言有Haskell、Scala、Scheme、APL等。
       (4)逻辑型程序设计语言。逻辑型语言是一类以形式逻辑为基础的语言,其代表是建立在关系理论和一阶谓词理论基础上的Prolog。Prolog代表Programming in Logic。Prolog程序是一系列事实、数据对象或事实间的具体关系和规则的集合。通过查询操作把事实和规则输入数据库。用户通过输入查询来执行程序。在Prolog中,关键操作是模式匹配,通过匹配一组变量与一个预先定义的模式并将该组变量赋给该模式来完成操作。以值集合ST上的二元关系R为例,R实现后,可以询问:
       ①已知ab,确定Rab)是否成立。
       ②已知a,求所有使Ray)成立的y
       ③已知b,求所有使Rxb)成立的x
       ④求所有使Rxy)成立的xy
       逻辑型程序设计具有与传统的命令型程序设计完全不同的风格。Prolog数据库中的事实和规则是形式为“P:-P1,P2,…,Pn”的Hore子句,其中n≥0,Pi(1≤in)为形如Ri(…)的断言,Ri是关系名。该子句表示规则:若P1,P2,…,Pn均为真(成立),则P为真。当n=0时,Hore子句变成P,这样的子句称为事实。
       一旦有了事实与规则后,就可以提出询问。测试用户询问A是否成立时,采用归结方法。
       ①如果程序中包含事实P,且P和A匹配,则A成立。
       ②如果程序中包含Hore子句“P:-P1,P2,…,Pn”,且P和A匹配,则Prolog转而测试P1,P2,…,Pn。只有当P1,P2,…,Pn都成立时才能断言P成立。当求解某个Pi失败时,则返回到前面的某个成功点并尝试另一种选择,也就是进行回溯。
       ③只有当所有可能情况都已穷尽时,才能推导出P失败。
       Prolog有很强的推理功能,适用于书写自动定理证明、专家系统和自然语言理解等问题的程序。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有