資源描述:
《fortran程序設(shè)計附錄c fortran95語法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、附錄CFORTRAN95語法在本附錄我們給出FORTRAN95的語法規(guī)則(ISO/IEC1559-1:1997(E))。所謂語法規(guī)則,就是描述一切FORTRAN95的詞匯,語句,結(jié)構(gòu)等語言成分的形式規(guī)則,凡是遵循了這個描述的,就是合法的FORTRAN95語言;否則,就是不合法的。因此語法規(guī)則本身必須是精確的,絕對不能產(chǎn)生歧義。在這種要求下,F(xiàn)ORTRAN95的語法采用了形式語言的方式給出語法規(guī)則,即屬于所謂Backus-Naur形式(BNF)的一種變體。由于這種描述形式本身采用了語言的形式,因此有幾點說明如下:●在描述語法時,對于屬于FORTRAN字符集的字符按照
2、字面形式來理解,除非有特別的說明?!駥τ诿恳粋€語法成分的描述,都有一個唯一的編號,這個編號的采用了如下的一般形式:?Rxyy?其中的R表示規(guī)則,而x表示FORTRAN標準的節(jié)號,yy表示對于該語法成分的描述在該節(jié)的唯一編號,因此對于每一個語法成分的描述,這個Rxyy可以看成是它的唯一編號,全書的正文當中,每當?shù)谝淮我胍粋€語法成分,我們總是給出了它的這個編號。在下面的規(guī)則表里面,這個編號簡寫為純數(shù)字,省略了字母R?!裣旅娴拿枋霎斨校瑸榱撕啙嵠鹨?,采用了如下的縮寫:??argument……arg?attribute……..attr?declaration…..dec
3、l?definition……def?descriptor……desc?expression…..expr?integer………int?operator……..op?specifier…….specstatement……stmt????●同樣為了簡潔的緣故,這里給出的形式描述不可能是絕對完備和精確的,在能夠理解的前提下,本附錄采用了一定的簡化形式,并且在FORTRAN標準的基礎(chǔ)上作了一定的節(jié)略?!癯宋淖种猓€使用了來自FORTRAN字符集的如下特殊符號;另外還使用了
4、表示或者的意思。+加號%百分號-?減號&?and*星號;分號/除號或斜線‘省略符號<小于“引號>
5、大于.小數(shù)點或句號(左括號=等號)右括號!嘆號
6、或者??????????????????????FORTRAN95的語法規(guī)則(ISO/IEC1559-1:1997(E))語法成分形式描述編號access-iduse-name
7、generic-spec523access-specPUBLIC
8、PRIVATE511access-stmtaccess-spec[[::]access-id-list]522ac-do-variablescalar-int-variable436ac-implied-do(ac-value-list,ac-implied-do-contro
9、l)434ac-implied-do-controlac-do-variable=scalar-int-expr,scalar-int-expr[,scalar-int-expr]435action-stmtallocate-stmt
10、assignment-stmt
11、backspace-stmt
12、call-stmt
13、close-stmt
14、continue-stmt
15、cycle-stmt
16、deallocate-stmt
17、endfile-stmt
18、end-function-stmt
19、end-program-stmt
20、end-subroutine-stmt
21、exit-s
22、tmt
23、forall-stmt
24、goto-stmt
25、if-stmt
26、inquire-stmt
27、nullify-stmt?
28、open-stmt
29、pointer-assignment-stmt
30、print-stmt
31、read-stmt
32、return-stmt
33、rewind-stmt
34、stop-stmt
35、where-stmt216
36、write-stmtactual-argExpr
37、variable
38、procedure-name1214actual-arg-spec[keyword=]actual-arg1212ac-valueExpr
39、ac-implied-do433a
40、dd-op+
41、-710add-operand[add-operandmult-op]mult-operand706allocatable-stmtALLOCATABLE[::]array-name[(deferred-shape-spec-list)]{,array-name[(deferred-shape-spec-list)]}527allocate-lower-boundscalar-int-expr627allocate-objectvariable-name
42、structure-component625allocate-shape-spec[alloca
43、te-lo