第1章 Fortran背景知识_第1页
第1章 Fortran背景知识_第2页
第1章 Fortran背景知识_第3页
第1章 Fortran背景知识_第4页
第1章 Fortran背景知识_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、工程分析程序设计http:/程序设计概述http:/http:/第一章第一章 FortranFortran背景知识背景知识本章主要内容本章主要内容: : 1. Fortran 语言简史 2. Fortran90/95 语言特点 3. Visual Fortran编译器的演变 http:/低级语言u 机器语言 采用二进制代码 优点:快、直接;缺点:繁琐,直观差,极不方便。u 汇编语言 采用助记符代替二进制代码 一条符号语言指令对应一条机器指令。高级语言(面向问题) 不依赖机器,易学易懂。 高级语言的一条语句(指令)对应若干条机器指令 如:BASIC、FORTRAN、PASCAL、C等等http:

2、/高级语言(面向对象) 如:VB、VC、MATLAB、CAD、Java、Delphi 高级语言不能为计算机直接接受,必须翻译成机器指令。其中,将高级语言程序(源程序)转换为机器语言程序(目标程序)的工作由“编译程序”来完成。高级语言程序高级语言程序机器指令目标程序机器指令目标程序计算结果计算结果编译程序编译程序(预先存入电脑)(预先存入电脑)编译执行http:/FORTRAN的优势 1.近50年的丰富积累,资源不浪费,对原有程序向下兼容。而C语言与Matlab才20多年2.FORTRAN书写和语法要求严格,更适合于严谨的科学计算。而C对数组不提供越界检查,容易出错,而且不容易查出3.FORTR

3、AN 9095可以直接对矩阵和复数进行运算。而C语言则要用多重循环 如:C=A+B在并行计算中独领风骚。如:深蓝、银河4.FORTRAN是一种编译语言,运行速度快;而Matlab则是类似Basic的解释语言http:/FORTRAN(IBM FORmula TRANslation)即公式翻译语言1. FORTRAN语言的产生 u1953年,John Backus成立研究小组,针对IBM704计算机编程;u1954年,开发了编程语言规范,IBM Mathematical Formula Translation System (FORTRAN);u1956年,FORTRAN语言的第一个编程指南发布

4、; (FORTRAN I) 具备当今FORTRAN标准的基本结构,如允许浮点运算、数组说明、DO循环控制结构及输入输出语句等。第一节第一节 FortranFortran语言简史语言简史http:/Fortran语言发展简史2. FORTRAN2. FORTRAN版本的演变版本的演变 u FORTRAN 1958 1958年,研究小组公布年,研究小组公布FORTRAN FORTRAN 。主要改进如下:。主要改进如下: 允许复型与双精度浮点运算、子程序定义机制、输入输允许复型与双精度浮点运算、子程序定义机制、输入输出的格式说明等,加强了程序诊断功能。出的格式说明等,加强了程序诊断功能。u FORT

5、RAN 在开发在开发FORTRAN FORTRAN 的同时开始的同时开始FORTRAN FORTRAN 的设计。主要的设计。主要改进如下:改进如下: 允许布尔表达式、函数和子例程名可以作为参量传递,允允许布尔表达式、函数和子例程名可以作为参量传递,允许处理字母数字数据等,允许符号指令许处理字母数字数据等,允许符号指令( (与机器特征相关与机器特征相关) )和和FORTRANFORTRAN语句混合使用。语句混合使用。http:/uFORTRAN FORTRAN 66, FORTRAN 的改进版本,的改进版本,融合了融合了FORTRAN 的新特征,得到的新特征,得到 FORTRAN ,1962年,

6、在年,在IBM 7030计算机上得以实现。计算机上得以实现。 美国标准协会于美国标准协会于1966年年3月公布了两个美国标准文本月公布了两个美国标准文本: 1. 标准标准FORTRAN(X3.9-1966); 2. 标准基本标准基本FORTRAN(X3.10-1966)。 1972年,国际标准化组织年,国际标准化组织(ISO)接受美国标准,公布了接受美国标准,公布了ISO FORTRAN标准,共分为三级:标准,共分为三级: 1. 完全的完全的(一级一级)FORTRAN; 2. 中间的中间的(二级二级)FORTRAN; 3. 基本的基本的(三级三级)FORTRAN。http:/uFORTRAN

7、77 美国标准化协会在对FORTRAN(X3.9-1966)修订的基础上,1977年通过定名为FORTRAN 77的FORTRAN标准。1980年,年,FORTRAN 77被接受为国际标准被接受为国际标准。 FORTRAN 77重要改进如下:u扩充字符处理功能,适用于非数值运算行领域;u增加块IF语句、ELSE语句、END IF语句等,程序趋于结构化,可读性加强;u增强输入输出的功能和文件处理能力;u兼容性强。http:/uFORTRAN 90 1990年年3月,月,ISO和和ANSI双重批准了双重批准了Fortran语言的最新语言的最新国际标准,定名为国际标准,定名为Fortran 90。此

8、时。此时Fortran 90已经是具有已经是具有强大数值计算能力的现代高级语言,程序的书写更趋结构强大数值计算能力的现代高级语言,程序的书写更趋结构化、模块化化、模块化 。 与此同时,计算机也开始进入了快速的发展阶段。与此同时,计算机也开始进入了快速的发展阶段。 程序语言的发展必须要有相应的计算机硬件的支持。程序语言的发展必须要有相应的计算机硬件的支持。http:/uFORTRAN 90Fortran 90对对FORTRAN 77的主要扩充有:的主要扩充有: (1) 自由形式的源程序形式; (2) 模块化数据与过程定义机制; (3) 从六种内部数据类型中派生出用户定义的数据类型; (4) 数组

9、操作机制; (5) 指针机制,允许创建与操作动态数据结构; (6) 数据类型参数化,允许使用多种字符类型; (7) 过程的递归调用机制; (8) 附加的控制结构,如doend do, do while等。http:/uHigh Performance Fortran (HPF) 1993年,由工业界和学术界联合组成的机构年,由工业界和学术界联合组成的机构-高高性能性能Fortran论坛推出一种新的论坛推出一种新的Fortran语言标准语言标准-高性能高性能Fortran (HPF)。HPF的目标是为的目标是为Fortran语言定义一组语言扩充标准,以支持:语言定义一组语言扩充标准,以支持:(1

10、)数据并行程序设计;(2)能在非一致存储访问开销的SIMD或MIMD计算机上获得最高性能;(3)程序代码便于在不同体系结构的计算机间移植。http:/uHigh Performance Fortran (HPF) HPF HPF对对Fortran 90Fortran 90的主要扩充:的主要扩充:(1)数据分布特性;(2)并行语句;(3)在HPF定义中包括一个HPF子集。http:/uFortran 95 1995年完成,在Fortran90的基础上,吸收HPF并行运算的优点,提高Fortran90语言在并行任务中的表达和计算能力,完善派生类型、指针、数组等要素的相关语法;uFortran 20

11、03 2004年,在ISO、IEC联合工作组JTC1/SC22/ WG5以及美国Fortran委员会NCITS/J3共同努力下,推出Fortran2003标准;(完整面向对象机制、灵活的语法特征、统一的接口标准)http:/第二节第二节 Fortran语言的特征uFortran语言的最大特性是接近数学公式的自然描述,在计算机里具有很高的执行效率。u易学,语法严谨,易查错严谨,易查错。u可以直接对矩阵和复数进行运算。u自诞生以来广泛地应用于数值计算领域,积累了大量高效而可靠的源程序。u很多专用的大型数值运算计算机针对Fortran做了优化。u广泛地应用于并行计算和高性能计算领域。uFortran

12、 90,Fortran 95,Fortran 2003的相继推出使Fortran语言具备了现代高级编程语言的一些特性。http:/Fortran90/95新的语言特征新的语言特征Fortran 90/951 自由书写格式自由书写格式 行中的位置没有特殊意义;没有保留列;尾部可以出现注释;空格在某些情况下是有意义的;2 模块模块 模块(程序单元),包含数据、例程、例程接口等及相关要素的声明;3 自定义(派生)数据类型和操作符自定义(派生)数据类型和操作符 允许从固有数据类型和派生类型中定义新的数据类型;http:/Fortran 90/954 数组功能加强数组功能加强 固有操作符和相关的固有函数

13、可以直接操作整个数组或数组段;能够创建和使用多维数组,支持数组运算;5 例程重载例程重载6 6 指针指针 指针允许动态访问和处理数据,可以用来创建动态数组和派生类型的动态数组结构;Fortran90/95新的语言特征新的语言特征http:/Fortran 90/957 7 递归递归 关键字RECURSIVE 添加在例程(FUNCTION或 SUBROUTINE)原型中,例程可以实现递归;8 8 接口块接口块 1) 描述外部例程或虚参例程的接口; 2) 为重载的例程规定统一的名称; 3) 定义或扩展操作符等。9 封装机制 类似于 C+ 中的类,将派生类型数据连同其操作例程封装在模块内,通过其公有

14、接口,供别的程序单元使用,扩展 Fortran 功能,有利于程序开发,提高计算效率;Fortran90/95新的语言特征新的语言特征http:/Fortran 95独有独有1 FORALL 语句和构造语句和构造 FORALL 语句和构造提供了一种数组操作方式,允许通过元素下标对数组元素、数组段、字符字串进行操作; FORALL 构造可以使几个数组赋值语句共享相同的小标循环控制表达式,类似于隐式 DO 循环; FORALL 是 WHERE 的一般形式,通过隐式循环对数组进行操作; FORALL是针对元素下标,WHERE则针对整个数组。2 PURE 用户定义例程用户定义例程 在用户定义的例程(子程

15、序或函数)原型前加 PURE关键字,向系统声明该用户定义例程没有负作用。http:/Fortran 953 ELEMENTAL 用户定义例程用户定义例程 在用户定义例程原型前加 ELEMENTAL 关键字,是 PURE 例程的特殊形式,但是需要在调用程序中建立其接口块。4 CPU_TIME 子程序子程序 通过参数返回特定 CPU 处理器的时间,单位为秒。5 NULL 函数函数 NULL 函数直接初始化指针为空指针 。http:/国内使用较多的国内使用较多的Fortran编译器或可视化集成开发环境为编译器或可视化集成开发环境为Visual Fortran,起源于,起源于Microsoft 的的 Fortran PowerStation 4.0;这套工具后来卖给这套工具后来卖给Digital公司继续开发公司继续开发第二个版本称为第二个版本称为Digital Visual Fortran 5.0;第三节 Visual Fortran编译器http:/u1998年, Digital被Compaq并购后,接下来的6.0、6.1、6.5和6.6版本称为Compaq Visual Fortr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论