eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingNiezmienniki pętli › Re: Niezmienniki pętli
  • X-Received: by 2002:aed:2a0c:: with SMTP id c12mr58370qtd.2.1542397890892; Fri, 16
    Nov 2018 11:51:30 -0800 (PST)
    X-Received: by 2002:aed:2a0c:: with SMTP id c12mr58370qtd.2.1542397890892; Fri, 16
    Nov 2018 11:51:30 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!feeds.phibee-telecom.net!border2.nntp.ams1.giganews.com!nntp.giganews.com
    !feeder2-2.proxad.net!proxad.net!feeder1-2.proxad.net!209.85.166.216.MISMATCH!g
    188-v6no758511itg.0!news-out.google.com!y103-v6ni916ita.0!nntp.google.com!g188-
    v6no758507itg.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-
    mail
    Newsgroups: pl.comp.programming
    Date: Fri, 16 Nov 2018 11:51:30 -0800 (PST)
    In-Reply-To: <8...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=46.186.75.192;
    posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
    NNTP-Posting-Host: 46.186.75.192
    References: <8...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <7...@g...com>
    Subject: Re: Niezmienniki pętli
    From: g...@g...com
    Injection-Date: Fri, 16 Nov 2018 19:51:31 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Lines: 72
    Xref: news-archive.icm.edu.pl pl.comp.programming:212910
    [ ukryj nagłówki ]

    W dniu piątek, 16 listopada 2018 09:27:41 UTC+1 użytkownik Maciej Sobczak napisał:
    > Zastanawiam się, czy to jest pojęcie wyłącznie akademickie.
    >
    > W tzw. "normalnym" programowaniu, które praktykuje większość programistów, nigdy
    nie widziałem odwołania się do takiej koncepcji w sensie wykorzystania niezmienników
    w projektowaniu kodu.
    > Jak programista ma do napisania pętlę, to w praktyce:
    > - albo już pisał podobną i napisze jeszcze raz (to jest najczęstszy przypadek),
    > - albo nie pisał, ale rozumie i napisze posługując się głównie intuicją (wtedy mamy
    frajdę, bo coś nowego),
    > - albo nie rozumie i nie napisze.
    >
    > Niezmienniki pozwalają jednak pętlę zaprojektować albo przeanalizować i np. dojść
    do wniosku, że jest poprawna.
    > Nie pytam o metody formalne, tylko o powiedzmy nieco bardziej świadomą praktykę
    programistyczną. Nazwijmy to ładnie "attentive engineering". Albo "mindful
    engineering".
    >
    > Pytanie jest takie: czy ktoś z Was spotkał się z tym pojęciem (poza szkołą) a nawet
    z niego skorzystał w praktyce? Czy to jest praktyka, do której staracie się sięgać w
    tym trzecim przypadku? A może bardziej regularnie?
    >
    > Czy może po prostu w ogóle temat jest oderwany od tzw. rzeczywistości?
    >
    > Ciekawi mnie Wasze spojrzenie na tą sprawę również wtedy, gdy piszecie w językach
    nie-imperatywnych, gdzie takich klasycznych pętli jest mniej albo w ogóle ich nie ma.
    Czy w związku z tym zagadnienie niezmienników jest niepotrzebne? A może nadal jest
    potrzebne i coś innego je zastępuje?
    >
    > Wersja dla quizowiczów:
    > - wiem i używam albo pamiętam, że mogę,
    > - słyszałem i ignoruję,
    > - nie rozumiem pytania[*].
    >
    > [*] https://en.wikipedia.org/wiki/Loop_invariant
    >
    > --
    > Maciej Sobczak * http://www.inspirel.com

    Kevlin Henney poruszył ten temat w jednej z prezentacji,
    pokazując związek logiki Hoare'a z "metodyką" "given-when-then"
    stosowaną przy pisaniu testów:

    https://www.youtube.com/watch?v=JiQct3QixMo

    Jeżeli idzie o mnie, to zastanawianie się nad "warunkami początkowymi"
    i "warunkami końcowymi" wydaje mi się dziwne. I o ile wyrażanie własności
    programów wydaje mi się ważnym skillem (np. w połączeniu z model-checkerami
    albo property-based testing), i dostrzegam pewną wartość w akademickich
    narzędziach pokroju ATS i liniowych systemach typów, o tyle pytanie
    o niezmienniki pętli jest dla mnie po prostu nienaturalną formą
    rozumowania.

    (Ale też jeśli mam wybór, wolę myśleć w oparciu o równania rekurencyjne,
    niż imperatywne pętle)

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: