程序设计语言的缺点 编译过程需要机器时间, 它可能超过易于调试所节省的时间 编译器可能产生低效的代码 如果用户不知道机器代码或编译器未提供合适的调试工具, 则程序调试可能非常困难
程序设计语言的缺点 •编译过程需要机器时间, 它可能超过易于调试所节省的时间 •编译器可能产生低效的代码 •如果用户不知道机器代码或编译器未提供合适的调试工具, 则程序调试可能非常困难
程序设计语言的分类 这是一个非常困难的问题,并没有公认的定义。这里给出一 些术语,有些是相互交迭的,一个语言可能归属于两个类别。 面向过程的语言( procedure- oriented) 用户刻划一个可执行操作集合,它将以某种顺序完成, 从而刻划了一个过程。关键因素是这些明确可执行的操 作,执行顺序由用户确定。 非过程型语言( nonprocedural) 这只是一个相对的术语,没有人定义过,也不可能定义。 意指用户指定的顺序步骤的减少程度,越接近于用户只 陈述问题而不指定求解步骤,语言就越是非过程的。 更进一步,可以有一个有序的步骤序列,其中每一步是 某种程度上非过程性的,或是一个可执行操作的集合, 其顺序用户并没有指定。两种情形均导致更多的非过程 性
程序设计语言的分类 这是一个非常困难的问题,并没有公认的定义。这里给出一 些术语,有些是相互交迭的,一个语言可能归属于两个类别。 •面向过程的语言(procedure-oriented) 用户刻划一个可执行操作集合,它将以某种顺序完成, 从而刻划了一个过程。关键因素是这些明确可执行的操 作,执行顺序由用户确定。 •非过程型语言(nonprocedural) 这只是一个相对的术语,没有人定义过,也不可能定义。 意指用户指定的顺序步骤的减少程度,越接近于用户只 陈述问题而不指定求解步骤,语言就越是非过程的。 更进一步,可以有一个有序的步骤序列,其中每一步是 某种程度上非过程性的,或是一个可执行操作的集合, 其顺序用户并没有指定。两种情形均导致更多的非过程 性
在 Fortran出现前, 语句Y=A+B*C一D被认为是非过程性的 因为它不能写成一个可执行单元和被任何系统翻译 随着编译系统的发展,过去非过程的今天变成过程的, 而今天非过程的,明天可能是过程的。 当今非过程系统的例子如 RPG(报告生成器)或排序生成器, 只需给定输入和希望的输出即可,过程将被自动完成。 说明型语言( Declarative Language)—完全非过程的 程序只定义做什么,不需指定如何做,如函数式(归 约)、逻辑式(归结、合一)语言及其它甚高级语言
在Fortran出现前, 语句Y=A+B*C-D/E被认为是非过程性的。 因为它不能写成一个可执行单元和被任何系统翻译。 随着编译系统的发展,过去非过程的今天变成过程的, 而今天非过程的,明天可能是过程的。 当今非过程系统的例子如: RPG(报告生成器)或排序生成器, 只需给定输入和希望的输出即可,过程将被自动完成。 •说明型语言(Declarative Language)——完全非过程的 程序只定义做什么,不需指定如何做,如函数式(归 约)、逻辑式(归结、合一)语言及其它甚高级语言
面向问题的语言( problem- oriented) 该术语有不同解释和用法,最常见用法是强调一个语言 易于对特定问题求解(相对汇编语言),很多人将其用 于针对非常特殊的应用领域 面向应用的语言( Application- oriented) 这是极易误解的、但广为使用的术语。实际上,所有语 言均是面向应用的,只是领域大小不同罢了。 如: Fortran适合数值科学计算, Cobol适合商业数据处理 PL/则二者均适合,领域更广,又称通用( general purpose)语言,实际上很少有真正通用的语言 般考虑:数值科学应用,非数值应用(如形式代数), 商业数值处理,串、表处理等 更特殊的领域:网形、仿真、数控、设备检査等
•面向问题的语言(problem-oriented) 该术语有不同解释和用法,最常见用法是强调一个语言 易于对特定问题求解(相对汇编语言),很多人将其用 于针对非常特殊的应用领域。 •面向应用的语言(Application-oriented) 这是极易误解的、但广为使用的术语。实际上,所有语 言均是面向应用的,只是领域大小不同罢了。 如:Fortran适合数值科学计算,Cobol适合商业数据处理 PL/1则二 者均适 合,领 域更 广,又 称通用 ( general purpose)语言,实际上很少有真正通用的语言 一般考虑:数值科学应用,非数值应用(如形式代数), 商业数值处理,串、表处理等 更特殊的领域:网形、仿真、数控、设备检查等
专用语言( special purpose) 用于满足单一的目标(指定领域;对特殊应用易用;提高 效率等) 问题定义或规约语言( problem- defining, specification) 文字地定义问题,或特别定义输入、输出,但不定义变换 方法 问题求解语言( problem- solving) 可以完整地刻划一个问题的求解,这也是一个相对的术语
•专用语言(special purpose) 用于满足单一的目标(指定领域;对特殊应用易用;提高 效率等) •问题定义或规约语言(problem-defining, specification) 文字地定义问题,或特别定义输入、输出,但不定义变换 方法 •问题求解语言(problem-solving) 可以完整地刻划一个问题的求解,这也是一个相对的术语