eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjaki wybrac jezyk? › Re: jaki wybrac jezyk?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: Edek <e...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: jaki wybrac jezyk?
    Date: Wed, 17 Aug 2011 21:57:46 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 47
    Message-ID: <j2h6iu$9p4$1@node2.news.atman.pl>
    References: <s...@j...net>
    <5...@n...onet.pl>
    NNTP-Posting-Host: static-81-219-28-205.devs.futuro.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1313611166 10020 81.219.28.205 (17 Aug 2011 19:59:26
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Wed, 17 Aug 2011 19:59:26 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428
    Linux/3.1.0-15 Thunderbird/3.1.0
    In-Reply-To: <5...@n...onet.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:191978
    [ ukryj nagłówki ]

    On 08/17/2011 04:29 PM, m...@t...pl wrote:
    >
    >> Tylko że nie wykryją wszystkiego, bo 1) najpierw funkcja się musi
    >> uruchomić i 2) jak już się uruchomi, to musi zajść sytuacja że funkcja
    >> dostała niezgodny typ. To w języku dynamicznym może zależec od ścieżki,
    >> którą pójdzie program. Trochę do dupy twój pomysł z zastępowaniem
    >> statycznego typowania testami.
    > Wniosek jest prosty, ani statyczne typowanie, ani testy automatycznie
    > generowane w runtimie nie zastępują uważności (jest takie słowo?)
    > programisty. Tyle że jak w C++ statycznie zadeklaruje tablicę i dojdzie
    > do przepełnienia zakresów, to program może długo działać bez wyraźnych
    > objawów tego przepełnienia. Oczywiście w C++ można tablice tworzyć
    > tylko przez new i jeszcze można zaimplementować testy zakresów. Tyle
    > że w takim przypadku składnia Javy wydaje się przyjemniejsza.

    Trafiłeś jak nie wiem co: napisz w Javie v1 * v2 gdzie v1 i v2 to
    wektory, piewrszy przykład z setki możliwych; vector[index] += 3 drugi
    (zamiast myJavaVektor.set(index, myJavaVector.get(index) + 3)).

    Co ma new do sprawdzania zakresów. Można stworzyć klasę Tablica,
    która ma stały rozmiar i sprawdzi zakresy, compile time albo runtime
    wg potrzeb i nie używa new.

    >
    > Apropo testów przytoczę jeden z moich przypadków który chyba daje
    > dużo do myślenia. Kiedyś wprowadziłem kilka poprawek do generatora
    > posunięć w szachach. Pech chciał że miałem ważną robotę i nad
    > szachami nie mogłem dalej pracować. Niemniej generator posunięć był
    > kompletny i stał wolny komputer z sześcioma rdzeniami. Odpaliłem
    > walidacje krzyżową dwóch programów na tych sześciu rdzeniach.
    > Zgromadziłem mnóstwo gier, gry zapisałem do plików, programy
    > wybierały losowo grę i przeszukiwały drzewo gry na określoną głębokość.
    > Taki test ma nawet swoją nazwę, zwie się testem perft. No i
    > co to daje do myślenia? Sytuacja w której dwa programy dały
    > inny wynik dla tych samych danych wejściowych pojawiła się
    > pierwszy raz dopiero po dwóch tygodniach ciągłych obliczeń na
    > tych sześciu rdzeniach. Przez dwa tygodnie nie pojawiła się
    > ani razu.
    >

    Faktycznie, daje do myślenia. Ja np. myślę, że valgrind nie wymagałby
    dwóch tygodni, a byłby wart więcej niż te testy (które można
    też zrobić, ale jak rozumiem wynik wskazuje na zwykły UB). Ten test
    chyba nie ma nazwy, i valgrind niestety używa tylko jednego rdzenia.

    Edek

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: