next up previous contents
Next: Code Listing Up: SML Implementation of Previous: References

Macro COSY Notation

To shorten some otherwise lengthy expressions in the following rules, we adopt the convention:

displaymath6899

Syntax of General COSY Macro Notation

displaymath6900

displaymath6901

Context-Sensitive Restrictions:

Crest1:
If the upperbound and lowerbound of dimensions of the collective names are integers then the upperbound has to be greater than or equal to their corresponding implicit or explicit lowerbound.
Crest2:
An array identifier may occur only once in collectivisors.
Crest3:
Each replicator without range variables must specify a non-empty range for its index.
Irest1:
Identifiers for replicator indices and range variables should be distinct from any identifiers used for simple events. Identifiers for replicator indices and range variables should also be distinct.
Irest2:
Replicator index variables are only defined inside the [ ] of the replicators with which they are associated. In the scope of a replicator index variable no other replicator index variable having the same name is permitted.
BRrest:
The range of the bodyreplicator indices should be non-empty.
Rrest1.1:
For every replicator if inc is an integer then tex2html_wrap_inline5497 .
Rrest1.2:
For every concatenator and bodyreplicator if in, fi, inc are integers then tex2html_wrap_inline5501 .
Rrest1.3:
For every imbricator, if in, fi, inc are integers then tex2html_wrap_inline5505 .
Rrest2:
The replicators should generate indexed events permitted by the corresponding collectivisors.
Drest1:
For every distributor tex2html_wrap_inline5701 , msequence must contain at least one slice event.
Drest2.1:
If both range and dim are blank then the number of sections generated by the rightmost distributable (current) dimension must be the same for all slice events occurring in msequence.
Drest2.2:
If range is blank, dim=j and j is an integer, then the number of sections generated by jth dimension must be the same for all slice events occurring in msequence and having the jth dimension distributable.
Drest3:
Inside a k-nested distributor there must be at least one slice event with k distributable dimensions, and no array slices with more than k distributable dimensions.
Drest4:
If dim=j then every slice event with maximal number of distributable dimensions must have the jth dimension as a distributable dimension.
Drest5.1:
If tex2html_wrap_inline5795 , dim is blank and tex2html_wrap_inline5709 , tex2html_wrap_inline5711 , tex2html_wrap_inline5713 are integers, then tex2html_wrap_inline5801 , tex2html_wrap_inline5803 and tex2html_wrap_inline5711 must be smaller than or equal to the number of sections generated by the rightmost distributable (current) dimension of any slice event occurring in msequence.
Drest5.2:
If tex2html_wrap_inline6977 , tex2html_wrap_inline5711 , tex2html_wrap_inline5713 , dim=j and tex2html_wrap_inline5709 , tex2html_wrap_inline5711 , tex2html_wrap_inline5713 , j are integers, then tex2html_wrap_inline5801 , tex2html_wrap_inline5803 and tex2html_wrap_inline5711 must be smaller than or equal to the number of sections generated by the jth dimension of any slice event occurring in msequence which has the jth dimension distributable.


next up previous contents
Next: Code Listing Up: SML Implementation of Previous: References

Peter Lauer
Mon Jul 22 17:29:46 EDT 1996