Koroutine

In der Informatik sind Koroutinen (auch Coroutinen) eine Verallgemeinerung des Konzepts einer Prozedur oder Funktion. Der prinzipielle Unterschied zwischen Koroutinen und Prozeduren ist, dass Koroutinen ihren Ablauf unterbrechen und später wieder aufnehmen können, wobei sie ihren Status beibehalten.

Koroutinen stellen also eine hohe Abstraktionsebene einer Funktion, oder Prozedur dar, die einen Lebenszyklus besitzt. Dadurch ist ein hoher Grad an Parallelisierung möglich. Funktionen oder Prozeduren sind in diesem Fall wörtlich zu nehmen, da eine Koroutine keine Abhängigkeit zu einem externen Zustand haben sollte. Die Funktionsparameter der Koroutine allein müssen vollständig genügen, damit im Funktionskörper die Berechnung korrekt durchführen kann.

Unter den ältesten Programmiersprachen, die Koroutinen unterstützen, sind Simula oder Modula-2. Auch moderne Sprachen wie Python kennen ähnliche Konzepte. In einigen weit verbreiteten Sprachen wie C oder Java gestaltet sich die Implementierung jedoch schwierig. Der Begriff selbst stammt von Melvin Conway, der ihn 1963 in einer Veröffentlichung über Compilerbau benutzte. Donald Knuth bezeichnet Prozeduren als Spezialfall von Koroutinen.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.