-
X-Received: by 10.31.135.14 with SMTP id j14mr619399vkd.7.1507184924937; Wed, 04 Oct
2017 23:28:44 -0700 (PDT)
X-Received: by 10.31.135.14 with SMTP id j14mr619399vkd.7.1507184924937; Wed, 04 Oct
2017 23:28:44 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.
iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!border2.nntp.dca1.giganew
s.com!nntp.giganews.com!d13no1140271qta.0!news-out.google.com!p42ni2637qtp.0!nn
tp.google.com!6no959365qtw.1!postnews.google.com!glegroupsg2000goo.googlegroups
.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 4 Oct 2017 23:28:44 -0700 (PDT)
In-Reply-To: <e...@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>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5...@g...com>
Subject: Re: Optymalizacja struktur danych dla programów funkcyjnych
From: g...@g...com
Injection-Date: Thu, 05 Oct 2017 06:28:44 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 91
Xref: news-archive.icm.edu.pl pl.comp.programming:211565
[ ukryj nagłówki ]W dniu czwartek, 5 października 2017 01:37:44 UTC+2 użytkownik Maciej Sobczak
napisał:
> > Można sobie pomyśleć program, który oblicza wartość jakiegoś programu
> > czysto funkcyjnego
>
> Ale nie ustaliliśmy jeszcze, co to znaczy, że program jest czysto funkcyjny.
Z tego co patrzę na historię tej rozmowy, ustaliliśmy to na dość
wczesnym etapie.
> > To, czy liczba jest pseudolosowa, czy nie jest, czy pochodzi z wejścia,
> > czy z kosmosu, nie ma znaczenia dla *ISTOTY* danego programu.
>
> I właśnie tej istoty szukamy. Jeżeli istotą jest przetwarzanie wejścia na wyjście,
to wszystkie programy w istocie takie są. Natomiast jeśli jest nią generowanie
efektów ubocznych, to też wszystkie takie są.
Otóż właśnie nie, na co również dawałem przykłady.
> > Dałem kilka kontrprzykładów. Systemy kolejkowe czasu rzeczywistego
> > nie są deterministyczną funkcją input->output. Być może mają komponenty,
> > które można w taki sposób analizować, ale ich istotą jest działanie
> > w czasie rzeczywistym, i reagowanie na zdarzenia w zależności od
> > jakiegoś ich wewnętrznego stanu.
>
> No to robimy ćwiczenie na wyobraźnię:
>
> 1. *Narysuj* zdarzenia w środowisku i otoczeniu programu, w ich rozciągłości
czasowej. Oś czasu, od lewej do prawej, z zaznaczonymi zdarzeniami, wartościami, itd.
> 2. Zrób z tego obrazka plik, np. w formacie PNG. Czyli *jedną wartość*.
> 3. Podobnie narysuj na osi czasu odpowiedź systemu na taką stymulację. Znowu, z
odpowiednią skalą czasu, wartościami (tak, żeby po złożeniu tych dwóch obrazków
powstał opis działania programu w czasie), itd.
> 4. Z tego drugiego obrazka też zrób plik.
>
> Otóż okazuje się, że Twój "system czasu rzeczywistego" przetwarza pliki graficzne.
Czyli przetwarza pojedyncze wartości. To, czy wczyta od razu cały plik z wejścia i
wypluje cały plik na wyjściu, czy też będzie je przetwarzał po jednym pikselowym
pasku wzdłuż jednego boku obrazka (czyli np. wzdłuż osi czasu, co odpowiada naszej
percepcji działania w kontekście upływającego czasu) nie ma znaczenia dla istoty tego
programu, którą jest transformacja jednego obrazka w drugi.
Problem polega na tym, że mylisz w tej chwili istotę programu ze środkami
analizy. Owszem, każdy program można analizować przy pomocy pojęcia funkcji,
albo przy pomocy pojęcia maszyny stanu, albo czegoś jeszcze innego.
Ale to nie znaczy, że te środki analizy zawsze pokrywają się z istotą programu.
W szczególności, na przykład, częścią opisu maszyny stanu jest funkcja
przejścia w inny stan -- toteż używamy pojęcia funkcji pomocniczo do
opisania maszyny stanów. Ale diagram przejść stanu jest czymś istotnie
różnym od pojęcia funkcji.
> I teraz ten cały podział nie dotyczy istoty działania programu (bo ta istota jest
zawsze taka sama), tylko sposobu, w jaki my, ludzie, danego programu użyjemy. Możemy
odpalić program jednym strzałem albo też delektować się powolnym budowaniem wyniku,
ale to jest ten sam program. Czyli dotyczy naszej percepcji a nie jest fundamentalnym
atrybutem problemu, który dany program rozwiązuje. Bo problem jest zawsze ten sam.
Problem nie jest zawsze ten sam. Projektanci kompilatorów muszą zwracać
uwagę na zupełnie inne rzeczy, niż projektanci gier komputerowych albo
stron internetowych, po w pierwszym przypadku kluczowy jest wynik, a w
pozostałych -- interakcja.
Rzeczywiście, istniał kiedyś np. program do dowodzenia twierdzeń autorstwa
Boyera-Moore'a NQTHM, który dawał użytkownikom możliwość "delektowania się
powolnym budowaniem wyniku", ale to nie należało do jego istoty.
Następne wpisy z tego wątku
- 05.10.17 13:48 Maciej Sobczak
- 05.10.17 18:58 g...@g...com
- 06.10.17 14:01 Maciej Sobczak
- 06.10.17 19:59 g...@g...com
- 07.10.17 23:22 Maciej Sobczak
- 08.10.17 10:47 g...@g...com
- 08.10.17 23:30 Maciej Sobczak
- 09.10.17 07:58 g...@g...com
- 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
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- 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
Najnowsze wątki
- 2025-02-07 Jaki silikon lub może klej?
- 2025-02-07 Gdańsk => iOS Developer (Swift experience) <=
- 2025-02-07 Warszawa => Starszy Programista C <=
- 2025-02-07 Niby to nie sąd ale kooorwa tak to w sądach dziś wygląda?
- 2025-02-06 PROGRAM DOPŁAT DO AUT ELEKTRYCZNYCH TO ABSURD. ZA ŚRODKI Z KPO KUPIMY NIEMIECKIE I CHIŃSKIE AUTA
- 2025-02-05 ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-07 Smar do video
- 2025-02-06 Litowe baterie AA Li/FeS2 a alkaliczne
- 2025-02-07 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-07 Warszawa => System Architect (Java background) <=
- 2025-02-07 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-07 Warszawa => Solution Architect (Java background) <=
- 2025-02-07 Gliwice => Ekspert IT (obszar systemów sieciowych) <=