fortran95教程4章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2篇.计算的叙述算法的每一个步骤,都必须给予确切的定义。对于算法当中所考虑的每一种情况,每一个有待执行的动作,都必须严格地和不含混地加以规定。…对于以描述算法作为目的而设计出来的,采用了形式的定义的程序设计语言,或者说计算机语言,它的每一个语句都必须有非常确切的意义。----D.E.Knuth[1]《TheArtofComputerProgramming》本质上FORTRAN就是一门语言,一门人与计算机赖以进行有效交流的语言,在这个意义上和我们使用的中文,英文等没有本质差别。现在假设要来描述一种大家都陌生的语言,那么总是要分成两个方面来描述,即一方面要描述这门语言的表象和形态,也就是它使用哪些符号,哪些词汇,一般的句式如何,怎样才能完整叙述一个任务之类;另一方面需要说明这门语言的语义,也就是说这门语言是如何用来表达我们需要它表达的意思的。第4章基本上就是描述FORTRAN作为一种语言的基本形态,也就是书写这种语言的书写规则。接下来几章则逐步说明如何用FORTRAN来表达我们的要求,或者反过来说,FORTRAN提供了些什么表达方式,以便我们用来向计算机提出合理的任务:●表达基本数据;●表达数据的结构;●完整地描述数据;●构造表达式;●驱动计算的赋值;●计算过程的结构控制;在整个第二篇,我们将领略到FORTRAN95是如何能够做到精致地描述计算的,而把一个问题阐述清楚了,就意味着问题已经解决了一大半。[1]DonaldE.Knuth(高纳德),StanfordUniversity的TheArtofComputerProgramming荣休教授,而TheArtofComputerProgramming(计算机程序设计技巧)正是他的伟大著作的名称。洋洋七大卷的《TheArtofComputerProgramming》是当今全世界每一个计算机科学家所膜拜的圣经。1974年在该书刚完成前面很少一部分时,就给他带来了计算机科学家们梦寐以求的图灵奖。第4章FORTRAN95语言的形貌要说明一门语言的形态,必须回答以下问题:●它使用哪些符号来表达信息?●它的词汇如何构成?●它的语句如何构成?●如何表达一个完整的任务?具体的对于一门计算机语言,把这几个问题更加明确地转换过来,就是:●它使用键盘上的哪些符号,各个符号有哪些用途?●它的词汇如何由键盘字符构成?含有哪些固定的词汇?以及容许自由构成合法词汇的规则是什么?●它具有哪些固定的语句格式?以及容许自由构成合法语句的规则是什么?●我们交待给计算机的任何任务,都必须明确说明任务的开始,执行步骤和完成,因此一段完整的源代码应该具备什么样的形式?以及应该具备哪些要素?本章就是要回答这些问题。4.1FORTRAN语言所使用的字符从最抽象的层面来看,人与计算机的交流只是信息的交流,而信息总是需要依靠某种信号来表示,对于人来说,最方便的就是字符。而对于计算机来说,自然就是键盘所能敲出的那些字符(信号),因此下面就是要说明:●FORTRAN95能识别键盘上敲出的哪些字符?●每个字符对于FORTRAN95来说又意味着什么?4.1.1FORTRAN95所使用的基本字符按照FORTRAN95标准的规定,一切FORTRAN95的实现平台都必须使用下面表4-1所列出来的这个基本的字符集,或者说,这个字符集是所有遵循FORTRAN95标准的编译器所使用的字符集的公共子集。这样原则上,局限在这个字符集上的源码是能够被任何遵循FORTRAN95标准的编译器所识别的。表4-1基本的FORTRAN95字符集:文字字符英文字母ABCDEFGHIJKLMNOPQRSTUVWXYZ数字0123456789下划线_特殊字符图形名称图形名称空格:冒号=等号!叹号十加号”引号一减号%百分号*星号&英语的and/斜线;分号(左括号<小于)右活号>大于,逗号?问号.小数点或句号$货币符号’撇号可以看到基本字符分为两大类:文字字符和特殊字符。除了货币符号可以本地化之外,其他任何字符都必须依照表里的形式。对于基本字符有如下几个问题需要予以注意。一.文字字符的用处:●主要是命名的作用,可以用来命名语言中的一切对象,这三种符号可以混合使用;●其中数字还具有它本来的含义,就是表示数目。二.特殊字符的用处:特殊字符主要具有功能的意义,如编辑功能,运算功能,语法功能等。FORTRAN95标准原则上接受小写字母。因此除了以下位置,大小写是等价的。三.大小写必须区分的位置:●作为字符常量的字符串里面;●输入输出的纪录里面;●作为编辑描述符的引号或撇号里面。因为在上述几种情形,大小写是字符型数据的不同数据取值。如果不幸遇到一个FORTRAN95标准的怪异的编译平台,偏偏不接受小写字母,这是FORTRAN95标准所许可的,这时就得小心了。不过幸好我们常用的编译平台,例如CVF,都是接受小写字母的。另外,在OPEN或者INQUIRE语句里面的FILE=或NAME=后面是否区分大小写,也是由编译平台指定的。如果是需要调用其他语言写的子程序,而恰好该种语言(例如C语言)是区分大小写的,这时就需要特别小心。【例4-1】如果用C写了两个子程序EIGEN和eigen,然后有如下的FROTRAN片断:EXTERNALEIGEN...CALLEIGEN...END这时它是该引用EIGEN还是eigen呢?如果所使用的FROTRAN系统正好是怪异的那种,没问题。如果是常见的如CVF,这时它就无法区分EIGEN和eigen,这样就必须给它们更换名称了。四.数字的涵义:除了以下情形,数字总是表示十进位数字●属于二进制,八进制,十六进制的字面常量;●带有B,O,Z编辑描述符的输入输出纪录。【例4-2】以下语句当中的数字不是属于十进位数字:DATAI,J,K/O’1001’,23.54,Z’5CA2’/其中第一个为八进制数,第二个为十进制数,第三个为十六进制数。五.下划线的涵义:●下划线的主要作用就是置于单词之间代替空格,使得我们在命名时使用清楚的英语词汇。●下划线不能置于任意名称的前面,但是可以置于名称的最后。●下划线也用于在字面常量中区隔常量的值和种别参数。无论给什么对象起名,都尽量使用完整的英语单词,同时使用下划线以区隔不同的单词。所谓好记性不如烂笔头,只有这样才能切实保证你在任何时候,在程序代码的任意位置都知道任意变量等的含义。4.1.2与平台有关的FORTRAN辅助字符集上节列出的基本字符集是在一切FROTRAN的编译平台都可以使用的,被FORTRAN95标准规定为必须使用的默认字符集。另外还有些辅助的字符则是不同的平台有不同的用法约定。辅助字符分两类:可打印字符和不可打印字符。●可打印字符;各种本地化语言的字符,象汉字,希腊字母等,都可以应用在字符串,注释,和输入输出纪录当中。●不可打印字符。主要就是控制字符,例如制表符Tab键。制表符(Tab键)在FORTRAN77标准当中主要用来表示6个空格,这样在固定源程序形式的代码的每行的开头使用Tab,就自动地空出6个空格。对于一个FORTRAN77标准的编译系统来说,在固定源程序形式里的Tab被看成是至少6个空格,而在自由源程序形式里的Tab被看成1个空格。这样如果Tab被放在文本当中用于输出格式控制,那么这种默认的转换方式,有时就会导致输出格式的混乱。有关FORTRAN95的辅助字符集的使用规则,请参考具体的编译系统的说明。4.2词汇所谓FORTRAN的词汇就是一个语句的最小的意义单位,它由一个或多个FORTRAN字符集里的字符组成。包括两类共6种,分类例举如下:●由文字字符组成的词汇,包括4种:·语句关键词:IMPLICIT·名称:EIGEN_FREQUENCY_3·由单个词汇组成的字面常量:1.234567_long·标识符:213●由特殊字符组成的—·算符:+,.OR.·定界符:逗号,=,=〉,:,::,;,%。FORTRAN95的一切合法的词汇都必须按照语法来构成。完备的构词语法规则在附录B给出。下面分别予以详细说明。1.语句关键词语句关键词的功用:●标志语句本身。【例4-3】下面的DO语句中的关键词DO本身标志了该语句DOI=1,500●标志选项。【例4-4】下面的INTENT语句当中的IN,OUT,或INOUT。INTENT(IN),A。BINTENT(INOUT),X,Y,Z●用在语句当中,起分界的作用。【例4-5】如下面DO语句当中的WHILEDOWHILE(.NOT.VECTOR)并非所有的语句都必须包含关键词,在FORTRAN里面,赋值语句和函数都不需要关键词。尽管FORTRAN95不区分大小写,本书任何地方出现的语句关键词都使用大写字母。纯粹是为了醒目的原因。2.名称在一个程序当中,任何对象都需要有一个名称,给它们命名所得到的词汇,可以说就是一般语言里的名词,这样的对象包括:变量,命名常量,程序单元,过程,公用块,构造,派生类型,哑元等。名称的拼写规则为:●名称必须由字母开头,可以由文字字符混合组成,而下划线不能作为名称的第一个字符。●一个名称至多允许含有31个字符。3.常量一个常量就是对一个值的合乎语法的字符标记。常量分为字面常量和命名常量两种:●一个值如果没有在程序里面经过命名,则称为字面常量,这种常量不能取派生数据类型。【例4-6】66953Z’5120A’2.3417.TRUE.(33.2,5.0)●一个值如果在程序里面经过命名,则称为命名常量,这种常量能取派生数据类型。【例4-7】在如下声明语句当中的常量UNSTABLE_POINT为命名常量:REAL,DIMENSION(3),PARAMETER::UNSTABLE_POINT=&(/5.332,0.221,190.632/)对于常量的语义,将在说明数据时进一步讨论。4.语句标签在一个程序单元内部,对任何一条语句,都可以在该语句的前面加上语句标签,以便在该程序单元内部的任何其他位置引用该语句。需要引用其他语句的语句包括CALL语句,DO结构,分支语句,输入输出语句等。语句标签的书写规则为:●语句标签由1到5个十进制数字组成,其中必须至少有一个数字不能是0,例如000不能作为标识符;●标识符以0开头是没有任何意义的,例如0034与34没有区别。●标识符不能放置于空语句之前。【例4-8】456上面的语句只出现了一个语句标签,是不合法的。●对于在一个程序单元内部,标识符不唯一出现的情形,具有特殊的含义,将在后面讨论。5.算符算符用在表达式当中,通过运算而获得某种类型的值。算符分为固有算符和自定义算符两类:●固有算符在FORTRAN95语法当中,R310规定了固有算符的构成法则。【例4-9】//表示字符串的连接+表示对数值的加法.NOT.表示逻辑否.OR.表示逻辑或上面都是固有算符。●自定义算符自定义算符的一般语法形式为:.XXX….即在两个句点之间有n个字符构成的字符串,n不大于31。中间的字母串最好是一个表达该运算含义的英文单词。这个单词不能与固有算符或者逻辑常量里面已经使用了的单词重复。6.定界符全部的定界符有如下12种形式:/()(//),==:::;%其中(和),(/和/)都必须成对出现顾名思义,这些定界符的功能就是在一个连续的源码文本当中,用来把不同性质的源码成分区分开。它们的具体含义将在具体的语句当中说明。4.3语句一条语句由一些词汇组成,可以理解为表示要求计算机进行的一个动作,但一个说明,一个描述之类的,表面看好象不是计算机的一个动作,不过实质上同样要求机器内部的一个动作与之相对应,因此同样也构成FORTRAN的一条语句。FORTRAN95的语句分为两大类:●非执行语句当需要引入或说明一个程序单元或子程序,或者是说明数据类型时,就需要使用非执行语句。●可执行语句当需要计算机进行一个指定动作时,就需要使用可执行语句。FORTRAN95全部的语句的具体分类,以及语法和例示参见附录A,语句的语法也参见附录B。在后面的有关章节则分别说明了所涉及到的主要的语句。4.4源码形式一个FORTRAN95程序就是由以下三种形式的程序成分所构

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功