Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, SAI

WS 2000/01 || Entwicklung objekt-orientierter Bibliotheken || Beispiele

HaTschi


Dieses Beispiel zeigt die Arbeitsweise von Koroutinen an einem sehr einfachen Beispiel, bei denen sich zwei Koroutinen wechselseitig ans Spiel bringen.

Hier ist eine beispielhafte Ausgabe dieses Programms:

belinda$ hatschi
HaHaTschi!
HaHaHaTschi!
HaHaHaHaHaTschi!
HaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaTschi!
HaHaHaHaHaHaHaHaTschi!
HaHaHaHaTschi!
HaHaHaHaHaHaHaHaHaHaHaTschi!
HaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaTschi!
HaTschi!
HaHaHaTschi!
HaHaHaHaHaHaHaHaHaHaTschi!
HaHaTschi!
HaHaHaHaTschi!
HaHaHaTschi!
HaHaHaTschi!
HaHaHaHaHaHaHaHaHaHaHaHaTschi!
HaHaTschi!
HaHaHaHaHaTschi!
HaTschi!
HaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaTschi!
belinda$ 
Die HaHa-Sequenz stammt von der Koroutine ha (repräsentiert durch die Prozedur WriteHa) und die die Zeile jeweils terminierende Tschi!-Sequenz wird von der anderen Koroutine tschi ausgegeben (repräsentiert durch die Prozedur Tschi). Entsprechend läuft der Kontrollfluß: Beide Prozeduren bleiben mit ihrem Zustand erhalten, wenngleich immer nur eine davon aktiv ist:

Bild des Ablaufs

HaTschi

Die Quellen stehen als Shell-Archiv zur Verfügung.
WS 2000/01 || Entwicklung objekt-orientierter Bibliotheken || Beispiele

Andreas Borchert, 8. Januar 2001