eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJava i goto
Ilość wypowiedzi w tym wątku: 48

  • 31. Data: 2012-06-27 13:39:04
    Temat: Re: Java i goto
    Od: Edek Pienkowski <e...@g...com>

    Dnia Wed, 27 Jun 2012 11:28:31 +0000, Edek Pienkowski napisal:

    > Dnia Wed, 27 Jun 2012 13:25:51 +0200, AK napisal:
    >
    >> Użytkownik "Edek Pienkowski" <e...@g...com> napisał:
    >>
    >>> label: {
    >>> ...
    >>> break label;
    >>> ...
    >>> };
    >>>
    >>> To całkiem niezły substytut goto
    >>
    >> Jaki zas substytut. To _czyste goto_.
    >> Czytac nie umiesz /z dokladnoscia do lukru skladniowego oczywiscie/ ?
    >> :)
    >
    > 93% pure.

    Żeby nie być gołosłownym:
    - labelka jest nie tam
    - labelka jest powiązana ze scopem
    - nie jest użyte "goto"
    - skok jest tylko do przodu
    - oczywiste zanieczyszczenie języka wysokiego poziomu
    assemblerowym conditional-jump-over-unconditional
    - zbędny scope
    - nie wiem, co jest ogólnie siódmym zanieczyszczeniem,
    ale ma zapach taki cytrusowaty

    Edek



  • 32. Data: 2012-06-27 15:21:48
    Temat: Re: Java i goto
    Od: Andrzej Jarzabek <a...@g...com>

    On Jun 27, 12:09 pm, Edek Pienkowski <e...@g...com>
    wrote:
    > Dnia Wed, 27 Jun 2012 03:43:27 -0700, Andrzej Jarzabek napisal:
    > >> > > private boolean find()
    > > [...]
    >
    > > A właściwie może nie. Więc: dlaczego widać, że niewystarczająco dobrze
    > > sformułowałes poglądy? Czy nie chodziło ci o to, że twój przykład
    > > wykazuje, że czasem goto jest najlepszym rozwiązaniem? No więc w czym
    > > moje rozwiązanie, bez goto a z dwoma returnami, jest gorsze od tego z
    > > goto?
    >
    > Nie jest rozwiązaniem w ogóle. Można by nim zastąpić taki kod:
    >
    > ....  goto do_return;
    >
    > do_return:
    >     return;
    >
    > }; // end of method

    Nie. Twój pierwotny kod:
    for()
    for() {
    if (findSth()) {
    found = sth;
    goto search_complete;
    }
    }
    }

    throw new Failure();
    search_complete:

    Można zastąpić kodem:
    if(!find()) throw new Failure();

    gdzie funkcja find() jest zdefiniowana tak, jak napisałem.

    > To całkiem niezły substytut goto, ograniczony, ale rozwiązujący tego
    > typu problemy. Nie wiem, czy spotkam w praktyce przypadek, gdzie
    > potrzebne byłoby goto a nie powyższe, chociaż znam takie.

    W ogóle przypadki, kiedy goto jest potrzebne są ekstremalnie rzadkie -
    i to nawet nie "potrzebne" w sensie "bez goto się nie da", bo takich
    przypadków nie ma w ogóle, tylko "potrzebne" w sensie "lepiej z goto
    niż bez goto"

    > Czyli
    > mój problem nie tylko został zauważony w ogóle, ale jest uwzględniony
    > w konstrukcji języka Java, chociaż o tym nie wiedziałem, a dzięki
    > temu wątkowi wiem.


    Good for you.


  • 33. Data: 2012-06-27 22:38:02
    Temat: Re: Java i goto
    Od: "Borneq" <b...@a...hidden.pl>

    Użytkownik "Edek Pienkowski" <e...@g...com> napisał w
    wiadomości news:jseplq$iu5$1@inews.gazeta.pl...
    > To całkiem niezły substytut goto, ograniczony, ale rozwiązujący tego
    > typu problemy. Nie wiem, czy spotkam w praktyce przypadek, gdzie
    > potrzebne byłoby goto a nie powyższe, chociaż znam takie. Czyli

    A jakie przypadki, gdzie break label byłby nie wystarczający? Jedyna
    sensowna pozycja gdzie mogłoby być goto to wychodzenie z pętli
    zagnieżdżonych a to załatwia break label.


  • 34. Data: 2012-06-27 22:45:25
    Temat: Re: Java i goto
    Od: Edek Pienkowski <e...@g...com>

    Dnia Wed, 27 Jun 2012 22:38:02 +0200, Borneq napisal:

    > Użytkownik "Edek Pienkowski" <e...@g...com> napisał w
    > wiadomości news:jseplq$iu5$1@inews.gazeta.pl...
    >> To całkiem niezły substytut goto, ograniczony, ale rozwiązujący tego
    >> typu problemy. Nie wiem, czy spotkam w praktyce przypadek, gdzie
    >> potrzebne byłoby goto a nie powyższe, chociaż znam takie. Czyli
    >
    > A jakie przypadki, gdzie break label byłby nie wystarczający? Jedyna
    > sensowna pozycja gdzie mogłoby być goto to wychodzenie z pętli
    > zagnieżdżonych a to załatwia break label.

    Wszystko, co ma małe automatony (state machines). Da się zakodować
    inaczej, jakoś mniej więcej obiekt stanu i polimorficznie obiekt
    na stan, ale jak są małe, to wygodne jest goto.

    Edek


  • 35. Data: 2012-06-27 22:56:08
    Temat: Re: Java i goto
    Od: "Borneq" <b...@a...hidden.pl>

    Użytkownik "Edek Pienkowski" <e...@g...com> napisał w
    wiadomości news:jsfrd5$iu5$13@inews.gazeta.pl...
    > Wszystko, co ma małe automatony (state machines). Da się zakodować
    > inaczej, jakoś mniej więcej obiekt stanu i polimorficznie obiekt
    > na stan, ale jak są małe, to wygodne jest goto.

    W przykładzie http://www.thibault.org/newhome/thoughts/goto-and-fs
    ms.html
    if połączone z goto do tyłu można zastąpić pętlą


  • 36. Data: 2012-06-27 23:01:44
    Temat: Re: Java i goto
    Od: Edek Pienkowski <e...@g...com>

    Dnia Wed, 27 Jun 2012 22:56:08 +0200, Borneq napisal:

    > Użytkownik "Edek Pienkowski" <e...@g...com> napisał w
    > wiadomości news:jsfrd5$iu5$13@inews.gazeta.pl...
    >> Wszystko, co ma małe automatony (state machines). Da się zakodować
    >> inaczej, jakoś mniej więcej obiekt stanu i polimorficznie obiekt na
    >> stan, ale jak są małe, to wygodne jest goto.
    >
    > W przykładzie
    > http://www.thibault.org/newhome/thoughts/goto-and-fs
    ms.html if połączone
    > z goto do tyłu można zastąpić pętlą

    Wszystko można zastąpić. Nie sprawdzałem osobiście, ale podobno Java
    jest Turing complete.

    Automatony da się zaimplementować zwykłym switchem w pętli. Miałem
    na myśli inny przykład, ale w tej chwili nie mogę sobie przypomnieć.

    Edek


  • 37. Data: 2012-06-27 23:02:53
    Temat: Re: Java i goto
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2012-06-27, Borneq <b...@a...hidden.pl> wrote:
    > Użytkownik "Edek Pienkowski" <e...@g...com> napisał w
    > wiadomości news:jsfrd5$iu5$13@inews.gazeta.pl...
    >> Wszystko, co ma małe automatony (state machines). Da się zakodować
    >> inaczej, jakoś mniej więcej obiekt stanu i polimorficznie obiekt
    >> na stan, ale jak są małe, to wygodne jest goto.
    >
    > W przykładzie http://www.thibault.org/newhome/thoughts/goto-and-fs
    ms.html
    > if połączone z goto do tyłu można zastąpić pętlą

    A if połączone z goto do tyłu, do środka innego if połączonego z goto?

    Dowód ogólnej własności przez pokazanie specyficznego przykładu nie jest
    prawidłową metodą dowodzenia.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 38. Data: 2012-06-27 23:08:18
    Temat: Re: Java i goto
    Od: "Borneq" <b...@a...hidden.pl>

    Użytkownik "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
    napisał w wiadomości news:slrnjumt3m.96u.dozzie@jarowit.net...
    > A if połączone z goto do tyłu, do środka innego if połączonego z goto?
    >
    > Dowód ogólnej własności przez pokazanie specyficznego przykładu nie jest
    > prawidłową metodą dowodzenia.

    Według mnie, jeżeli już dopuszczać goto to:
    - tylko do przodu
    - wychodzące z ramki (pętli, ifa) na zewnątrz
    Inaczej to straszny kod się wtedy robi. Czy implementacja jakiegoś automatu
    może tego wymagać?


  • 39. Data: 2012-06-28 00:00:58
    Temat: Re: Java i goto
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2012-06-27, Borneq <b...@a...hidden.pl> wrote:
    > Użytkownik "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
    > napisał w wiadomości news:slrnjumt3m.96u.dozzie@jarowit.net...
    >> A if połączone z goto do tyłu, do środka innego if połączonego z goto?
    >>
    >> Dowód ogólnej własności przez pokazanie specyficznego przykładu nie jest
    >> prawidłową metodą dowodzenia.
    >
    > Według mnie, jeżeli już dopuszczać goto to:

    Ależ ja nie twierdzę, że goto jest niezbędne. Ja tylko wykazuję w tym
    miejscu błąd w twojej argumentacji (a przynajmniej tym, co biorę za
    argumentację).

    --
    Secunia non olet.
    Stanislaw Klekot


  • 40. Data: 2012-06-28 04:48:10
    Temat: Re: Java i goto
    Od: A.L. <l...@a...com>

    On Wed, 27 Jun 2012 20:45:25 +0000 (UTC), Edek Pienkowski
    <e...@g...com> wrote:

    >Dnia Wed, 27 Jun 2012 22:38:02 +0200, Borneq napisal:
    >
    >> Użytkownik "Edek Pienkowski" <e...@g...com> napisał w
    >> wiadomości news:jseplq$iu5$1@inews.gazeta.pl...
    >>> To całkiem niezły substytut goto, ograniczony, ale rozwiązujący tego
    >>> typu problemy. Nie wiem, czy spotkam w praktyce przypadek, gdzie
    >>> potrzebne byłoby goto a nie powyższe, chociaż znam takie. Czyli
    >>
    >> A jakie przypadki, gdzie break label byłby nie wystarczający? Jedyna
    >> sensowna pozycja gdzie mogłoby być goto to wychodzenie z pętli
    >> zagnieżdżonych a to załatwia break label.
    >
    >Wszystko, co ma małe automatony (state machines). Da się zakodować
    >inaczej, jakoś mniej więcej obiekt stanu i polimorficznie obiekt
    >na stan, ale jak są małe, to wygodne jest goto.
    >
    >Edek

    Goto zupelnie ejst niepotzrebne do tego. Wystarczy switch

    A.L.

strony : 1 ... 3 . [ 4 ] . 5


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: