FORTRAN

✍ dations ◷ 2024-12-22 21:52:04 #FORTRAN
福传(英语:Fortran),源自于“公式翻译”(英语:Formula Translation)的缩写,是一种编程语言。1957年由IBM开发出,是世界上第一个被正式采用并流传至今的高级编程语言。Fortran语言是为了满足数值计算的需求而发展出来的。1953年12月,IBM公司工程师约翰·巴科斯(J. Backus)因深深体会编写程序很困难,而写了一份备忘录给董事长斯伯特·赫德(英语:Cuthbert Hurd)(Cuthbert Hurd),建议为IBM704系统设计全新的电脑语言以提升开发效率。当时IBM公司的顾问冯·诺伊曼强烈反对,因为他认为不切实际而且根本不必要。但赫德批准了这项计划。1957年,IBM公司开发出第一套FORTRAN语言,在IBM704电脑上运作。历史上第一支FORTRAN编程在马里兰州的西屋贝地斯核电厂试验。1957年4月20日星期五的下午,一位IBM软件工程师决定在电厂内编译第一支FORTRAN编程,当代码输入后,经过编译,打印机列出一行消息:“源程序错误……右侧括号后面没有逗号”,这让现场人员都感到讶异,修正这个错误后,打印机输出了正确结果。而西屋电气公司因此意外地成为FORTRAN的第一个商业用户。1958年推出FORTRAN Ⅱ,几年后又推出FORTRAN Ⅲ,1962年推出FORTRAN Ⅳ后,开始广泛被使用。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等更新版本。最早的FORTRAN版本应用于IBM 704系统上,包含了32种语句,包括:1958年IBM又推出FORTRAN II.支持用户撰写副编程(subroutines)以及函数(functions)。有六个新陈述如下:接下来的几年内,FORTRAN II继续又支持DOUBLE PRECISION和COMPLEX等数据类型(data types)。IBM继续开发FORTRAN III至1958年时已可以内置汇编语言码并新增其它功能;然而这个版本却从未推出。有如704 FORTRAN和FORTRAN II、FORTRAN III等的开发过程包含了过多的机器相依性(machine-dependent),造成代码不易移植到其他机器上的问题。早期提供FORTRAN版本的厂商经常为此所苦自1961年开始,由于客户的强烈要求,IBM开始发展FORTRAN IV,目的在于移除一些FORTRAN II中过于依赖机器本身的代码(例如:READ INPUT TAPE)同时新增一些新的功能,如LOGICAL数据类型。布尔类型(TRUE或者FALSE)与逻辑IF语句则取代了算术IF语句。FORTRAN IV于1962年推出,最早应用于IBM 7030("Stretch")计算机之上,以及其接续的IBM 7090和IBM 7094版本。早期的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。其功能如下:在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成为历史上最重要的一套电脑语言。FORTRAN 77的被严重推迟的后续版本,非正式名称是Fortran 90,最终于1992年作为ANSI标准发表。这一大版本添加了许多新特性以反映自1978年标准以来发展的在编程方面显著的变化:Fortran 95仅是一个小改版,大部分修正了Fortran 90 standard一些较为显著的问题。虽然如此,Fortran 95仍有不少的扩展,尤其是在High Performance Fortran的规格:Fortran 95的一个重要补充是ISO技术报告TR-15581:增强的数据类型工具,非正式名称是可分配的TR。这一标准定义了ALLOCATABLE数组的增强的应用,先于与完全的Fortran 2003兼容的Fortran编译器,以供使用。这些使用包括在过程伪参数列表中以及将函数返回值使用ALLOCATABLE数组作为派生的类型组件。(ALLOCATABLE数组比基于POINTER的数组更受欢迎,因为ALLOCATABLE数组是由Fortran 95保证的,当它们退出范围时会被自动释放掉,避免了内存溢出的可能性。另外,别名也不再是优化数组引用时的一个问题,可以使编译器生成比用指针时更快的代码。)Fortran 95的第二个补充是ISO技术报告TR-15580:浮点异常处理,非正式名称是IEEE TR。这一标准定义了对IEEE浮点算术和浮点异常处理的支持。Fortran 2003有着更大幅度的改版。ISO Fortran Working Group (WG5)的官方网站有关于Fortran 2003新特性的详细总结,并有PDF文件PDF或者压缩PostScript文件可供直接下载。据该文所述,本版本的主要改进包括:Fortran 2003之后的下一个版本是Fortran 2008.一如Fortran 95,这只是一个小改版,略微更正了Fortran 2003的一些问题,并且合并了TR-19767的语言功能。如同February 2007,新的功能包括了2007年8月,数据类型BIT被删除了。2008年2月,Coarrays的项目已缩小,仅有Parallel I/O,而研发团队也被裁员了。下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:以Fortran 90/95自由格式的写法为例几个著名的Fortran Package:The fundamental unit of program is the basic block; a basic block is a stretch of program which has a single entry point and a single exit point. The purpose of section 4 is to prepare for section 5 a table of predecessors (PRED table) which enumerates the basic blocks and lists for every basic block each of the basic blocks which can be its immediate predecessor in flow, together with the absolute frequency of each such basic block link. This table is obtained by an actual "execution" of the program in Monte-Carlo fashion, in which the outcome of conditional transfers arising out of IF-type statements and computed GO TO'S is determined by a random number generator suitably weighted according to whatever FREQUENCY statements have been provided.

相关

  • paracetamol7.21 g/kg (0 °C) 8.21 g/kg (5 °C) 9.44 g/kg (10 °C) 10.97 g/kg (15 °C) 12.78 g/kg (20 °C) ~14 mg/mL (20 °C)对乙酰氨基酚(英语:Acetaminophen),又称
  • 头孢哌酮头孢哌酮是第三代头孢菌素类抗生素 ,由辉瑞公司以Cefobid的名义销售 。 它是少数能有效治假单胞菌属细菌(如铜绿假单胞菌)感染的头孢菌素抗生素之一。该药于1974年获得专利,并于
  • 职业过劳根据世界卫生组织,职业过劳(英语:Burnout)是一种由慢性工作压力导致的症候群,症状包含“精神耗尽、对工作的心里距离增加、对工作的负面感觉、以及工作效率的减少”。职业过劳不
  • 胶布胶带,又名胶条,胶纸,胶带纸等,是一种涂有黏合剂背衬的组合材料,通常是长条状并以卷起,施压拉扯的方式使用。依据黏合剂的不同和表面材料不同,分为多种类型。单位通常是以“卷”来计
  • 疑源类疑源类(Acritarchs)是具有机壁的、亲缘关系不明的微体化石类群,它们很可能是多源的、具有不同亲缘关系的集合体。目前不能将它们归为任何已知的生物门类,但随着研究的深入一些疑
  • 双壳类双壳纲(学名:Bivalvia),又名斧足纲或瓣鳃纲,是软体动物门的一个纲,生于海洋及淡水地区因有两片贝壳而得名。现存有9200种左右,体长达135厘米。本纲动物的头部已经退化,足部呈斧状,体
  • 氧化钠氧化钠,分子式Na2O,是钠的正常氧化物,常温下是白色固体。其性质极活泼,为碱性氧化物,与水反应生成氢氧化钠。在空气中加热能生成浅黄色的过氧化钠。氧化钠可由钠和氧反应制得:氧化
  • 鱼类学动物学人类学 · 人与动物关系学 蜜蜂学 · 节肢动物学 医学节肢动物学 · 鲸类学 贝类学 · 昆虫学 动物行为学 · 蠕虫学 两栖爬行动物学 · 鱼类学 软体动物学 · 哺乳动
  • 多板纲见内文多板纲(学名:Polyplacophora),又名石鳖纲(Loricata),是软体动物门的一个纲,约有900多个物种。本纲物种生活于海中,当中大部分的物种生活在潮间带和潮下带浅水区的岩石上,但也有
  • 脱氧核糖核酸外切酶去氧核糖核酸外切酶(英语:exodeoxyribonuclease,或称外切去氧核糖核酸酶)是一类可参与切割DNA分子的酶,属于EC3.1.11。是一种酯酶。脂酶(胆盐依赖性脂酶、胃脂肪酶/舌脂肪酶、胰脂