谁有没有计算机语言的资料?比如:COBOL语言,FORTRAN语
比如:COBOL语言,FORTRAN语言,PROLOG和LISP, C++ ,J的资料. 麻烦说一下:它们的发展历史,特性,适用在什么软件开发,用它们来制作软件到目前有取得什么样的突破等.
COBOL语言: 当说到开发时,很多公司现正面临着危机。分配给完成项目的时间在缩短。软件的质量和程序员的生产率两者都受到需要改进的压力。而且公司能够解决软件分析和设计问题的唯一方法就是更多地依赖软件测试和不断改进中的开发工具。为走出这个困境,很多公司开始转到对象上。对象技术的首要优势,即软件部件的重复使用,已有助于降低项目的风险和改进软件的质量。但如果对象技术要对数以百万计的业务应用程序开发人员产生重大冲击,专家们就期待着面向对象(OO)的COBOL语言。面向对象的COBOL允许公司开发人员把已有的传统应用程序转到面向对象的环境,并使COBOL程序员不用学习一种全新的语言就能进展到使用面向对象技术。确定最佳的面向对象开发环境与具体项目的要求有关。对于多数业务应用开发任务,最佳方案是微聚公司的Object COBOL。此Object COBOL是通用的32位COBOL编译器,向应用程序编制人员提供了在同一产品里既符合ANSI标准的COBOL、又是面向对象的COBOL。面向对象技术和COBOL的结合对生成应用开发环境来说是一种强有力的合并。很多观察家把面向对象的COBOL看作一种入场券,让很多机构首次体验到对象的优势。这种优势包括提高可靠性、加快开发和减少维护。 总而言之,Object COBOL是所有面向对象开发环境中最好的方案。它像Smalltalk一样是真正的面向对象开发环境,而且又具有C++那样的可扩性和COBOL那样的可移植性。像COBOL一样,它可在多种工业平台上工作,包括Windows\,OS/2和Windows NT,并且不久还可工 作在UNIX上等。这些都是各公司考虑采用对象技术的关键因素。在那些要从传统环境转到客户机/服务器的公司的开发策略中,对象已成为至关重要的了。面向对象带来了重复使用性、灵活性和可适应性等优点,使得各项业务能利用现有程序代码,只要部分修改或增加而无须重 写所有代码。 如果对象技术要求重写代码,那末它就黯然失色了。转到对象的第一条理由就是(代码的)重复使用。虽然很多面向对象技术供应商鼓吹重复使用,但实际的情况是如果你移到了他们的环境,你就要从零开始。对Object COBOL来说不是这样的。今天约有80%的程序员,即接近300万人,使用COBOL。如果一家公司决定在一个项目上使用Object COBOL,那末它的职员对COBOL的熟练性就不会造成浪费。他们不仅能使用现有的技能,而且能使用现有的数据、代码以及他们的业务知识。 FORTRAN语言: FORTRAN语言是最早出现的计算机高级程序设计语言,它对程序设计语言的研究和发展产生了极其深刻的影响.随着计算机科学技术的飞速发展,FORTRAN语言也不断得到完善和充实,从传统FORTRAN,到结构化FORTRAN,再到具有现代特征的Digial Visual FORTRAN 5.0. 本章将介绍FORTRAN语言的发展历史,Digital Visual FORTRAN 5.0简介,Microsoft Developer Studio开发环境,FORTRAN 90语言书写格式,以及FORTRAN 90程序的编辑,创建,打开,保存,编译,连接和运行等内容. 2.1 FORTRAN语言发展概述 FORTRAN是英文"FORmula TRANslator"的缩写,译为"公式翻译器",它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域.FORTRAN语言以其特有的功能在数值,科学和工程计算领域发挥着重要作用. 早在1951年,美国IBM公司约翰·贝克斯(John Backus)针对汇编语言的缺点着手研究开发FORTRAN语言,并于1954年在纽约正式对外发布.称约翰·贝克斯提出的FORTRAN语言为FORTRANⅠ,FORTRANⅠ虽然功能简单,但它的开创性工作,在社会上引起了极大的反响.到1957年第1个FORTRAN编译器在IBM704计算机上实现,并首次成功运行了FORTRAN程序. 在1958年,对FORTRANⅠ进行了扩充和完善,引进了子函数等概念,推出了商业化的FORTRANⅡ版本.之后,FORTRAN语言发展迅速,多种版本相继在其它计算机上实现. 在1962年,推出了FORTRAN Ⅳ.FORTRAN Ⅳ没有充分考虑兼容性,导致FORTRANⅡ程序不能在FORTRAN Ⅳ系统中运行,使其应用受到了很大限制,这时语言不兼容性问题和影响被突出表现出来.此前也出现过FORTRAN Ⅲ,但由于存在严重缺陷,没有在计算机上实现. 随着FORTRAN语言版本的不断更新和变化,语言不兼容性问题日益突出,语言标准化工作被提上了日程.1962年5月,美国标准化协会(简称ANSI)成立相关机构着手进行FORTRAN语言标准化的研究工作,并于1966年正式公布了两个标准文本:美国国家标准FORTRAN(ANSI X3.9-1966)和美国国家标准基本FORTRAN(ANSI X3.10-1966),前者相当于FORTRAN Ⅳ,后者相当于FORTRANⅡ.基本FORTRAN是美国国家标准FORTRAN的1个子集,从而实现了语言的向下兼容,初步解决了语言的兼容性问题.通常称美国国家标准FORTRAN为FORTRAN 66.FORTRAN 66的推出在国际上产生了广泛影响,1972年国际标准化组织(简称ISO)在FORTRAN 66基础上制定了FORTRAN语言3级国际标准:基本级,中级和完全级. 20世纪60代末,结构化程序设计方法提出后,具有结构化特征的程序设计语言开始出现,如:ALGOL,PASCAL,MODULA,C等.如何将结构化特征引入FORTRAN 66引起计算机厂商和研究机构的高度重视,许多计算机厂商开始对FORTRAN 66进行不同程度的扩充,引入了结构化特征.针对这种情况,ANSI于1976年对FORTRAN 66(ANSI X3.9-1966)进行了修订,吸收了计算机厂商所扩充的1些行之有效的功能,同时增加了许多新内容.ANSI于1978年4月正式公布了新的美国国家标准(程序设计语言FORTRAN ANSI X3.9-1978),同时宣布撤消ANSI FORTRAN 3.9-1966,通常称新标准为FORTRAN 77(该版本原计划1977年公布).FORTRAN 77向下兼容FORTRAN 66.在1980年,FORTRAN 77被ISO正式确定为国际标准ISO 1539-1980,该标准分全集和子集.FORTRAN 77推出后,由于具有结构化特征,在社会上得到了广泛应用,同时由于扩充了字符处理功能,在非数值处理领域也能大显身手. 20世纪80年代末,FORTRAN 77结构化和现代化的研究开始兴起,到1991年5月,ANSI公布了新的美国国家标准FORTRAN(ANSI 3.198-1991).之后,ISO采纳该标准,并确定为国际标准ISO/IEC 1539-1:1991,新国际标准还采纳了我国计算机和信息处理标准化技术委员会程序设计分会提出的多字节字符集数据类型及相应的内部函数,为非英语国家使用计算机提供了极大的方便.通常称新标准为FORTRAN 90,FORTRAN 90向下兼容FORTRAN 77.之后不久又出现了FORTRAN 95. FORTRAN 90的推出,使传统FORTRAN语言具有了现代气息.微软公司将FORTRAN 90无缝集成在Developer Studio集成开发环境之中,推出了Microsoft FORTRAN PowerStation 4.0,使FORTRAN 90真正实现了可视化编程,彻底告别了传统DOS环境(字符界面),转到了现代Windows环境(视窗界面),共享微软公司Windows平台的丰富资源.在1997年3月,微软公司和数据设备公司(Digital Equipment Corp,简称DEC)强强联合,合作研究,开发和推出了功能更强的FORTRAN语言新版本:Digital Visual FORTRAN 5.0,它是Microsoft FORTRAN PowerStation 4.0的升级换代产品.DEC公司在高性能科学和工程计算方面拥有世界领先技术,其高质量的FORTRAN编译器遍及全球.1998年1月,DEC与Compag公司合并,DEC成为Compag公司的全资子公司,于是Digital Visual FORTRAN更名为Compag Visual FORTRAN,到目前为止,Visual FORTRAN的最新版本为Compag Visual FORTRAN 6.6. 详见: PROLOG语言: PROLOG language   一种逻辑程序设计语言。1972年法国科莫劳埃小组为了提高归结法的执行效率,研制出一个定理证明程序的程序执行器,取名为PROLOG(Programming In Logic),标志着第一个逻辑程序设计语言PROLOG的诞生。1974年及以后,R.科瓦尔斯基进一步从谓词逻辑的HORN子句的角度阐明PROLOG的理论基础,系统地提出逻辑程序设计的思想。   PROLOG语言的基本语句有三类,分别代表事实、规则和询问,并同有头(无体、有体)和无头的HORN子句相对应。因而用PROLOG语言进行的程序设计可归结为宣布事实,定义规则和提出询问。   PROLOG程序的解释执行过程采用特定的输入归结,即从目标语句出发求出它和原来子句集的一个子句的归结式(尾部和头部匹配),新的子句再与原来子句集的一个子句求归结式,以此类推。任一时刻都不在两个导出子句或原来子句集的两子句间求归结式。PROLOG解释系统实际上就是一个以归结原理为基础的定理证明程序或问题求解程序。   时空效率较低是影响PROLOG语言应用的重要问题,提高效率的途径是:改进PROLOG解释系统,采用PROLOG编译系统,研制PROLOG机,引入用于控制的元规则,采用启发式搜索方式,启用智能回溯,采用协同、并发求解技术,开发并行处理机制。   由于PROLOG解释程序能根据推理规则自动寻求问题的解,程序设计者就可把主要精力放在揭示对象间的逻辑关系上而不必过多地考虑过程的细节,这是向自动程序设计方向迈进了一步。但是PROLOG语言还具有一些非逻辑特征。例如为了控制回溯,采用CUT技术(切断技术,意即程序人员用CUT符!通知系统不再考虑过去已进行过但无用的搜索通路而且也无须记录回溯点的技术),引入谓词assert(在数据库中增添子句)ret ract(从数据库中删除子句)。这就使得系统的公理集合在推理过程中发生变化,这些都同一阶逻辑的基本思想不符。因此PROLOG还不是严格意义下的逻辑程序设计语言。为了使其更加逻辑化,需要将语言的非逻辑成分限制到最低程度,这方面的研究正在进行中。 LISP语言: LISP是最早和最重要的符号处理编程语言之一,它于1958年由美国的J. McCarthy提出,并于1960年发表了他的第一篇关于LISP的论文。之后,LISP很快受到人工智能工作者的欢迎,获得广泛应用。LISP是LISt Processing(表处理)的缩写。 LISP语言具有下列特点: 1、主要数据结构是表(符号表达式),而不是作为算术运算对象的数。 2、特性表简单,便于进行表处理。 3、最主要的控制结构为递归,适于过程描述和问题求解。 4、LISP程序内外一致,全部数据均以表形式表示。 5、能够产生更复杂的函数和解释程序。 6、对大多数事物的约束发生在尽可能晚的时刻。 7、数据和过程都可以表示成表使得程序可能构成一个过程并执行这个过程。 8、大多数LISP系统可以交互方式运行,便于开发各类程序,包括交互程序。 LISP的数据结构; 在基本LISP中,仅有一种数据类型,即表结构。大多数LISP程序设计中,数据是以表或者原子为专门形式。 原子 原子是LISP中最小的符号单位。原子有标识符,诸如I AM A STUDENT,3,XYZ,或者NIL等。它们没有组合部分,各种性质或属性可附加到单个原子上。 一个原子最重要的属性除其名字外是值,这与变量有值同义。一些原子有标准值:原子NIL的值是NIL,T的值是T。任何数字原子,其相应的整数或浮点数是它的值。这里要注意,原子不是"类型",任何原子,除常数外,可以给予任意值。 表 一个表递归地定义为括号内零个或n个元素的序列: (元素1 … 元素n) 其中每一个元素是一个原子或是一个表。零或者空表写成(),或者NIL。NIL既是原子又是表。表的固有递归结构非常灵活,便于表示各种信号。 例如: (4 6 7 9 14 17 20 24 76)一组数 ((-B)+(SQRT((B*B)-(4*A*C))))代数表达式 (I(know((that(gasoline can))explode)))语法分析句子 (YELLOW TABLE)断言 (AND(ON A B)(ON A C)(NOT(TOUCH B C)))合取子句 表的数据结构 LISP表的内部表示是由称为CONS单元的基元构成。每个CONS单元是一个地址,它包括一对指针,每个指针指到一个原子,或者指到另一个CONS单元。 LISP的表结构可以用来使任何数据结构模型化。例如,二维数组可以表示为由许多行组成的一张表,每行又是一张元素表。当然,对于许多目的,这种数组的实现是相当低效的。 控制结构 LISP是函数式程序语言,LISP的控制结构主要是应用函数指导控制流,其中变元又可以是应用函数。这点与大多数程序设计语言的顺序控制结构不同,在那里分离的句子是一句接一句地执行。在LISP中,语句与表达式没有区别,过程与函数也没有区别。每个函数,不管是否是一个语言原语,或是由用户定义的,都以指向一个表结构的形式返回一个单值。 LISP的变量约束及其辖域 在LISP中有3种主要的赋予符号含义的方法。这里我们将介绍其中最常用的2种:把变量约束到值上和建立函数。 变量约束到值上 变量本身并无什么含义,它只是一个符号。通过这个符号可以"达到"这个值。变量本身只不过是具有当前值的原子名称而已。当把此名称输入到LISP去时,LISP通过告诉原子的当前值,作为回答。这个名称与原子当前具有的值之间的联系称为约束。 建立函数 建立函数的方法与用值约束符号的方法相同。不过,这时的值不是事实,而是要做的事情。在完成这些之后,再把符号正确地输入到LISP中去,LISP不象以前那样理解对象,而是把对象理解为需要完成的某件事。 辖域 当一个值约束一个变量时,约束一直有效,直到使用者改变它为止。当约束来自最高层即来自键盘时,这总是对的。来自函数内部所建立的约束可以是永久性的,但当函数完成时,这些约束往往就消失,变量的名字将成为无约束的。如果在整个程序执行过程中始终保持变量的约束,那么变量被认为是全程变量。如果变量的约束是建立在单个函数的内部,而且当函数约束时,约束就消失,那么这是该函数的局部变量。 值得指出,如果局部变量已能解决问题,就不需要建立全程变量。不然的话,就会浪费计算机内存。 C++语言: 参考: JAVA语言: 参考: