Statements
Identifier Statements:
Identifier
OwnKey
ForeignKey
Identifier Selection Statements:
IdentifierSelection
IdentifierKey
KeySelection
NullKeySelection
Traverse Identifier Statements:
TraverseIdentifier
TraverseKey
NullIdentifierSelection
Traverse Unique Statement:
TraverseUnique
Include Statements:
SystemInclude
MatrixInclude
SiloInclude
RealmInclude
DomainInclude
EntityInclude
StateInclude
ActionInclude
ProcessDomainInclude
ProcessEntityInclude
Define Include Statements:
DefineSystemInclude
DefineMatrixInclude
DefineSiloInclude
DefineRealmInclude
DefineDomainInclude
DefineEntityInclude
DefineStateInclude
DefineActionInclude
DefineDomainProcessInclude
DefineEntityProcessInclude
Overview
These statements are the advanced, sophisticated and instrumental statements of the Matrix language. By incorporating new pattern statements, Matrix becomes a fully extensible language that continuously evolves.
Pattern statements are discovered by users of the language and appear as arrangements of primitives and other patterns which provide some generically useful functionality. Patterns are important because not only do they make the Matrix code more readable and concise, they also signal the analyst's intention to the Model Compiler which enables more efficient source code to be generated and more sophisticated error checking to be performed.
Generally, applicable patterns are incorporated into the Model Compiler (therefore, into subsequent generations of Model Compilers) and become part of the growing Matrix language.
Implementation of a pattern statement will always be more efficient than the equivalent primitive statements. A general rule is that it must always be possible to implement a pattern statement in terms of two or more primitive statements.
Pattern statements must not rely on the use of temporary process data. Indeed, one of the motivations for creating a pattern statement is to eliminate the need for the definition of process data in a model specification, thereby simplifying the code in the model.
|