eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › non-tree paradigms
Ilość wypowiedzi w tym wątku: 39

  • 21. Data: 2013-06-05 18:05:08
    Temat: Re: non-tree paradigms
    Od: A.L. <a...@a...com>

    On Wed, 05 Jun 2013 16:43:22 +0200, bartekltg <b...@g...com>
    wrote:

    >W dniu 2013-06-04 21:38, A.L. pisze:
    >
    >> Czy przypadkiem to nie to co sie nazywa "coroutines"? Albo "procedury
    >> symetryczne"?...
    >
    >Hmm, wygl?da, ?? koncepcja do?? popularna,
    >a nigdy mi si? o uszy nie obi?a.
    >

    Pierwszy jezyk ktory to mial to Simula 67

    >Do czego to si? przydaje (poza 'patrzcie, inaczej wielow?tkowo??
    >zrobi?em').

    Na przykald wlasnie do programowania symulacji.

    Ogolnie, do "cooperative multitasking". Programowanai
    "quasi-wielowatkowego" w ktorym "watki" (korutyny) nie sa pod kontrola
    systemu operacyjnego a pod kontrola programisty

    A.L.


  • 22. Data: 2013-06-05 19:31:36
    Temat: Re: non-tree paradigms
    Od: firr kenobi <p...@g...com>

    ok, przecztalem i chyba zrozumialem o co
    chodzi, ogolnie w kontekscie tematu watku
    mozna powiedziec ze te coroutines sa jak
    najbardziej apropos ale raczej tez nie
    wyczerpuja calosci tematu

    tak czy owak pojecie bardzo proste i
    ew przydatne, OIDR koprocedura to po
    prostu taka procedura ktora wywoluje
    inne procedury nie tylko przy pomocy
    call ale rowniez przy pomocy jump (goto)

    a() //procedura
    {
    b();
    }

    a() //koprocedura
    {
    goto b;
    }

    jest to ciekawe i daje dodatkowe
    mozliwosci ale tez rozwala drzewiasty
    paradygmat, nieodmiennie ciekawe,
    trzeba to przemyslec


  • 23. Data: 2013-06-05 20:21:41
    Temat: Re: non-tree paradigms
    Od: firr kenobi <p...@g...com>

    >
    > jest to ciekawe i daje dodatkowe
    > mozliwosci ale tez rozwala drzewiasty
    > paradygmat, nieodmiennie ciekawe,
    > trzeba to przemyslec

    szkoda ze w c nie ma globalnego goto
    bo wtedy by mozna z grubsza robic w c takie
    kowywołamia aczkolwiek pewnie warto by
    tez podkrecic skladnie do jumpowania
    pelnych naglowkofw funkcji wraz z argumentami (a nie tylko label)
    (z auto byloby chyba sporo problemóf ale
    register i static by chyba działało)

    i tak nadal nie bardzo mi wiadomo co takie
    jumpy moga dawac koderowi ale ja bym
    w c2 to jednak raczej udostepnił -

    temat jednakze faktycznie nie jest taki
    malutki tj wydaje sie ze te mechanizmy
    "non-tree" to istotnie dosyc rozległa
    dziedzina zachaczajaca moze skomplikowaniem np o skomplikowanie
    tamatu wielowatkowosci itp (?, ciezko
    ocenic )


  • 24. Data: 2013-06-05 20:26:55
    Temat: Re: non-tree paradigms
    Od: bartekltg <b...@g...com>

    W dniu 2013-06-05 18:05, A.L. pisze:
    > On Wed, 05 Jun 2013 16:43:22 +0200, bartekltg <b...@g...com>
    > wrote:
    >
    >> W dniu 2013-06-04 21:38, A.L. pisze:
    >>
    >>> Czy przypadkiem to nie to co sie nazywa "coroutines"? Albo "procedury
    >>> symetryczne"?...
    >>
    >> Hmm, wygl?da, ?? koncepcja do?? popularna,
    >> a nigdy mi si? o uszy nie obi?a.
    >>
    >
    > Pierwszy jezyk ktory to mial to Simula 67
    >
    >> Do czego to si? przydaje (poza 'patrzcie, inaczej wielow?tkowo??
    >> zrobi?em').
    >
    > Na przykald wlasnie do programowania symulacji.
    >
    > Ogolnie, do "cooperative multitasking". Programowanai
    > "quasi-wielowatkowego" w ktorym "watki" (korutyny) nie sa pod kontrola
    > systemu operacyjnego a pod kontrola programisty


    Jest tu jakaś przewaga nad zrobieniem wielu obiektów
    (w polach mają to, co było w zmiennych lokalnych tamtych
    coroutines) z metodą zrob_krok_symulacji()?

    W elegantszy sposób jedna dluższa metoda może być częściej
    przerywana przez szybką (obiektowo trzeba by długą coprocedurę
    podzielić na mniejsze fragmenty) ale to zysk nieco estetyczny.

    coroutines dluga()
    {
    //coś robię
    yield cośtam
    //znow coś robię
    yield cośtam
    // robię innego
    yield cośtam
    }

    dluga::wykonaj()
    {
    static i;

    i=(i+1)mod 3
    switch (i)
    case 0:
    //coś robię
    break;
    case 1:
    //znow coś robię
    break;
    case 2:
    // robię innego
    return; //powrot do costam
    }



    pzdr
    bartekltg


  • 25. Data: 2013-06-05 20:31:16
    Temat: Re: non-tree paradigms
    Od: bartekltg <b...@g...com>

    W dniu 2013-06-05 20:21, firr kenobi pisze:

    > szkoda ze w c nie ma globalnego goto

    Jest.

    https://en.wikipedia.org/wiki/Setjmp.h

    pzdr
    bartekltg


  • 26. Data: 2013-06-05 20:42:49
    Temat: Re: non-tree paradigms
    Od: firr kenobi <p...@g...com>

    W dniu środa, 5 czerwca 2013 20:31:16 UTC+2 użytkownik bartekltg napisał:
    > W dniu 2013-06-05 20:21, firr kenobi pisze:
    >
    >
    >
    > > szkoda ze w c nie ma globalnego goto
    >
    >
    >
    > Jest.
    >
    >
    >
    > https://en.wikipedia.org/wiki/Setjmp.h
    >
    >

    to nie jest globalne goto, z tego co
    pamietam (nie uzywam tego za czesto)
    to dziala tylko w tył po calltracku

    goto mozna by pewnie wykonac przez
    makro czy tam funkcje i wstawki z jmp w asmie pod dowolny label (ktorego adres jest
    ztcp dowolnie dostepny ) - ale nie jestem pewien no i nie jest to wbudowane

    void goto(void* label)
    {
    asm
    {
    jmp label;
    }
    }

    ilustracja bo nie jestem pewien czy
    to da sie tak napisac (i pozniej
    wywolac na dowolnym labelu) nie pamietam
    szczegółow (ale fajnie by bylo jakby sie dalo)


  • 27. Data: 2013-06-05 20:45:15
    Temat: Re: non-tree paradigms
    Od: firr kenobi <p...@g...com>

    >
    > coroutines dluga()
    > {
    > //coś robię
    > yield cośtam
    > //znow coś robię
    > yield cośtam
    > // robię innego
    > yield cośtam
    > }
    >

    i jak ta funkcja powyzej mialaby dzialac
    bo nie zrozumialem, w szczegolnosci jak
    miaoby dzialc tutaj to yield ?


  • 28. Data: 2013-06-05 20:49:49
    Temat: Re: non-tree paradigms
    Od: bartekltg <b...@g...com>

    W dniu 2013-06-05 20:45, firr kenobi pisze:
    >>
    >> coroutines dluga()
    >> {
    >> //coś robię
    >> yield cośtam
    >> //znow coś robię
    >> yield cośtam
    >> // robię innego
    >> yield cośtam
    >> }
    >>
    >
    > i jak ta funkcja powyzej mialaby dzialac
    > bo nie zrozumialem, w szczegolnosci jak
    > miaoby dzialc tutaj to yield ?

    Poczytaj linki, które pojawiły się w wątku.
    Zapytaj wiki, co znaczy to dziwne słowo na 'c',
    przeczytaj artykuł.

    pzdr
    bartekltg



  • 29. Data: 2013-06-05 21:04:42
    Temat: Re: non-tree paradigms
    Od: A.L. <a...@a...com>

    On Wed, 05 Jun 2013 20:26:55 +0200, bartekltg <b...@g...com>
    wrote:

    >
    >Jest tu jaka? przewaga nad zrobieniem wielu obiektów
    >(w polach maj? to, co by?o w zmiennych lokalnych tamtych
    >coroutines) z metod? zrob_krok_symulacji()?
    >
    >

    Korutyny mozan zasymulowac w jezyku bez korutyn (kupa papierow na ten
    temat). ja sam to zrobilem pzred laty w Fortranie IV. Ale to jest
    technicznie i uzytkowo dosyc upierdliwe, wiec lepiej jest meic
    wbudowany mechanizm.

    A.L.


  • 30. Data: 2013-06-05 21:12:34
    Temat: Re: non-tree paradigms
    Od: bartekltg <b...@g...com>

    W dniu 2013-06-05 21:04, A.L. pisze:
    > On Wed, 05 Jun 2013 20:26:55 +0200, bartekltg <b...@g...com>
    > wrote:
    >
    >>
    >> Jest tu jaka? przewaga nad zrobieniem wielu obiektów
    >> (w polach maj? to, co by?o w zmiennych lokalnych tamtych
    >> coroutines) z metod? zrob_krok_symulacji()?
    >>
    >>
    >
    > Korutyny mozan zasymulowac w jezyku bez korutyn (kupa papierow na ten
    > temat). ja sam to zrobilem pzred laty w Fortranie IV. Ale to jest
    > technicznie i uzytkowo dosyc upierdliwe, wiec lepiej jest meic
    > wbudowany mechanizm.

    Jasne. Ale pytanie było o jakiś przykład użycia korutyn,
    którego nie da się _prosto_ zastąpić czymś innym.

    pzdr
    bartekltg



strony : 1 . 2 . [ 3 ] . 4


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: