Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #32017
| Newsgroups | pl.comp.programming |
|---|---|
| Date | 2018-11-18 23:14 -0800 |
| References | (1 earlier) <7b5d82e1-72bb-4d42-96cb-0091385d7ef6@googlegroups.com> <d35b9c0f-333e-4cb8-9d83-e32eddcac124@googlegroups.com> <psp6q7$97o$1@node2.news.atman.pl> <6bea513b-1794-4d99-9380-931550599e51@googlegroups.com> <pss4d0$14n$1@node2.news.atman.pl> |
| Message-ID | <35eabe3c-2a77-4a51-9f1c-ea2538d4ade2@googlegroups.com> (permalink) |
| Subject | Re: Niezmienniki pętli |
| From | Maciej Sobczak <see.my.homepage@gmail.com> |
> > Tak, to ważna obserwacja. Może da się te rzeczy rozdzielić?
>
> To następna obserwacja: jeśl wpływa to na runtime release należy to
> odrzucić.
więc odrzućmy. Niech sobie będą statyczne asercje oraz dynamiczne, ale sterowane opcjami kompilatora.
> Jest, ale w przypadku nadmiaru checkerów nie da się pisać czytelnie.
[...]
> Jednak dalej brakuje mi czegoś takiego jak int a<4-200>
Czyli ogólnie: type invariants (niezmienniki typów). Wtedy warunek poprawności dla danego typu opisuje sie w jego definicji i nie trzeba już zaciemniać kodu pisząc co chwilę asercje, czy obiekt ma dobry stan. Tzn. zminimalizujmy zaciemnienie zbierając je do jednego miejsca, z dala od algorytmu.
Ciekawe, że wtedy można odróżnić niezmienniki typów (takie jak zakres zmiennej) od niezmienników obliczeń (np. pętli) i wraz z tym rozróżnieniem dać im osobne miejsce w kodzie. Przecież nie wszytko musi być klasycznym assertem.
> Contraints by się
> przydało i już powoduje to zniknięcie kilku lini DbC.
Chyba mamy to samo na myśli.
> Obserwuje że ludzie nie chcą języków bezpiecznych.
Zgadza się.
> Na początek chciabym w C++ takie coś:
>
> debug {
> // O(N^2) checker
> }
Wystarczy rozszerzyć składnię asserta. W tej chwili assert musi dostać jedno wyrażenie, ale można by go rozszerzyć tak, żeby akceptował dowolne fragmenty kodu. W niektórych językach to się robi o tyle łatwiejsze, że wszystko jest albo może być wyrażeniem, również pętla While czy cokolwiek innego - wtedy do takiego asserta można wsadzić dowolny fragment kodu, nawet z własnymi definicjami zmiennych wykorzystanych w środku. Ale w C++ chyba niewiele trzeba, żeby to osiągnąć, np. z taką składnią:
assert(dowolnyfragmentkodu, wynik_bool);
I użyć tego tak:
assert(
int i; // albo inne definicje
int j = x; // x jest na zewnątrz, ale widać go tutaj
while (orzemy_jak_możemy)
{
// obliczenia, wywołania funkcji, itd.
...
},
x > 0 && i < 10 // jakiś ostateczny warunek
);
I wtedy assert, tylko w trybie debug, wykonuje ten kod a na końcu sprawdza warunek logiczny z drugiego swojego argumentu. W trybie release nic nie robi.
Kto zaproponuje definicję makra assert o takich zdolnościach?
--
Maciej Sobczak * http://www.inspirel.com
Back to pl.comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-16 00:27 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-16 15:22 +0000
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-16 17:18 +0100
Re: Niezmienniki pętli szykcech@gmail.com - 2018-11-16 07:48 -0800
Re: Niezmienniki pętli szykcech@gmail.com - 2018-11-16 07:50 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-16 19:14 +0000
Re: Niezmienniki pętli szykcech@gmail.com - 2018-11-16 11:40 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-16 20:05 +0000
Re: Niezmienniki pętli szykcech@gmail.com - 2018-11-17 07:59 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-18 00:02 +0000
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-16 14:51 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-19 09:37 +0000
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-18 01:10 -0800
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-18 01:28 -0800
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-16 11:51 -0800
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-16 14:55 -0800
Re: Niezmienniki pętli Sebastian Biały <heby@poczta.onet.pl> - 2018-11-17 14:58 +0100
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-17 15:10 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-18 09:58 +0100
Re: Niezmienniki pętli Sebastian Biały <heby@poczta.onet.pl> - 2018-11-18 17:35 +0100
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-18 23:14 -0800
Re: Niezmienniki pętli Roman Tyczka <noemail@because.no> - 2018-11-19 09:22 +0100
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-19 08:15 -0800
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-19 10:45 -0800
Re: Niezmienniki pętli Sebastian Biały <heby@poczta.onet.pl> - 2018-11-22 18:50 +0100
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-19 10:49 -0800
Re: Niezmienniki pętli szykcech@gmail.com - 2018-11-19 12:18 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-19 20:44 +0000
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-19 13:10 -0800
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-19 13:16 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-20 09:43 +0000
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-20 01:58 -0800
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-20 14:27 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-21 10:12 +0000
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-21 11:35 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-21 21:10 +0000
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-21 02:36 -0800
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-19 14:12 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-20 00:20 +0100
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-20 09:35 +0000
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-20 12:00 +0100
Re: Niezmienniki pętli szykcech@gmail.com - 2018-11-19 20:37 -0800
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-20 13:46 -0800
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-20 01:46 -0800
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-20 12:52 -0800
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-20 13:16 -0800
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-20 06:07 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-20 17:54 +0100
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-20 23:16 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-21 15:54 +0100
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-21 16:07 +0100
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-21 13:48 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-22 16:08 +0100
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-20 00:00 +0100
Re: Niezmienniki pętli Wojciech Muła <wojtek.mula@gmail.com> - 2018-11-22 13:53 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-22 23:25 +0100
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 00:41 +0100
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 00:43 +0100
Re: Niezmienniki pętli szykcech@gmail.com - 2018-11-22 22:33 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 10:34 +0100
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-23 05:46 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 15:39 +0100
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 15:42 +0100
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 15:47 +0100
Re: Niezmienniki pętli Wojciech Muła <wojtek.mula@gmail.com> - 2018-11-23 10:54 -0800
Re: Niezmienniki pętli Borneq <borneq@antyspam.hidden.pl> - 2018-12-01 15:15 +0100
Re: Niezmienniki pętli Wojciech Muła <wojtek.mula@gmail.com> - 2018-12-01 11:50 -0800
Re: Niezmienniki pętli Borneq <borneq@antyspam.hidden.pl> - 2018-12-02 13:52 +0100
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-24 12:20 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 15:53 +0100
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-24 12:05 -0800
Re: Niezmienniki pętli Wojciech Muła <wojtek.mula@gmail.com> - 2018-11-26 02:01 -0800
Re: Niezmienniki pętli szykcech@gmail.com - 2018-11-23 08:42 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 19:42 +0100
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 19:43 +0100
Re: Niezmienniki pętli Wojciech Muła <wojtek.mula@gmail.com> - 2018-11-22 23:00 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 10:38 +0100
Re: Niezmienniki pętli Wojciech Muła <wojtek.mula@gmail.com> - 2018-11-23 04:08 -0800
Re: Niezmienniki pętli Wojciech Muła <wojtek.mula@gmail.com> - 2018-11-23 04:10 -0800
Re: Niezmienniki pętli AK <nobody@nowhere.net> - 2018-11-23 15:33 +0100
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-20 05:38 -0800
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-21 11:32 -0800
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-21 13:28 -0800
Re: Niezmienniki pętli godek.maciek@gmail.com - 2018-11-21 14:04 -0800
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-22 02:31 -0800
Re: Niezmienniki pętli fir <profesor.fir@gmail.com> - 2018-11-22 06:22 -0800
Re: Niezmienniki pętli Sebastian Biały <heby@poczta.onet.pl> - 2018-11-22 18:53 +0100
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-19 09:45 +0000
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-20 05:29 -0800
Re: Niezmienniki pętli queequeg@trust.no1 (Queequeg) - 2018-11-20 22:26 +0000
Re: Niezmienniki pętli Maciej Sobczak <see.my.homepage@gmail.com> - 2018-11-29 00:08 -0800
csiph-web