Article View: pl.comp.programming
Article #215945Re: Jak to robią w NASA
From: Adam Klobukowski
Date: Fri, 30 Aug 2019 17:20
Date: Fri, 30 Aug 2019 17:20
22 lines
2585 bytes
2585 bytes
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
Technical Details
Message-ID:
<2417561c-a1c9-49c2-a32f-634176591958@googlegroups.com>Path:
mbox-mo1.pugleaf.net!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!a13no9966525qtd.0!news-out.google.com!d29ni50qtg.1!nntp.google.com!a13no9966519qtd.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<1ua4wui506zbf$.dlg@tyczka.com> <0836b6a7-f4cb-459b-b9a3-33d209c96ca6@trust.no1>Show Full Headers
Complete Article Headers
X-Received: by 2002:ac8:474d:: with SMTP id k13mr16426223qtp.266.1567185635167; Fri, 30 Aug 2019 10:20:35 -0700 (PDT) X-Received: by 2002:ae9:e88a:: with SMTP id a132mr14674398qkg.120.1567185634766; Fri, 30 Aug 2019 10:20:34 -0700 (PDT) Path: mbox-mo1.pugleaf.net!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!a13no9966525qtd.0!news-out.google.com!d29ni50qtg.1!nntp.google.com!a13no9966519qtd.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: <0836b6a7-f4cb-459b-b9a3-33d209c96ca6@trust.no1> Complaints-To: groups-abuse@google.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> <0836b6a7-f4cb-459b-b9a3-33d209c96ca6@trust.no1> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <2417561c-a1c9-49c2-a32f-634176591958@googlegroups.com> Subject: Re: Jak to robią w NASA From: Adam Klobukowski <adamklobukowski@gmail.com> Injection-Date: Fri, 30 Aug 2019 17:20:35 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit