Fortran 最全介绍

省流:

Fortran (Formula Translator,“公式翻译器”),由John Backus发明。1954年在纽约正式发布,称为FORTRAN Ⅰ。1957年第一个FORTRAN编译器在IBM704计算机上实现,FORTRAN I在IBM704系统上运行。

之后又陆续推出了FORTRANⅡ、FORTRAN Ⅲ、FORTRAN Ⅳ、FORTRAN 66、FORTRAN 77、Fortran 90、Fortran 95、Fortran 2003、Fortran2008、Fortran2018、Fortran2023等版本。

FORTRAN77的文件后缀为.for,而Fortran90的文件后缀为.f90。

Fortran 90之前的版本是人们所知晓的FORTRAN(全部字母大写),Fortran 90及以后的版本都写成Fortran(仅有第一个字母大写)。

正文:

  • 1951年:美国IBM公司约翰·贝克斯(John Backus)针对汇编语言的缺点着手研究开发FORTRAN语言。
  • 1954年:约翰·贝克斯在纽约正式对外发布,称为FORTRAN Ⅰ,FORTRAN Ⅰ功能简单,但它的开创性工作,在社会上引起了极大的反响。
  • 1957年:第一个FORTRAN编译器在IBM704计算机上实现,并首次成功运行了FORTRAN程序。
  • 1958年:对FORTRAN Ⅰ进行了扩充和完善,引进了子函数等概念,推出了商业化的FORTRAN Ⅱ版本。
  • 1962年:推出了FORTRAN Ⅳ。FORTRAN Ⅳ没有充分考虑兼容性,导致FORTRAN Ⅱ不能在FORTRAN Ⅳ系统中运行,使其应用受到了很大的限制,这是语言不兼容性问题和影响被突出表现出来。此前也出现过FORTRAN Ⅲ,但由于存在严重缺陷,没有在计算机上实现。
  • 1962年5月:美国标准化协会(简称ANSI)着手进行FORTRAN语言标准化的研究工作。
  • 1966年:ANSI正式公布了两个标准文本:美国国家标准FORTRAN(ANSI X3.9-1966)和美国国家标准基于FORTRAN(ANSI X3.10-1966),前者相当于FORTRAN Ⅳ,后者相当于FORTRAN Ⅱ。基本FORTRAN是美国国家标准FORTRAN的一个子集,从而实现了语言的向下兼容,初步解决了语言的兼容性问题。通常称美国国家标准FORTRAN为FORTRAN 66。FORTRAN 66的推出在国际上产生了广泛的影响。
  • 1972年:国际标准化组织(简称ISO)在FORTRAN 66基础上制定了FORTRAN语言三级国际标准:基本级、中间级和完全级。
  • 20世纪60年代末,结构化程序设计方法提出后,具有结构化特征的程序设计语言开始出现。如:ALGOL、PASCAL、MODULA、C等。计算机厂商和研究机构的高度重视将结构化特征引入FORTRAN 66,并开始对FORTRAN 66进行了不同程度的扩充,引入了结构化特征。
  • 1976年:ANSI对FORTRAN 66(ANSI X3.9-1966)进行了修订,吸收了计算机厂商所扩充的一些具有可行性的功能,同时增加了许多新内容。
  • 1978年4月:ANSI正式公布了新的美国国家标准(程序设计语言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。
  • 1997年3月:微软公司和数据设备公司(Digital Equipment Corp,简称DEC)合作研究、开发和推出了功能更强的 Fortran语言新版本:Digital Visual FORTRAN 5.0,它是Microsoft FORTRAN PowerStation 4.0的升级换代产品。DEC公司在高性能科学和工程计算方面拥有先进的技术,研发了高质量的FORTRAN编译器。
  • 1998年1月:DEC与Compaq公司合并,DEC成为Compaq公司的全资子公司,于是Digital Visual Fortran更名为Compaq Visual Fortran,其最新版本为Compaq Visual Fortran 6.6。Compaq和HP合资之后,Compaq的Fortran小组和Intel的Fortran开发小组合并,开发出Intel Fortran编译器9,有Linux和Windows两个版本,其Windows版本为Intel Visual Fortran,可以和微软的Visual Studio、net集成。Windows平台下还有PGI、Absoft、Intel等多个商业公司的Fortran编译器,还有大量小公司的免费Fortran编译器。

转自 高级语言发展历程 - 知乎

---------------------------

Fortran源自于Formula Translator(“公式翻译器”)的缩写(也有人认为是Formula Translation),是一种编程语言。广泛应用于科学和工程计算领域。

Fortran语言诞生于1954年,并在1957年开始商用。是第一个计算机语言标准,也是最早使用的高级程序设计语言。

1957年第一个Fortran版本——FORTRAN I在IBM704系统上运行,之后又陆续推出了FORTRANⅡ、FORTRAN Ⅲ、FORTRAN Ⅳ、FORTRAN 66、FORTRAN 77、Fortran 90、Fortran 95、Fortran 2003等版本,现在已经有了Fortran2008。Fortran 90之前的版本是人们所知晓的FORTRAN(全部字母大写),Fortran 90及以后的版本都写成Fortran(仅有第一个字母大写)。其发展时间线如图1所示。

 

在高性能计算(HPC)领域,Fortran是主要的编程语言之一,其在天文学、气候建模、计算化学、计算经济学、计算流体动力学、计算物理学、数据分析、水文建模、数值线性代数和数值库(LAPACK、IMSL 和 NAG)、优化、卫星模拟、结构工程和天气预报等领域占有重要地位。

很多稳定高效的数学库都由Fortran开发或者有Fortran交互接口,如BLAS,EISPACK,IMSL Numerical Libraries,LAPACK,PETSC,Netlib......。

自2000年代初以来,许多广泛使用的数学库也用C重写,最近又用C++重写。另一方面,Wolfram语言、MATLAB、Python 和R等高级语言在计算科学的特定领域变得流行。因此,Fortran2003中添加了与C进行互操作的设施,并通过ISO/IEC技术规范29113进行了增强,该规范已合并到Fortran2018中,以允许与其他编程语言进行更灵活的互操作。

转自 Fortran语言简介 - 知乎

 

1.1 Fortran语言发展史
Fortran是世界上第一个计算机高级语言,由约翰·巴克斯开发,1956年开始使用,而C语言,1972年诞生,python,1991年诞生,Java,1995年,可以说后期的语言基本上都有借鉴Fortran的地方,就连最早的matlab版本都是Fortran代码写的。
Fortran全名为FORmula TRANslation(公式转换)
Fortran是所有科学计算语言的祖先,该语言的设计之初就是为了将科学计算公式转换为计算机代码。第一版的FORTRAN是由IBM于1954-1957年为它的704计算机开发的。
1958年,IBM发布FORTRAN II 。
1962年,发布FORTRAN IV 。
1966年, FORTRAN IV 被ANSI 标准采纳,成为了众所周知的FORTRAN 66。
1977年,FORTRAN77诞生。
1992年,Fortran90诞生,这是Fortran里程碑的进步,最重要的是它支持自由格式了。
1996年,Fortran95诞生,这只是Fortran90基础上很小的修改。
2004年,Fortran 2003 诞生 ,它增加了面向对象编程。
Fortran2003 之后的下一个版本是Fortran 2008,也只是很小的更新。
Fortran 90 之前的版本全部大写FORTRAN,Fortran90后,都写成Fortran,所以在选择参考书的时候,建议选择带有Fortran字样的而不是FORTRAN。
1.2 Fortran 的演化
Fortran 并不像matlab、java这种专门由某个公司设计并发布,它是由一个规则约束的,而其他的公司可以根据这个规则来设计Fortran的编译器和集成开发环境。比如Intel Fortran、gfortran、simply Fortran、GCC Fortran、PGI Fortran、NAG Fortran、Absoft fortran,不同的Fortran编译器可能在某些功能上存在差异,但基本能满足Fortran初学者的要求。
Fortran是一种向下兼容的语言,比如FORTRAN77的代码在Fortran90下就可以跑,但反过来就不行。
FORTRAN77的文件后缀为.for,而Fortran90的文件后缀为.f90这两个的差别还是很大的,以后具体详说。
对于初学者来说,强烈要求从Fortran90版本开始学习,不要再去学习FORTRAN77版本了,好多功能已经跟不上时代了。
在windows下的用户,建议使用VS+Intel Fortran编译环境,在Linux下的用户,建议使用gfortran编译环境。
1.3 Fortran 基本步骤
编译:一个源代码比如.f90和.for文件,输出为目标代码比如.o文件。
链接:将目标代码或者包含库文件,输出为可执行文件。
参考内容:

Fortran程序设计(第四版) Stephen J.Chapman 著,王志强 李浩亮等 译,中国电力出版社
http://www.fcode.cn 网站

转自 1. Fortran语言发展史与演化_fortran iv-CSDN博客

1954年的IT大事——Fortran语言诞生
有一句英文谚语:需要乃发明之母。但是有的时候,单调乏味的工作也能导致产生新的发明。正如John Backus所说,单调乏味的编程工作使他产生了创造世界上第一种自动编程语言Fortran的想法。这位来自哥伦比亚大学的数学家时年29岁,参加IBM的701和704计算机的研制工作已经有几年了,因而完全厌倦了复杂的编程工作。现年74岁的Backus提到他发明Fortran的动力时说:"那纯粹是懒惰使然。"他说:"编写程序极其乏味,你必须考虑大量的细节问题,处理那些本不该管的事情。因此我想让编程工作变得容易些。"
Backus必须克服全部困难:当时没有研究成果为他的想法提供理论基础;没有开发软件的方法学;没有成功的典范。1953年接近年底的时候,Backus断言,在计算机的运行费用中,至少有一半到3/4花在了编程和测试上。"编程人员的工资通常等于或超过一台计算机的租金。"他当时推断,如果发明一种自动执行指令码的语言,使用循环的方法,让计算机在一组指令的控制下执行重复任务,将会极大地降低计算机的运行成本。John Backus领导了Fortran开发队伍。 Backus的想法并非前无古人。Remington Rand公司Eckert-Mauchly部的Grace Hopper此前已经发表了A-O编译程序,其设计目的就是完成重复任务。但Backus说,这个编译程序"不够灵活,速度很慢,用起来很费劲。"而且IBM新的
704机增加了两种新的功能,这两种新功能不仅使得对Backus设想的语言的需求更显迫切,而且还对其提出了更加复杂的要求。内置浮点协同处理能力和变址寄存器使得704机有能力使用自动数学语句,使用这种语句不再需要编写重复指令码。Backus说,这一改进标志着编程技术的"聪明"度大大增加。发明这种语言的复杂性加之人们对A-O编译程序反应冷淡,导致在IBM内外出现了一股怀疑情绪。但Backus的上司、IBM应用科学部主任Cuthbert Hurd批准了他的计划。1954年初,工作开始了。最初,Backus从IBM内部请来了Irving Ziller与他一起工作,后来,又增加了另一个IBM人Harlan Herrick。Backus说,他找的人要具有创造性,非常机敏并富有经验。当时有很多种类型的人参与了这项工作,其中包括物理学家、晶体学家、英语专家等。
暂时从MIT借来的Sheldon Best做了这个项目中最难的工作,即怎样使用变址寄存器。Backus说:"他首先在一张纸上画出一个流程图,当他要增加流程图报告时,他就将很多张纸粘在一起,形成一个巨大的流程图。回到MIT后,再花几个月的时间来弄清楚流程图的含义以及程序是怎样工作的。" Roy Nutt当时负责United Aircraft数据中心的工作,后来创立了Computer Sciences公司。他对这种语言十分热衷,也参加了开发队伍。Backus回忆说:"Roy总是坐在键控穿孔机旁,键控穿孔机受一段将要运行的程序控制。他负责Fortran中的全部输入/输出系统。" 编程人员们每天很晚才开始工作,有时白天在IBM公司对面的Langdon旅馆中睡觉,这样晚上就可以上计算机了。
Backus说,经过两年的时间,在这支队伍中成长出了IBM最好的程序员。1956年整个夏天的时间都用来测试这种语言了。IBM在1957年向客户交付了第一套Fortran语言。今天,42年过去了,Fortran在军事和科学应用中仍然是主要的编程语言。

http://fortran.cn/bbs/dispbbs.asp?boardID=2&ID=67&page=57

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/624427.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nodejs里面的 http 模块介绍和使用

Node.js的HTTP模块是一个核心模块,它提供了很多功能来创建HTTP服务器和发送HTTP请求。 http.Server是一个基于事件的http服务器,内部是由c实现的,接口是由JavaScript封装。 http.request是一个http客户端工具。 用户向服务器发送数据。 创…

泰山众筹:创新电商模式引领共赢新潮流

一、泰山众筹模式创新解读 泰山众筹,这一电商领域的创新模式,通过巧妙地将产品销售与积分众筹相结合,为用户和平台带来了双赢的局面。在泰山众筹模式下,用户购买产品的同时能够积累积分,这些积分可以作为参与众筹的筹…

初探 JUC 并发编程:Java 中的并发队列 ConcurrentLinkedQueue 源码级解析

第七部分:Java 并发包中并发队列解析 7.1)ConcurrentLinkedQueue 原理探究 7.1.1)类图结构 ConcurrentLinkedQueue 底层通过单向链表的方式实现,其中有两个 volatile 类型的 Node 节点用来表示队列的首、尾节点。 public Concu…

市场对节能高效电机需求不断增长 变频器具有广阔发展空间

市场对节能高效电机需求不断增长 变频器具有广阔发展空间 变频器是利用变频技术与微电子技术,通过改变电机工作电源频率方式来控制交流电动机的电力控制设备,主要由制动单元、检测单元、微处理单元等部分构成。变频器能够根据需要调整电机的转速&#xf…

如何基于可靠事件模式实现最终一致性?

今天我们一起来探讨一个分布式环境下的常见问题,这个问题与数据的一致性有关。那么,什么是数据一致性呢?要回答这个问题,需要我们回顾一下单块系统和分布式系统中对于数据处理的不同需求。 我们知道,传统的单块系统通常都只与一个数据库进行交互,所有的数据处理过程都位于…

混淆矩阵实战

2.实战 1.加载数据 #加载数据 import pandas as pd import numpy as np data pd.read_csv(data_class_raw.csv) data.head()2.data.loc得到样本属性,并进行样本数据可视化 #可视化数据 %matplotlib inline from matplotlib import pyplot as plt#define X and y…

政安晨:【Keras机器学习示例演绎】(四十一)—— 使用预先训练的词嵌入

目录 设置 简介 下载新闻组 20 数据 让我们来看看这些数据 清洗数据并将数据分成训练集和验证集 创建词汇索引 加载预训练的词嵌入 建立模型 训练模型 导出端到端模型 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与…

【Unity】为小球添加爆发力往前移动的代码

代码里的几个变量都需要在场景中提前创建好并赋值 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Shotobjt : MonoBehaviour {// 点击按钮,克隆一个prefab,然后给这个克隆后的对象添加往前方的力publi…

TCP/UDP通信中的部分函数

UDP(User Datagram Protocol,用户数据报协议)和TCP(Transmission Control Protocol,传输控制协议)是互联网协议套件中最常用的两种传输层协议,它们负责在互联网中端到端地传输数据。尽管它们服务…

链表常见OJ题

目录 题目一:移除链表元素 (1)题目链接 (2)题目要求 (3)题解 题目二:反转链表 (1)题目链接 (2)题目要求​编辑 (3…

【PostgreSQL里的子查询解析】

什么是子查询? 子查询是一种嵌套在其他SQL查询中的查询方式,也可以称作内查询或嵌套查询。当一个查询是另一个查询的条件时,就称之为子查询。子查询的语法格式与普通查询相同,但其在查询过程中起着临时结果集的作用,为…

冰川秘境:全球冰川可视化大屏带你穿越冰原

在浩瀚无垠的宇宙中,地球以其独特的蓝色光环吸引着人们的目光。而在这颗蓝色星球上,冰川这一大自然的杰作,更是以其壮美与神秘,让人们心驰神往。 从阿尔卑斯山脉的冰川到南极洲的冰盖,从格陵兰岛的冰山到喜马拉雅山脉的…

Visual Studio生成C++的DLL文件(最简单版)

前言 当你在使用C编写一些可重用的代码时,将其打包成一个动态链接库(DLL)可以使其更容易地被其他项目或者程序调用和使用。Visual Studio提供了一种简单的方式来生成C的DLL文件。下面是一个关于如何在Visual Studio中生成C的DLL文件的简单教…

基于ChatGPT 和 OpenAI 模型的现代生成式 AI

书籍:Modern Generative AI with ChatGPT and OpenAI Models: Leverage the capabilities of OpenAIs LLM for productivity and innovation with GPT3 and GPT4 作者:Valentina Alto 出版:Packt Publishing 书籍下载-《基于ChatGPT 和 Op…

【Unity】 HTFramework框架(四十八)使用Location设置Transform位置、旋转、缩放

更新日期:2024年5月14日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 Location定义Location复制Location变量的值复制Transform组件的Location值粘贴Location变量的值粘贴Location值到Transform组件在代码中使用Location Loc…

2.3 应用集成技术

第2章 信息技术知识 2.3 应用集成技术 2.3.1 数据库与数据仓库技术 数据库 以单一的数据源即数据库为中心进行事务处理、批处理、决策分析等各种数据处理工作操作型处理也称事务处理,指的是对联机数据库的日常操作,通常是对数据库中记录的查询和修改…

微信小程序主体变更的操作教程

小程序迁移变更主体有什么作用?进行小程序主体迁移变更,那可是益处多多呀!比方说,能够解锁更多权限功能;在公司变更或注销时,还能保障账号的正常使用;此外,收购账号后,也…

Nat Plants | 植物抽核单细胞!多组学探究大豆根瘤成熟过程

发表时间:2023-04 发表期刊:Nature Plants 影响因子:17.352 DOI:10.1038/s41477-023-01387-z 研究背景 根瘤菌是亲和互作寄主植物,感染宿主并在根部形成共生器官根瘤,具有固氮…

vue3中通过自定义指令实现loading加载效果

前言 在现代Web开发中,提升用户体验一直是开发者们追求的目标之一。其中,一个常见的场景就是在用户与应用程序进行交互时,特别是当进行异步操作时(如网络请求),为用户提供即时的反馈,避免用户因…