Koprogram: Porovnání verzí

Odebráno 68 bajtů ,  před 10 lety
m
komprese kódu, substituce šablony vjazyce2
m (sjednocení pahýlů na jednotnou šablonu {{Pahýl}} dle Wikipedie:Žádost o komentář/Šablony pahýlů)
m (komprese kódu, substituce šablony vjazyce2)
'''Koprogramy''' ({{Vjazyce2Vjazyce|en}} {{Cizojazyčně|en|coroutine}}) jsou v [[informatika|informatice]] programové komponenty, které umožňují na rozdíl od podprogramů (procedur, funkcí, metod) více vstupních bodů, pozastavení a obnovení výpočtu v jejich různých místech. Koprogramy jsou vhodné pro implementaci kooperativního [[multitasking]]u, iterátorů, proudů (stream) a trubek (pipe).
 
Termín koprogram poprvé použil [[Melvin Conway]] ve své seminární práci v roce [[1963]]<ref>M.E. Conway, ''Design of a separable transition-diagram compiler'', Communications of the ACM, Vol. 6, No. 7, July 1963</ref>.
'''coroutine''' produce
'''loop'''
'''while''' q is not full
create some new items
add the items to q
'''yield''' to consume
'''coroutine''' consume
'''loop'''
'''while''' q is not empty
remove some items from q
use the items
'''yield''' to produce
 
Fronta je zde kompletně naplněna nebo vyprázdněna před voláním příkazu ''yield'' a předáním řízení druhému koprogramu. Vnitřní koprogramové smyčka zajišťuje další volání koprogramů přímo za příkazem ''yield''.
138 738

editací