🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #215945

Re: Jak to robią w NASA

#215945
From: Adam Klobukowski
Date: Fri, 30 Aug 2019 17:20
22 lines
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-mail
References: <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