eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak to robią w NASA › Re: Jak to robią w NASA
  • X-Received: by 2002:ae9:e88a:: with SMTP id a132mr14674398qkg.120.1567185634766; Fri,
    30 Aug 2019 10:20:34 -0700 (PDT)
    X-Received: by 2002:ae9:e88a:: with SMTP id a132mr14674398qkg.120.1567185634766; Fri,
    30 Aug 2019 10:20:34 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net
    !2.eu.feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!a
    13no9966525qtd.0!news-out.google.com!d29ni50qtg.1!nntp.google.com!a13no9966519q
    td.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 30 Aug 2019 10:20:34 -0700 (PDT)
    In-Reply-To: <0...@t...no1>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.64.54.180;
    posting-account=mvBzhgoAAADiziO82aLj4VEpjexQv3Cn
    NNTP-Posting-Host: 89.64.54.180
    References: <1ua4wui506zbf$.dlg@tyczka.com>
    <0...@t...no1>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <2...@g...com>
    Subject: Re: Jak to robią w NASA
    From: Adam Klobukowski <a...@g...com>
    Injection-Date: Fri, 30 Aug 2019 17:20:35 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:213877
    [ ukryj nagłówki ]

    W dniu piątek, 30 sierpnia 2019 10:06:36 UTC+2 użytkownik Queequeg napisał:

    > 1. Restrict all code to very simple control flow constructs - do not use
    > goto statements, setjmp or longjmp constructs, and direct or indirect
    > recursion.
    >
    > Z setjmp/longjmp się zgodzę. goto przydaje się w C, gdzie nie masz RAII i
    > chcesz wyczyścić zasoby, i IMO tylko w takim przypadku jest uzasadnione.
    >
    > Rekurencja... czasem prościej jest zrobić coś rekurencją niż iteracją,
    > choć każdą rekurencję i tak można zamienić na iterację, a sama rekurencja
    > nie jest zła. Jest zła wtedy, kiedy wymyka się spod kontroli. Wszystko
    > zależy od konkretnej sytuacji.

    > 3. Do not use dynamic memory allocation after initialization.
    >
    > Znów... zależy od konkretnego zastosowania. MISRA C zresztą mówi to samo.
    > Widzę w tym logikę, ale nie chciałbym tak pisać :(

    Te reguły wynikają z tego że to jest praktycznie programowanie embeded/raw
    metal/realtime. Pamięci mało, stosu mało, często nie ma dynamicznej alokacji i kod
    nie może rzucić błędem 'bo się alokacja nie udała' tylko musi być tak napisany żeby
    mieć gwarancję że potrzeby dotyczące pamięci zawsze będą spełnione.

    AdamK

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: