NORMA (1158464), страница 8
Текст из файла (страница 8)
INPUT list-input-scalar
INPUT input-on-domain
input-scalar :
name-scalar [ attributes ]
input-on-domain :
list input-output-variable ON unconditional domain
input-output-variable :
name-variable-on-domain [ attributes ]
declaration-of-output :
OUTPUT list-output-scalar
OUTPUT output-on-domain
output-scalar :
name-scalar [ attributes ]
output-on-domain :
list- input-output-variable ON domain
attributes :
( list-attribute )
attribute :
STR( int-constant )
string
ORDER( list-name-index )
FILE = ' file-name '
ALL
format
format :
I int-constant
{ F,E,D } int-constant . int-constant
file :
input-element { input-element }*
input-element :
name-scalar = arithm-constant;
name-variable-on-domain ( list-index-range ) = data ;
index-range :
name-index = int-constant .. int-constant
data :
list-data-element
data-element :
int-constant
body
int-constant ( data )
declaration-of-external-names :
declaration-of-external-functions
declaration-of-external-parts
declaration-of-external-functions :
EXTERNAL FUNCTION list-name-external-function [ type ]
declaration-of-external-parts :
EXTERNAL PART list-name-external-simple-part
declaration-of-distribution-indexes :
DISTRIBUTION INDEX name-index = simple-range , name-index = simple-range
simple-range :
int-constant .. int-constant
operator :
scalar-operator
operator-ASSUME
call-part
scalar-operator :
name-scalar = scalar-arithm-expression
scalar-arithm-expression :
arithm-expression
operator-ASSUME
FOR domain ASSUME relation { ; relation }*
relation :
name-variable-on-domain = arithm-expression
call-part
call-function :
call-reduction-function
call-standard-function
call-external-function
call-reduction-function :
name-reduction-function ( ( name-domain )arithm-expression )
call-standard-function :
name-standard-function ( arithm-expression )
name-m-standard-function ( {arithm-expression}+ )
name-reduction-function :
{ SUM,MULT,MAX,MIN }
call-external-function :
name-external-function [ ( list-in-parameter ) ]
in-parameter :
arithm-expression
name-variable-on-domain ON domain-of -parameter
iterated-variable-on-domain ON domain-of-parameter
name-external-simple-part
name-external-function
domain-of-parameter :
name-unconditional-domain
name-unconditional-domain / index-expression
name-unconditional-domain / ( list-index-expression )
iterated-variable-on-domain :
name-variable-on-domain [ name-iteration-index [-1] ]
name-standard-function :
sqrt
abs
exp
alog
alog10
sin
cos
asin
atan
sign
dsqrt
dabs
dexp
dalog
dalog
dsin
dcos
dasin
datan
dsign
entier
name-m-standard-function :
amax1
amin1
dmax1
dmin1
call-part :
COMPUTE name-part [ ( actual-parameters )]
actual-parameters :
[ list-in-parameter ] [ RESULT list-out-parameter ]
out-parameter :
name-scalar
name-variable-on-domain ON domain-of-parameter
iterated-variable-on-domain ON domain-of-parameter
iteration :
head-of-iteration
[ boundary-value ]
initial-value
body-of-iteration
exit-condition
end-iteration
head-of-iteration :
ITERATION list-iterated-element ON name-iteration-index .
iterated-element :
name-variable [ ( list-name-result ) ]
boundary-value :
BOUNDARY { operator .}+ END BOUNDARY
initial-value :
INITIAL name-iteration-index = 0 : { element-of-initial .}+
END INITIAL
element-of--initial :
operator
declaration-of-input
declaration-of-output
body-of-iteration :
{ element-of-iteration-body . }+
element-of-iteration-body :
operator
iteration
declaration-of-output
exit-condition :
EXIT WHEN log-expression
end-iteration :
END ITERATION name-iteration-index
letter :
{ A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z }
{ a,b,c,d,e,f,g,h,i,j k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}
digit :
{ 0,1,2,3,4,5,6,7,8,9 }
special-symbol :
special-symbol-not-apostrophe
apostrophe
special-symbol-not-apostrophe :
{ space ,=,>,>,+,-,*,/,(,),[,],!,?,,,.,#}
apostrophe :
'
space :
Space has no graphical representation.
identificator :
letter { { digit, letter } }*
constant :
arithm-constant
string
arithm-constant:
int-constant
real-constant
double-constant
int-constant :
{ digit }+
real-constant :
body [ E [ { +,- } ] power ]
double-constant :
body [ D [ { +,- } ] power ]
body :
int-constant . int-constant
power
int-constant
string
‘ { { symbol-not-apostrophe, ‘‘ } }+‘
symbol-not-apostrophe:
letter
digit
special- symbol-not-apostrophe
supplementary-symbol
operation :
{rel-operation, log-operation, arithm-operation }
rel-operation:
{ =,>,<,<=,>=,<>,>< }
rel-except-not-equal-operation :
{ =,>,<,>=,<= }
log-operation :
{ AND, OR, NOT }
arithm-operation :
{ +,-,*,/,** }
name :
identificator
list-name :
name { , name }*
arithm-expression :
[ { +, - } ] term { arithm-operation term }*
term :
arihm-constant
call-function
name-index
name-domain-parameter
name-scalar
variable-on-domain
(arithm-expression)
variable-on-domain :
name-variable-on-domain [ [ list-index-expression ] ]
const-expression :
[ { +,- } ] const-expression-without-sign
const-expression-without-sign :
integer-term { arithm-operation integer-term }*
integer-term :
int-constant
name-domain-parameter
( const-expression )
index-expression :
name-index [ [ { +,- } ] const-expression-without-sign ]
name-index = const-expression-without-sign
name-index = name-index [ [ { +,- } ] const-expression-without-sign ]
log-expression :
[ NOT ] logic-term { log-operation logic-term }*
logic-term :
comparison
( log-expression )
comparison :
arithm-expression comp-operation arithm-expression
condition-on-domain :
log-expression
condition-on-index :
name-index rel-except-not-equal-operation
name-index [ { +,- } const-expression-without-sign ]
name-index rel-except-not-equal-operation const-expression-without-sign
Bibliography
-
Zadykhailo I.B. Organization of loop computations based on parameter record of special type. Computational mathematics and mathematical physics journal, 3, N 2, 1963, p.337- 357 ( in Russian).
-
Andrianov A.N. The synthesis of loop computations in the NORMA language. Preprint KIAM AS USSR, 1986, N 171, 28p. (in Russian).
-
Andrianov A.N. The synthesis of parallel and vector programs on nonprocedural NORMA specification. Ph.D. Thesis, Moscow, 1990, 144 p. (in Russian).
-
Andrianov A.N., Efimkin K.N., Zadykhailo I.B. Nonprocedural language for mathematical physics. Programming and Computer Software, 17, 1992,N2, p.10-22.
-
Vasiliev M.M., Efimkin K.N., Ivanova V.N. On the application of the hydrodynamic potentials method to the viscous fluid flow problem. Matematicheskoe modelirovanie, 1992, v.6, N 10, p .58-65. (in Russian).