[ zvrba @ 04.01.2005. 08:34 ] @
Napisao sam novi clanak o korutinama u C-u te na primjerima pokazao koristenje malo poznatih funkcija setjmp/longjmp i (jos manje poznatih) funkcija set/get/make/swapcontext.

http://www.core-dump.com.hr/index.pl?node_id=418

komentari su dobrodosli...
[ Reljam @ 04.01.2005. 15:42 ] @
Clanak je zanimljiv, ali bilo bi dobro da na pocetku pise sta je motivacija za koriscenje korutina. Ako procitam clanak kao neko ko ne zna nista o korutinama, mene bi zanimao sazet opis u kome mogu da procitam da li su korutine meni interesantne i sta dobijam i gubim koriscenjem korutina.

E sad, nezavisno od samog clanka, postoji pitanje da li su korutine korisne i cemu tacno sluze - a na to pitanje nije dat dobar odgovor. Iz primera u clanku se vidi da su korutine komplikovanije za koriscenje od obicne rekurzije, ali se ne objasnjava gde je dobit. Optimizacija return-ova u Cu nije vredna truda jer to nije bottleneck programa - ako je stablo plitko, onda ionako nema veze, a ako je duboko, onda je bolje da se cela stvar napise nerekurizvno ako je brzina zaista bitna. A cak i da pretrazivanje mora da bude rekurzivno, u praksi se pokazuje da je return ionako mnogo brzi od ostatka tela funkcije. A zlatno pravilo optimizacije kaze da vredi optimizovati samo stvari koje ce imati efekat na krajnje vreme izvrsavanja.

Znaci, osim nekog uvoda u korutine, bilo bi dobro da napises gde ocekujes da vidis primenu ovako necega. Sam primer (pretrazivanja stabla) je dobar jer moze na relativno jednostavan nacin da objasni problem, ali ono sto nedostaje je gde bi i za sta ovako nesto moglo da se primeni.

I da, sitan detalj: na jednom mestu si umesto tehnika napisao tehnia (bez k). Spell check :)
[ zvrba @ 05.01.2005. 08:10 ] @
Thx na komentarima.. pedagogija mi nije bas jaca strana :) u clanku sam pretrpostavio da onaj kome treba zna i sto je i zna gdje ce upotrijebiti, samo treba pokazati KAKO :)

No, kad ulovim vremena.. dopisem malo vise o motivaciji itd..
[ filmil @ 05.01.2005. 11:25 ] @
Mogu malo da pomognem za motivaciju.

Na predmetu Programiranje u realnom vremenu na ETF napravljen je jedan kernel za rad u realnom vremenu koji se zasniva na kooperativnom multitaskingu ostvarenom pomoću setjmp i longjmp. Kernel podržava neke uobičajene primitive za multitasking.

Zainteresovani mogu da pogledaju sajt predmeta.

f
[ zvrba @ 05.01.2005. 14:17 ] @
Citat:
filmil:
Zainteresovani mogu da pogledaju sajt predmeta.
f


Eh jos da si stavio i link, bilo bi super :)
[ filmil @ 05.01.2005. 17:39 ] @
Mnogo je vode proteklo otkad sam polagao taj predmet. Mislim da se u međuvremenu link menjao (više puta). Morao bi neko upućeniji da uskoči sa svežom informacijom.

f
[ Shadowed @ 05.01.2005. 17:57 ] @
http://rti7020.etf.bg.ac.yu/rti/te5prv/

Ali pitanje je da li ce imati koristi.
[ zvrba @ 09.01.2005. 08:47 ] @
Citat:
Reljam: Clanak je zanimljiv, ali bilo bi dobro da na pocetku pise sta je motivacija za koriscenje korutina.


Bi li sljedeci kratki zadatak bio dovoljna motivacija: Zadana su dva binarna stabla. Ispitati da li imaju ekvivalentnu strukturu (i, dodatno, sadrzaj). Dakle dva binarna stabla imaju ekvivalentnu strukturu ako (intuitivno) njihov "graf izgleda isto". Uz to se jos moze usporedjivati i sadrzaj (dakle, u odgovarajucim cvorovima da se nalazi isti podatak).
[ zvrba @ 14.01.2005. 07:47 ] @
Eto, dao sam si truda i implementirao mali library koji bitno pojednostavljuje koristenje korutina. Na stranici

http://www.core-dump.com.hr/index.pl?node_id=418

se nalazi i novi link sa downloadom arhive koja sadrzi library i sve primjere iz teksta. Tekst je updatean i objasnjava implementaciju libraryja (koja je malo tricky).