eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingOptymalizacja struktur danych dla programów funkcyjnych › Re: Optymalizacja struktur danych dla programów funkcyjnych
  • X-Received: by 10.31.167.75 with SMTP id q72mr453632vke.22.1507528695021; Sun, 08 Oct
    2017 22:58:15 -0700 (PDT)
    X-Received: by 10.31.167.75 with SMTP id q72mr453632vke.22.1507528695021; Sun, 08 Oct
    2017 22:58:15 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!go
    blin2!goblin.stu.neva.ru!peer01.am4!peer.am4.highwinds-media.com!peer01.iad!fee
    d-me.highwinds-media.com!news.highwinds-media.com!k31no141786qta.1!news-out.goo
    gle.com!r5ni762qtc.1!nntp.google.com!k31no141780qta.1!postnews.google.com!glegr
    oupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sun, 8 Oct 2017 22:58:14 -0700 (PDT)
    In-Reply-To: <c...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=46.186.90.250;
    posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
    NNTP-Posting-Host: 46.186.90.250
    References: <c...@g...com>
    <4...@g...com>
    <b...@g...com>
    <d...@g...com>
    <f...@g...com>
    <b...@g...com>
    <1...@g...com>
    <4...@g...com>
    <5...@g...com>
    <e...@g...com>
    <5...@g...com>
    <b...@g...com>
    <a...@g...com>
    <e...@g...com>
    <f...@g...com>
    <d...@g...com>
    <c...@g...com>
    <c...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <0...@g...com>
    Subject: Re: Optymalizacja struktur danych dla programów funkcyjnych
    From: g...@g...com
    Injection-Date: Mon, 09 Oct 2017 05:58:15 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    X-Received-Body-CRC: 41777416
    X-Received-Bytes: 7544
    Xref: news-archive.icm.edu.pl pl.comp.programming:211584
    [ ukryj nagłówki ]

    W dniu niedziela, 8 października 2017 23:30:19 UTC+2 użytkownik Maciej Sobczak
    napisał:
    > > > Słabe. Oba pojęcia to twory czysto teoretyczne, których nie ma nawet jak
    zaimplementować.
    > >
    > > Masz jakąś szerszą wiedzę na ten temat?
    >
    > Podałeś linka a tam jest to opisane. Następnym razem podaj takiego linka, z którym
    będziesz się zgadzał.

    W artykule jest napisane:

    "How does the NTM "know" which of these actions it should take? There are two ways of
    looking at it. One is to say that the machine is the "luckiest possible guesser"; it
    always picks a transition that eventually leads to an accepting state, if there is
    such a transition. The other is to imagine that the machine "branches" into many
    copies, each of which follows one of the possible transitions."

    O ile wiem, nikt do tej pory nie udowodnił, że nie można
    sensownie zaimplementować wariantu "luckiest possible guesser"

    > > Z punktu widzenia dyskusji istotna jest kwestia, czy pojęcie
    > > jest dobrze zdefiniowane.
    >
    > Bingo. Właśnie tego się od początku czepiam. :-)

    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, natomiast
    Ty stwierdziłeś, że jest deterministyczne, bo owa losowość
    w faktycznej implementacji będzie albo pseudo-losowością,
    i wówczas będzie deterministyczna, albo będzie dodatkowym
    wejściem do programu, przez co program jako taki również
    będzie deterministyczny.
    Czyli Twoja argumentacja NIE ODNOSIŁA się do istoty
    pojęcia, tylko do (chyba niezbyt dobrze zdefiniowanej?)
    koncepcji "implementowalności pojęcia"

    > > Czy pisząc "początkowy wątek" masz na myśli Twoją niezgodę
    > > na moje stwierdzenie, że "kompilator jest w istocie programem
    > > czysto funkcyjnym"?
    >
    > Tak.
    >
    > > Jeśli tak, to nie oddalam się ani o jotę, bo w owym stwierdzeniu
    > > nie ma ABSOLUTNIE NIC o "naszych komputerach".
    >
    > I teraz jesteśmy bliżej, bo mamy dokładniej zdefiniowany kontekst.

    Wcześniej w tym stwierdzeniu również nie było nic o "naszych komputerach" ;p

    > > Stwierdzenie owo jest równoważne powiedzeniu, że kompilator
    > > jest zasadniczo rodzajem deterministycznego przekształcenia,
    > > i nie wydaje mi się przesadnie kontrowersyjne.
    >
    > Ale dlaczego ma nie być kontrowersyjne? Przecież może być wiele sposobów na
    kompilację (sam fakt, że jest wiele kompilatorów popularnych języków już na to
    wskazuje, nie mówiąc o ich różnych opcjach), więc nie ma powodu twierdzić, że
    kompilacja musi być deterministyczna.

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

    > Problem jest tutaj w kryterium poprawności. O ile funkcja square ma dosyć dobrze
    określone takie kryterium i w zasadzie to kryterium powoduje, że funkcja square
    będzie deterministyczna (bo inny wynik dla tego samego argumentu będzie uznany za
    niepoprawny), to poprawność kompilatora nie jest tak dobrze określona. Stąd też
    mnogość kompilatorów. Stąd też brak wymagania na to, żeby kompilator był
    deterministyczny. A skoro nie musi być deterministyczny, to nie ma powodu przypisywać
    mu cechy bycia "czysto funkcyjnym".

    Wydaje mi się, że jednak poprawność kompilatora jest dość dobrze
    określona. Zaś o ile być może z perspektywy tego czy innego użytkownika
    wymaganie, żeby kompilator był deterministyczny, może nie wydawać się
    istotne, to z perspektywy osób, które tworzą kompilatory, takie wymaganie
    jest jak najbardziej na miejscu. (Pominę tu kwestię ekwiwokacji, związanej
    z tym, że raz słowo "kompilator" jest użyte w istotnym sensie, tzn.
    odnosi się do programu realizującego przekształcenie, a innym razem
    w sensie metonimicznym -- do pakietu oprogramowania, który daje użytkownikowi
    różne "opcje")

    > > Tobie się ono nie spodobało -- jak zrozumiałem -- z tego wględu,
    > > że według Ciebie każdy program jest rodzajem deterministycznego
    > > przekształcenia
    >
    > Tak. Na domniemanych współczesnych komputerach. Możemy od nich odejść, ale jeśli
    mamy przy nich pozostać, to trzymam się determinizmu.

    Tzn. na domniemanych przez Ciebie współczesnych komputerach.
    Ja ze swojej strony w ogóle nie wypowiadałem się o komputerach,
    tylko o programach.

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: