next up previous
Nächste Seite: ASCII Aufwärts: Bibliotheksmoduln Vorherige Seite: Arguments

Arts

Die Schnittstelle zu Arts7.2 erlaubt den Zugriff auf einige Funktionen des Laufzeitsystems.


\begin{warning}
Verwenden Sie diese Prozeduren und Variablen nur, wenn Sie genau...
...ehlmanipulation kann zu
unvorhersehbaren Resultaten f\uml {u}hren.
\end{warning}

Das Modul Arts hat das Erscheinungsbild eines normalen Bibliotheksmoduls, bestehend aus einer Symbol- und einer Objektdatei. Die Aufgaben von Arts sind jedoch weitaus vielfältiger und spezieller. Arts ist das sogenannte Laufzeitsystem, das die Basis jedes Modula-2 Programms bildet. Es wird von jedem Modul implizit importiert; die Symboldatei muss daher für jedem Compilationsvorgang zugreifbar sein.

Die Variable oldCurrentDir enthält das aktuelle Verzeichnis des Prozesses beim Programmstart (thisTask^.currentDir). Bei Beendigung des Programmes wird dieser Wert wieder als aktuelles Verzeichnis angemeldet. Falls ein Programm das aktuelle Verzeichnis permanent wechseln möchte, wie beispielsweise das CLI-Kommando ,,CD``, muss das neue Verzeichnis in dieser Variablen vermerkt werden. Beim Start von der Workbench steht hier immer der Wert NIL -- was man auch nicht ändern darf --, die Prozedur Startup wechselt in diesem Fall jedoch in das Verzeichnis, in dem sich das Programm befindet.

Für den Anwender sind nur die letzten sechs Prozeduren allgemein verwendbar.

Die Prozedur Assert überprüft, ob eine Bedingung erfüllt ist, die für den korrekten Weiterlauf des Programmes unbedingt erforderlich ist. Ist diese Bedingung nicht erfüllt, erscheint ein Requester mit der angegebenen Meldung, und nach Beantwortung durch den Anwender wird das Programm abgebrochen.

BreakPoint erzeugt einen Requester und lässt dem Anwender die Wahl zwischen dem Abbruch oder der Fortführung des Programms. In erster Linie findet sie ihre Anwendung im Zusammenhang mit dem Post-Mortem-Debugger, wo sich dessen Aufrufmöglichkeit erzwingen lässt.

Error zeigt in einem Requester die beiden Texte header und body an und erzwingt einen Programm-Abbruch. Enthält der Parameter body den Wert NIL, wird nur eine Zeile Text angezeigt.

Die Darstellung eines Requesters kann mittels der Prozedur Requester mit den angegebenen Texten header und body erreicht werden. Die Felder pos und neg zeigen auf die Texte, die in die Gadgets geschrieben werden. Der Parameter pos kann auch NIL sein; dann enthält der Requester nur ein Gadget. Der Rückgabewert von Requester gibt an, welches Gadget gewählt wurde. Wurde das Gadget mit dem Text von pos ausgewählt, ist der Resultatswert TRUE, anderenfalls FALSE.

Die Prozedur Terminate beendet einfach das Programm. Der in diesem Moment in der Variablen returnVal enthaltene Wert dient als Rückgabewert an das Betriebssystem. Ähnlich arbeitet Exit. Hier kann allerdings der Rückgabewert explizit angegeben werden.


next up previous
Nächste Seite: ASCII Aufwärts: Bibliotheksmoduln Vorherige Seite: Arguments
Claudio Nieder 2000-11-12