Skriptsemantik
Ein Skript enthält die volle Beschreibung eines parametrischen Teils. Die Sammlung der Skriptoperatoren bestimmt, welche Aktionen durchgeführt werden müssen, um das oder die sich ergebende(n) Objekt(e) zu erstellen. Um ein Skript korrekt erstellen zu können, muss man ein klares Verständnis darüber haben, wie Operatoren interpretiert werden.
Bezeichner, die in einem <Ausdruck> verwendet werden, müssen definiert werden. Mit anderen Worten muss ein Bezeichner wie folgt verwendet werden:
<Bezeichner> = <Ausdruck>;
Die Liste der sich ergebenden Objekte wird im Parameter Output(..) definiert. Der Parameter Output(..) enthält eine Liste darüber, welche Objekte als sich ergebende Teile angezeigt werden. Dieser Operator muss im Skript vorhanden sein. Jedes Objekt in der Argumenteliste für Output(..) muss definiert sein. Mit anderen Worten muss ein Bezeichner wie folgt verwendet werden:
<Bezeichner> = <Ausdruck>;
Dieser Operator muss im Skript vorhanden sein. Mindestens ein Objekt muss in dm Output-Operator aufgeführt sein, jedoch muss nicht jedes im Skript verwendete Objekt ausgegeben werden.
Der Output-Operator bestimmt die Methode, die zur Erstellung eines Objekts mit diesem Namen verwendet wird.
Ein korrektes Skript, das ein parametrisches Teil beschreibt, sollte folgenden Regeln entsprechen:
- Ein Skript kann mehr als einen Output(..)-Operator haben, aber jeder <Bezeichner> sollte in nur einem Output(..)-Operator vorhanden sein.
- Für jedes im Output(..)-Operator verwendete Objekt sollte es einen (und zwar nur einen) <Bezeichner> geben.
- Für jedes in einem <Ausdruck> tverwendete Objekt sollte es einen (und zwar nur einen) <Bezeichner> geben.
- Jeder Bezeichner sollte nur ein Mal als <Bezeichner> verwendet werden.
- Jeder Bezeichner sollte mindestens ein Mal in einem <Ausdruck>-Operator oder in einem Output(..)-Operator vorkommen_._
- Zirkuläre Berechnungen und ineinandergreifende Bezüge sind nicht erlaubt. Das Skript darf keine Interdependenz enthalten, bei der "Element 1" durch "Element 2" und "Element 2" durch "Element 1" definiert wird.
Folgende Bedingungen sind nicht erlaubt:
A = B + 0,5; B = sin(A);
oder
A = C+5; B = D+42; C = (3*(2+A)); D = A/2;
Im ersten Fall definieren A und B sich direkt gegenseitig. Im zweiten Fall wird A über C durch B definiert und B ist über D durch A definiert. Dies bedeutet ebenfalls, dass es nicht erlaubt ist, dass ein Bezeichner eine Interdependenz zu sich selbst hat. Sie können beispielsweise keinen Operator in dieser Form verwenden:
H = H*1,05;
Hinweis: Die Sequenz der Skriptoperatoren ist nicht wichtig (außer in bestimmten Fällen, die näher beschrieben werden), da Operatoren sortiert werden, bevor das Skript ausgeführt wird.