-
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.
Następne wpisy z tego wątku
- 09.10.17 14:25 Maciej Sobczak
- 09.10.17 18:12 fir
- 09.10.17 19:47 g...@g...com
Najnowsze wątki z tej grupy
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
Najnowsze wątki
- 2024-04-30 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-04-30 Białystok => Technical Leader (Java Background) <=
- 2024-04-30 Białystok => ERP Implementer <=
- 2024-04-30 Powerbank jednonapieciowy, a trzynapieciowy
- 2024-04-30 Który program do PIT-ów?
- 2024-04-30 Warszawa => Senior PHP Developer (Symfony) <=
- 2024-04-30 Warszawa => Konsultant funkcjonalny systemu Oracle E-Business Suite R1
- 2024-04-30 Obajtek bez majtek
- 2024-04-29 Warszawa => Staż w dziale Sprzedaży B2B (2 miejsca) <=
- 2024-04-29 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-04-29 Ulm => IT Network Engineer <=
- 2024-04-29 Gdańsk => UX/UI Designer <=
- 2024-04-29 Gdańsk => AI Specialist <=
- 2024-04-29 frankowicze odcinek NNN
- 2024-04-29 Warszawa => Specjalista ds. Cyberbezpieczeństwa <=