W literaturze znaleźć można termin włókno (ang. fiber) dla odróżnienia od wątku (ang.thread). Współprogramy jako specjalny rodzaj klas Współprogramy jako bogatszy rodzaj podprogramów W językach programowania: Simula67, Loglan 82, BETA można tworzyć moduły coroutine, tj. współprogramów. Składnia współprogramu różni się od składni klasy tym, że zamiast słowa class piszemy coroutine, i co ważniejsze, wewnątrz takiego modułu wolno używać instrukcji atomowych attach oraz detach. Instrukcje takie mogą się też pojawiać wewnątrz metod zadeklarowanych we współprogramie. Stwarza to nowe i interesujące możliwości współpracy współprogramów i rekursji. "Subroutines are special cases of ... coroutines." –Donald Knuth. W assemblerze od dawna występuje pojęcie podprogramu – nie należy go mylić z pojęciem procedury. Podprogram istnieje w kodzie programu i ma co najwyżej jedną instancję. Nie jest możliwe rekurencyjne wykonywanie podprogramów. Przykład: Łączenie drzew BST por. [] oraz []Przykład Uwagi. 1°.Mamy tu do czynienia z dynamicznym systemem współprogramów. Wyrażenia generujące postaci new Traverser(...) umożliwiają stworzenie wielu obiektów typu współprogram Traverser. 2°. Obiekt współprogramu Traverser wywołuje metodę traverse(). Łańcuch dynamiczny tego obiektu wydłuża się o rekord aktywacji metody traverse.
Źródło i licencja
Fragment artykułu Wikipedia — Współprogram · historia autorów.
Tekst: CC BY-SA 4.0. Wydzielono fragment z dłuższego artykułu.