程序设计语言的历史回顾与分类 下载本文

为了提高软件生产率和改善软件可移植性,提出开发语言的同时开发支持该语言的可移植环境(APSE)。 ADA是强类型结构化语言。封装的程序包是程序资源构件。用户只能版程序包规格说明中显示定义的数据(包括抽象数据类型)和操作。数据结构和操作过程或函数)的实现在程序包中完成。封装支持模块性和可维护性。规格说明和体的分离支持早期开发(可延迟决策)。分别编译可组成复杂的大型软件。ADA有并发、异常机制。可定义精确的数据(如浮点数小数点后任意多的位数)。有将数据对象、类型、过程参数化的类属机制。有为目标机写目标程序(机器语言的或汇编语言地)的低级设施,可对字节、字位操作。 ADA的私有类型支持数据隐藏,程序包可实现数据抽象。明确的标识和运算符重载概念,既方便程序员又使程序好读且安全。强调可读性胜于可写性,ADA程序自成清晰的文档。ADA语言的开发过程完全按软件工程方式进行。严格禁止方言。美国国防部有一个严格管理ADA及其环境的机构AJPO(ADA联合规划办公室)负责ADA的确认、修改、维护、培训。

由于ADA过多强调安全性和易读性,ADA编译程序要做较多的静态检查,因而体积庞大(约20万句、512KB的微机装下了微机ADA编译就剩不下工作空间了)。程序代码较长,虽不像COBOL繁琐但要比C语言程序长60%。运行效率,特别是嵌入式实时控制应用中,通过交叉编译得到的目标机代码一时还

难满足要求。环境工具发展缓慢,因为除军方外民间公司更薄开发对所有语言通用的计算机辅助软件工程环境(CASE)。自80年第一个语言版本,83年修改定型至今,前后10年,ADA没有达到投资者预想的成就。

已看到ADA反映的80年代初期的软件工程技术,随着软件工程本身向集成化、可重用、面向对象方向发展,ADA已有一些不适应了。但美国军方还在合力支持,因而ADA还有一段发展时期。

70年代末到80年代初值得一提的还有FORTH语言。FORTH是典型的中级语言。它是汇编语言指令码向用户自定义方向的发展,也就是说,用户可以面向一个堆栈机器模型定义操作命令—字(WORD)。最低层的字是指令码,逐层向上,上层字由下层组成。因此,FORTH系统有良好的继承性。系统提供核心字、解释器字、编译字和设备字。对于简单的计算解释器字直接执行命令(字),复杂计算可将字定义编译成目标码存入堆栈供以后执行。有汇编字集合以便用户直接使用机器,要求字集合操作数值计算,引用字集合使用户可以引用系统和用以前已定义的字。FORTH程序员首先看系统中字的字典,以它们组合成新字,进而构成程序。FORTH程序的逆波兰表示法便利于解释编译,这对长期从事汇编编程的程序员并不生疏。FORTH把具体的机器

抽象为堆栈机,既可以使用程序员直接操纵机器又不涉及具体机器指令码、操作码、存储安排。而且良好的继承性使程序越编越短,在最终用户层一两个命令就完成了程序设计。它大受控制领域、要求单片、单板计算机(例如仪表工业)领域的程序员喜爱。

FORTH是C.MOORE一个人开发的语言,他于1968年在IBM 1130机器上实现第一个FORTH。他说他的语言是第四代的(FOURTH-GENERATION)。由于1130只允许五个字符的名字才叫做FORTH。1973年成立FORTH公司并把它投入航天工程应用并发展了通用商务FORTH系统。此后世界各地开始FORTH。1976年成立欧洲FORTH用户小组(EFUG),1978年成立FORTH标准化国际组织,80年发布FORTH-79标准文本。与此同时美国FORTH爱好者小组(FIG)也制定了标准 FIG-FORTH。各国天文行业,仪表行业纷纷以其为行业用计算机语言。如今,各种微机上均配有FORTH软件。

FORTH并不好读,也不宜编大程序。查在它自己的领域简单好用、扩充方便、编译迅速。与传统语言追求的目标大相径庭。给人耳目一新。

6.80年代面向对象对象发展

Ada大、功能齐全、开发 资可以说是程序设计语言之最。但它还没有普及就有些落伍了。可能今后不会有人再投入巨资去开发大型过程语言。80年代继续向软件危机开战,但软件工程以

陈旧技术难于作出庞杂的软件工具。为了改善这种情况,人们乞灵于面向对象技术。

程序设计语言纷纷向面向对象靠拢。正如上一个10年程序设计语言结构化一 。这是 主要特点是。80年代的第二个特点是“用户友好”的所谓第四代语言的出现。80年代 的第三个特点是各种技术相互渗透各种更高级非过程性语言出现。

1972年美国施乐公司保罗·奥特研究中心的A.KAY领导的软件概念小组为方便不同用户处理各种信息在小机器上搞了一个 DYNABOOK计划。它以全新的“对象”概念建立自己的系统。 SMALLTALK语言是该系统的软件。专用的硬件机、SMALLTALK环境、用户界面、面向对象程序设计风格构成了整个系统。

“对象”是有自己的数据和操作的实体,各对象相对封闭。程序设计就是建立应用系统中的对象群,并使之相互必消息。接到消息的对象就在自己封闭的存储中响应执行操作。操作的结果是改变这组对象的状态、完成计算(发出输出消息,对象响应后完成输出)。

为了使各自封闭的对象数据和操作不致多次重复定义。SMALLTALK有类和继承的概念。类如同传统语言中的类型,只有类的实例进入实际运算(叫实例对象)。类对象中的数据和操作可为它的子类继承,它自己的数据和操作也继承自超类。于