-
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
Następne wpisy z tego wątku
- 09.10.17 18:12 fir
- 09.10.17 19:47 g...@g...com
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- 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?
Najnowsze wątki
- 2024-05-16 Samo rozładowywanie baterii trakcyjnej w elektryku.
- 2024-05-16 Warszawa => Senior PHP Developer (Symfony) <=
- 2024-05-16 Warszawa => Interactive/Experience Designer <=
- 2024-05-16 Wrocław => Consultant/Implementer Comarch ERP XL <=
- 2024-05-16 Zabrze => Junior HelpDesk <=
- 2024-05-16 Warszawa => Technical Lead ( (Java Background)) <=
- 2024-05-16 Szczecin => Senior DevOps Engineer <=
- 2024-05-16 Szczecin => Starszy inżynier oprogramowania (Rust) <=
- 2024-05-16 Śledztwo bodnatury "jak wyrok"? ["likwidator" Polskiego Radia donosi]
- 2024-05-16 Citi... zmiany warunków umowy o kartę kredytową Citibank?
- 2024-05-16 prawo jazdy z Nepalu
- 2024-05-15 Mini Netykieta polskich grup i list dyskusyjnych
- 2024-05-15 Warszawa => Key Account Manager <=
- 2024-05-15 Millenium czyli DEBILE bankowości
- 2024-05-15 Warszawa => Frontend Developer - React <=