eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCzym jest programowanie?
Ilość wypowiedzi w tym wątku: 266

  • 171. Data: 2012-06-14 09:28:39
    Temat: Re: Czym jest programowanie?
    Od: Maciej Sobczak <s...@g...com>

    On 14 Cze, 06:38, Andrzej Jarzabek <a...@g...com> wrote:

    > Z Adą nie jest przypadkiem tak, że wymusza dodatkowe runtime checks w
    > celu uniknięcia undefined behaviour?

    Z Adą jest tak, że *jeśli* masz sytuację wyjątkową, to ma być wyjątek.
    Nie znaczy to wcale, że w kodzie zawsze musi być check. To, co Adę
    odróżnia od Javy to znacznie bogatszy system typów i znacznie bardziej
    rozbudowane reguły języka, które pozwalają kompilatorowi na statyczne
    stwierdzenie, że skoro sytuacja wyjątkowa nie wystąpi, to nie trzeba
    wstawiać run-time checków.

    Koncepcyjnie nie jest to wielka filozofia. Przykład w Javie:

    for (int i = 0; i < myArray.length; ++i) {
    System.out.println(myArray[i]);
    }

    To jest pattern, który kompilator może rozpoznać jako bezpieczny i
    wtedy nie ma potrzeby wstawiać checków w miejscu indeksowania. Podobno
    kompilator Javy z tego korzysta. Problem z Javą polega na tym, że w
    zasadzie to jest również granica tego typu działań, bo system typów
    jest tak żałosny (właściwie można go określić mianem "skryptowy"), że
    nic więcej nie wiadomo. Czy w tablicy są nulle? Czy te obiekty są
    niezależne, czy może są wzajemnie poaliasowane? Itd.

    Ada pozwala zapisać w typach i w kodzie znacznie więcej informacji,
    więc kompilator ma też znacznie większe możliwości redukcji checków. W
    praktyce i przy właściwym wykorzystaniu języka checki są wstawiane
    tylko tam, gdzie naprawdę muszą, czyli np. przy rzutowaniu typów, przy
    odczycie z I/O, itp.
    Checki w Adzie można też lokalnie bądź globalnie wyłączyć, z
    oczywistymi konsekwencjami.

    Istnieje też powiązany z Adą język SPARK, w którym w ogóle nie ma
    wyjątków, bo język gwarantuje, że nie ma sytuacji wyjątkowych, które
    normalnie wymagalyby run-time checka.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 172. Data: 2012-06-14 10:16:42
    Temat: Re: Czym jest programowanie?
    Od: Roman W <b...@g...pl>

    On Wednesday, June 13, 2012 9:25:11 PM UTC+1, Artur Muszyński wrote:
    > W dniu 2012-06-13 12:03, Roman W pisze:
    > > Rozmawialem niedawno z ludzmi ktorzy przeniesli zaawansowany model do wyceny
    opcji na GPU, uzyskujac przyspieszenie rzedu 300x. Stwierdzili ze najtrudniejsza
    czescia projektu bylo
    > >
    > > a) przekonanie dzialu IT do zainstalowania GPU
    > > b) zarzadzanie przeplywem danych do pamieci GPU.
    > >
    > > Uzyskanie znaczacego przyrostuy wydajnosci wymaga starannego tuningowania kodu.
    Dlatego jestem sceptyczny, czy kiedykolwiek ludzie ktorym zalezy na wydajnosci na
    tyle, zeby bawic sie w deployment GPU, ograniczyli sie do bibliotek typu Brahma, i
    nie brali spraw "we wlasne rece". Ale moze sie myle.
    >
    > Bardziej jestem sceptyczny do "starannego tuningowania".

    Bo? Zarabiaja na tym tyle pieniedzy, ze maja odpowiednia motywacje. I to nie sa glupi
    ludzie.

    RW


  • 173. Data: 2012-06-14 10:18:15
    Temat: Re: Czym jest programowanie?
    Od: Roman W <b...@g...pl>

    On Thursday, June 14, 2012 8:28:39 AM UTC+1, Maciej Sobczak wrote:

    > Istnieje też powiązany z Adą język SPARK, w którym w ogóle nie ma
    > wyjątków, bo język gwarantuje, że nie ma sytuacji wyjątkowych, które
    > normalnie wymagalyby run-time checka.

    Jezyk gwarantuje, ze kazde polaczenie z baza danych bedzie udane, a kazdy plik na
    dysku gotowy do zapisu?

    RW


  • 174. Data: 2012-06-14 11:23:41
    Temat: Re: Czym jest programowanie?
    Od: Edek Pienkowski <e...@g...com>

    Dnia Thu, 14 Jun 2012 01:16:42 -0700, Roman W napisal:

    > On Wednesday, June 13, 2012 9:25:11 PM UTC+1, Artur Muszyński wrote:
    >> W dniu 2012-06-13 12:03, Roman W pisze:
    >> > Rozmawialem niedawno z ludzmi ktorzy przeniesli zaawansowany model do
    >> > wyceny opcji na GPU, uzyskujac przyspieszenie rzedu 300x. Stwierdzili
    >> > ze najtrudniejsza czescia projektu bylo
    >> >
    >> > a) przekonanie dzialu IT do zainstalowania GPU b) zarzadzanie
    >> > przeplywem danych do pamieci GPU.
    >> >
    >> > Uzyskanie znaczacego przyrostuy wydajnosci wymaga starannego
    >> > tuningowania kodu. Dlatego jestem sceptyczny, czy kiedykolwiek ludzie
    >> > ktorym zalezy na wydajnosci na tyle, zeby bawic sie w deployment GPU,
    >> > ograniczyli sie do bibliotek typu Brahma, i nie brali spraw "we
    >> > wlasne rece". Ale moze sie myle.
    >>
    >> Bardziej jestem sceptyczny do "starannego tuningowania".
    >
    > Bo? Zarabiaja na tym tyle pieniedzy, ze maja odpowiednia motywacje. I to
    > nie sa glupi ludzie.

    To jest prawda. Wydajność GPGPU zależy głównie od pamięci
    i to nie +- 10% ale czasami ileś razy. Zarówno pamięci na karcie jak i
    kopiowania przez PCIEx. Nawet jeżeli tuningowanie nie było aż tak
    staranne, bez tego nie ma prawa działać szybko na GPU nic poza "demo".

    Edek



  • 175. Data: 2012-06-14 12:31:40
    Temat: Re: Czym jest programowanie?
    Od: Wojciech Muła <w...@g...com>

    W dniu czwartek, 14 czerwca 2012 01:39:27 UTC+2 użytkownik Michoo napisał:
    > > Ale nie żartujmy o C++ lambdach, bo dojdziemy do ściany
    > > a.k.a. closure. Lambdy bez podanych wprost argumentów nie
    > > mają dostępu do niczego z zewnętrznego zakresu, tak samo
    > > jest w phpie, tylko w phpie ciut ładniejsza składnia.
    > >
    > Przecież mają:
    > int b=64;
    > int a=32;
    > auto l = [&]()->int { return b+a; };
    ^^^^^

    A to co, jak nie podanie explicite zakresu dostępu.
    O tym pisałem, że programista *musi* przy definicji
    ustalić, do czego funkcja ma dostęp.

    BTW funkcje anonimowe są ogólnie przereklamowane.

    w.


  • 176. Data: 2012-06-14 15:28:40
    Temat: Re: Czym jest programowanie?
    Od: Maciej Sobczak <s...@g...com>

    On 14 Cze, 10:18, Roman W <b...@g...pl> wrote:

    > > Istnieje też powiązany z Adą język SPARK, w którym w ogóle nie ma
    > > wyjątków, bo język gwarantuje, że nie ma sytuacji wyjątkowych, które
    > > normalnie wymagalyby run-time checka.
    >
    > Jezyk gwarantuje, ze kazde polaczenie z baza danych bedzie udane, a kazdy plik na
    dysku gotowy do zapisu?

    Język gwarantuje, że nie ma operacji, które prowadziłyby do zachowań
    niezdefiniowanych. Próba zapisu do pliku, którego nie da się zapisać,
    to jest bardzo dobrze zdefiniowana operacja i żadnego wyjątku tam nie
    potrzeba. To, że większość współczesnych języków używa w takich
    okolicznościach wyątków nie znaczy, że bez wyjątków nie można tego
    obsłużyć. To raczej objaw wrzucania wszystkiego do jednego worka.

    Pomyśl natomiast o dzieleniu przez zero, wyjechaniu za tablicę,
    przekroczeniu zakresu dla jakiegoś typu, itp. - to są przypadki, które
    normalnie prowadziłyby do zachowania niezdefiniowanego i przy których
    tzw. "bezpieczne" języki strzelają wyjątkami a tzw. "niebezpieczne"
    udają, że nic nie widzą. Właśnie takich przypadków w SPARKu nie ma.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 177. Data: 2012-06-14 16:35:43
    Temat: Re: Czym jest programowanie?
    Od: Roman W <b...@g...pl>

    On Thursday, June 14, 2012 2:28:40 PM UTC+1, Maciej Sobczak wrote:
    > On 14 Cze, 10:18, Roman W <b...@g...pl> wrote:
    >
    > > > Istnieje też powiązany z Adą język SPARK, w którym w ogóle nie ma
    > > > wyjątków, bo język gwarantuje, że nie ma sytuacji wyjątkowych, które
    > > > normalnie wymagalyby run-time checka.
    > >
    > > Jezyk gwarantuje, ze kazde polaczenie z baza danych bedzie udane, a kazdy plik na
    dysku gotowy do zapisu?
    >
    > Język gwarantuje, że nie ma operacji, które prowadziłyby do zachowań
    > niezdefiniowanych. Próba zapisu do pliku, którego nie da się zapisać,
    > to jest bardzo dobrze zdefiniowana operacja i żadnego wyjątku tam nie
    > potrzeba. To, że większość współczesnych języków używa w takich
    > okolicznościach wyątków nie znaczy, że bez wyjątków nie można tego
    > obsłużyć.

    Oczywiscie ze mozna bez wyjatkow, C przeciez sobie radzilo z takimi sytuacjami bez
    wyjatkow ;-) A co robi wtedy SPARK?

    RW


  • 178. Data: 2012-06-14 16:51:44
    Temat: Re: Czym jest programowanie?
    Od: Wojciech Muła <w...@g...com>

    W dniu czwartek, 14 czerwca 2012 16:35:43 UTC+2 użytkownik Roman W napisał:
    > Oczywiscie ze mozna bez wyjatkow, C przeciez sobie radzilo z takimi sytuacjami bez
    wyjatkow ;-)

    C sobie radzi? Polecam wszystkim spróbować sił
    w "A Quiz About Integers in C" http://blog.regehr.org/archives/721
    Na kilku przykładach widać w jak głębokiej dupie
    jest koder C/C++ tylko dzięki specyfikacji języka.

    W ogóle jestem ciekaw ile kosztowały w sumie te
    wszystkie trywialne błędy w rodzaju "null pointer
    dereference". Znacie jakieś opracowania?

    w.


  • 179. Data: 2012-06-14 17:34:35
    Temat: Re: Czym jest programowanie?
    Od: "AK" <n...@n...com>

    Użytkownik "Wojciech Muła" <w...@g...com> napisał:

    > BTW funkcje anonimowe są ogólnie przereklamowane.

    Wreszcie ktos to napisal odwaznie jawnym tekstem ! :)

    PS: To tylko takie zwykle wykastwowane zwykle funkcje/metody

    AK



  • 180. Data: 2012-06-14 17:52:48
    Temat: Re: Czym jest programowanie?
    Od: Roman W <b...@g...pl>

    On Thursday, June 14, 2012 3:51:44 PM UTC+1, Wojciech Muła wrote:
    > W dniu czwartek, 14 czerwca 2012 16:35:43 UTC+2 użytkownik Roman W napisał:
    > > Oczywiscie ze mozna bez wyjatkow, C przeciez sobie radzilo z takimi sytuacjami
    bez wyjatkow ;-)
    >
    > C sobie radzi? Polecam wszystkim spróbować sił
    > w "A Quiz About Integers in C" http://blog.regehr.org/archives/721
    > Na kilku przykładach widać w jak głębokiej dupie
    > jest koder C/C++ tylko dzięki specyfikacji języka.

    No jakos sobie radzi, skoro tyle dobrego oprogramowania napisano w C.

    RW

strony : 1 ... 10 ... 17 . [ 18 ] . 19 ... 27


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: