eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingOptymalizacja struktur danych dla programów funkcyjnych › Re: Optymalizacja struktur danych dla programów funkcyjnych
  • Data: 2017-10-09 14:25:28
    Temat: Re: Optymalizacja struktur danych dla programów funkcyjnych
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    > W artykule jest napisane:
    [...]

    Nadal mamy deterministyczne strategie. Zwłaszcza ta z tworzeniem wielu kopii i
    udawaniem, że jesteśmy w jednej z nich. Strategia ze zgadywaniem nie opisuje, na czym
    ma zgadywanie polegać. Na domniemanym współczesnym komputerze to zgadywanie będzie
    deterministyczne. Czyli wracamy do początku - a wynika to z tego, że kredą na tablicy
    można sobie różne rzeczy napisać, ale krzem nie wszystko przyjmie tak samo łatwo.

    > No nie. Podałem przykład programu, który w istotny
    > sposób bazuje na losowości -- i jego działanie jako
    > takie nie jest w istocie deterministyczne

    Bo sobie włączyłeś tą losowość w ramy działania programu. Dla mnie to jest zewnętrzne
    I/O.

    > Czyli Twoja argumentacja NIE ODNOSIŁA się do istoty
    > pojęcia,

    Co to jest "istota pojęcia"? Czy "istota programu" już nie wystarcza?

    > tylko do (chyba niezbyt dobrze zdefiniowanej?)
    > koncepcji "implementowalności pojęcia"

    Domniemując implementowalność na współczesnym komputerze, tak, pewne pojęcia mogą
    mieć lub nie mieć sensu.

    > My, jako ludzie, chcemy, żeby kompilacja była deterministyczna,
    > bo chcemy wiedzieć, czego możemy się spodziewać po kompilatorach.

    Chcemy, żeby efekty uboczne były takie, jak mówi definicja języka. Reszta nas zwykle
    nie interesuje i często nawet celowo jej nie dookreślamy. Np. mało kogo interesuje
    stan swapa na dysku po wykonaniu programu - ta niedookreśloność pozwala kompilatorom
    (czy ogólniej: systemowi uruchomieniowemu) na własną rękę podejmować różne decyzje.
    Kompilator nie musi być deterministyczny, żeby zapewnić użytkownikowi zgodność na
    poziomie sekwencji udokumentowanych efektów ubocznych.

    > Wydaje mi się, że jednak poprawność kompilatora jest dość dobrze
    > określona.

    Zwykle jest celowo niedookreślona.

    > to z perspektywy osób, które tworzą kompilatory, takie wymaganie
    > jest jak najbardziej na miejscu.

    Właśnie dla tych osób jest ważne, żeby użytkownicy pozostawili im swobodę w różnych
    obszarach. Dzięki temu te osoby mogą między sobą konkurować.

    > Ja ze swojej strony w ogóle nie wypowiadałem się o komputerach,
    > tylko o programach.

    Interesujące. Ale po co takiemu bezkomputerowemu programowi kompilator? Czy
    rozważania o deterministycznych kompilatorach dla programów bez komputerów nie są
    trochę... przeteoretyzowaniem problemu?

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

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: