Fortran

title: 历史.
content: Fortran语言是为了满足数值计算的需求而发展出来的。1953年12月,IBM公司工程师约翰·巴科斯(J. Backus)因深深体会编写程序很困难,而写了一份备忘录给董事长(Cuthbert Hurd),建议为IBM704系统设计全新的电脑语言以提升开发效率。当时IBM公司的顾问冯·诺伊曼强烈反对,因为他认为不切实际而且根本不必要。但赫德批准了这项计划。1957年,IBM公司开发出第一套FORTRAN语言,在IBM704电脑上运作。历史上第一支FORTRAN程序在马里兰州的西屋贝地斯核电厂试验。1957年4月20日星期五的下午,一位IBM软件工程师决定在电厂内编译第一支FORTRAN程序,当程序码输入后,经过编译,打印机列出一行讯息:“原始程序错误......右侧括号后面没有逗号”,这让现场人员都感到讶异,修正这个错误后,打印机输出了正确结果。而西屋电气公司因此意外地成为FORTRAN的第一个商业用户。1958年推出FORTRAN II,几年后又推出FORTRAN III,1962年推出FORTRAN IV后,开始广泛被使用。  1966年,美国标准化协会制定了Fortran(x3.9-1966,也就是Fortran 66)和Fortran(x3.10-1966)标准。这时Fortran语言还不是结构化的程序设计语言。  1976年,美国标准化协会重新对Fortran(x3.9-1966)进行了评估,公布了新的Fortran标准,也就是Fortran 77。Fortran 77是具有结构化特性的编程语言。Fortran77在短时间内取得了巨大的成功,广泛地应用于科学和工程计算,几乎统治了数值计算领域。  1980年,Fortran 77被ISO接纳为国际标准。  1991年发布的Fortran 90大幅改进了旧版Fortran的型式,加入了面向对象的观念与提供指针,并同时加强数组的功能。  Fortran后来又陆续推出Fortran 95、Fortran 2003、Fortran 2008等更新版本。
title: FORTRAN.
content: 最早的FORTRAN版本应用于IBM 704系统上,包含了32种语句,包括:
title: FORTRAN II.
content: 1958年IBM又推出"FORTRAN II".支援使用者撰写副程序(subroutines)以及函数(functions)。有六个新陈述如下:  接下来的几年内,FORTRAN II继续又支援codice_38和codice_39等资料型态(data types)。
title: FORTRAN III.
content: IBM继续开发"FORTRAN III"至1958年时已可以内建组合语言码并新增其它功能;然而这个版本却从未推出。有如704 FORTRAN和FORTRAN II、FORTRAN III等的开发过程包含了过多的机器相依性(machine-dependent),造成程序码不易移植到其他机器上的问题。早期提供FORTRAN版本的厂商经常为此所苦
title: FORTRAN IV.
content: 自1961年开始,由于客户的强烈要求,IBM开始发展"FORTRAN IV",目的在于移除一些FORTRAN II中过于依赖机器本身的程序码(例如:codice_16)同时新增一些新的功能,如codice_41资料型别。布尔类型(TRUE或者FALSE)与"逻辑IF语句"则取代了"算术IF语句"。FORTRAN IV于1962年推出,最早应用于IBM 7030("Stretch")计算机之上,以及其接续的IBM 7090和IBM 7094版本。
title: FORTRAN 66.
content: 早期的FORTRAN语言发展史上最重要的一件大事也许是美国标准协会("American Standards Association",即今日的ANSI)的委员们开始为FORTRAN制定标准规格,名为"American Standard Fortran." 1966年委员会推出两套FORTRAN标准版本,分别定义成"FORTRAN"(基于FORTRAN IV,用来应付"de facto"标准)和"Basic FORTRAN"(基于FORTRAN II,并且移除其平台依赖性)。FORTRAN第一套标准后来被称为"FORTRAN 66"(大家仍习惯称之为FORTRAN IV)。FORTRAN 66有效的成功第一套工业标准版的FORTRAN。其功能如下:
title: FORTRAN 77.
content: 在FORTRAN 66标准推出之后,各家编译器厂商不断推出更具扩充性的标准FORTRAN("Standard Fortran"),这使得ANSI于1969年开始着手于1966标准版本的修正工作。最后定稿于1977年,1978年四月正式推出FORTRAN。新的标准规格也就是著名的"FORTRAN 77",这个版本是基于FORTRAN 66之上新增许多功能,弥补过去的缺点:  1978年推出了一个重要的版本FORTRAN 77是为MIL-STD-1753 Release版。这个规格由美国国防部制定,这个标准化的FORTRAN 77编译器并未引入ANSI FORTRAN 77标准。一些新功能最终合并到Fortran 90标准版。  1991年推出IEEE 1003.9 POSIX标准版,为Fortran-77的程序人员提供了POSIX system上的呼叫。有超过一百种功能呼叫被定义在文件上。允许存取POSIX-相容的行程控制(process control)、信号取得(signal handling)、档案系统控制(file system control)、装置控制(device control)、程序指定(procedure pointing),以及资料流的输入与输出(stream I/O)。  由于成功的修正了FORTRAN 77发展流程,使得原本过于缓慢重复的程序设计可以顺利的应付计算机领域迅速的变化。同时,作为将近15年的“标准FORTRAN”,FORTRAN 77成为历史上最重要的一套电脑语言。
title: Fortran 90.
content: FORTRAN 77的被严重推迟的后续版本,非正式名称是"Fortran 90",最终于1992年作为ANSI标准发表。这一大版本添加了许多新特性以反映自1978年标准以来发展的在编程方面显著的变化:
title: Fortran 95.
content: "Fortran 95"仅是一个小改版,大部分修正了Fortran 90 standard一些较为显著的问题。虽然如此,Fortran 95仍有不少的扩充,尤其是在High Performance Fortran的规格:  Fortran 95的一个重要补充是ISO技术报告"TR-15581:增强的数据类型工具",非正式名称是"可分配的TR"。这一标准定义了codice_90数组的增强的应用,先于与完全的Fortran 2003兼容的Fortran编译器,以供使用。这些使用包括在过程伪参数列表中以及将函数返回值使用codice_90数组作为派生的类型组件。(codice_90数组比基于codice_93的数组更受欢迎,因为codice_90数组是由Fortran 95保证的,当它们退出范围时会被自动释放掉,避免了内存溢出的可能性。另外,别名也不再是优化数组引用时的一个问题,可以使编译器生成比用指针时更快的代码。)  Fortran 95的第二个补充是ISO技术报告"TR-15580:浮点异常处理",非正式名称是"IEEE TR"。这一标准定义了对IEEE浮点算术和浮点异常处理的支持。
title: Fortran 2003.
content: "Fortran 2003"有着更大幅度的改版。ISO Fortran Working Group (WG5)的官方网站有关于Fortran 2003新特性的详细总结,并有或者codice_108PostScript文件可供直接下载。  据该文所述,本版本的主要改进包括:
title: Fortran 2008.
content: Fortran 2003之后的下一个版本是Fortran 2008.一如Fortran 95,这只是一个小改版,略微更正了Fortran 2003的一些问题,并且合并了TR-19767的语言功能。  如同February 2007,新的功能包括了  2007年8月,资料型态BIT被删除了。2008年2月,Coarrays的计划已缩小,仅有Parallel I/O,而研发团队也被裁员了。
title: FORTRAN的Hello World程序.
content: 下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:  以Fortran 90/95自由格式的写法为例
title: FORTRAN的套件.
content: 几个著名的Fortran Package:

Summary: 福传(英语:Fortran),源自于「公式翻译」(英语:Formula Translation)的缩写,是一种程序语言。1957年由IBM开发出,是世界上第一个被正式采用并流传至今的高级编程语言。

Fortran: Fortran (; formerly FORTRAN, derived from "Formula Translation") is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.