Stack
Eine Besonderheit von InstantView ist das stack-basierte Arbeiten. Viele Funktionen interagieren direkt mit dem Stack, indem sie Werte darauf ablegen oder entnehmen. Dabei ist es wichtig zu beachten, welche Funktionen welche Anzahl von Werten benötigen oder hinterlassen. Ein falsch vorbereiteter Stack kann zu unerwartetem Verhalten führen. Die Kontrolle über die Stack-Inhalte ist daher essenziell für den korrekten Ablauf von Programmlogik und Funktionsketten.
Eine Reihe von Stackoperationen wären folgende:
- Drop
- Dup
- Over
- Swap
- Depth
- Fetch
- DropAll
- Widget
- Module
- Push (Prozedur auf den Stack legen)
- Execute
- [, ]
- #
- |
- Mark
- is
- GetElement
- Revert
Angenommen es soll ein Code-Block ausgeführt werden, wenn eine bestimmte Bedingung erfüllt ist. Hierbei würde folgender Code eine Prüfung vornehmen und eine Methode aufrufen:
1 if { AuszuführendeMethode }
Die Zahl 1 wurde auf den Stack gelegt. Die if-Anweisung entnimmt diesen Wert und prüft, ob er als TRUE oder FALSE interpretiert wird. In diesem Fall gilt 1 als TRUE, sodass der nachfolgende Codeblock ausgeführt wird.
Eine weiterführende Erklärung findet sich unter dem Abschnitt Stack-Programmierung.