91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為何就一個(gè)編碼標(biāo)準(zhǔn)很難達(dá)成共識

5RJg_mcuworld ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-11-15 06:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

美國國家航空航天局(NASA)開發(fā)人員的工作是編程界最具挑戰(zhàn)性的工作之一。 他們編寫代碼并開發(fā)關(guān)鍵任務(wù)應(yīng)用程序,安全是他們主要關(guān)注的重點(diǎn)。

在這種情況下,制定嚴(yán)謹(jǐn)?shù)木幋a準(zhǔn)則并遵循,對于他們來說十分重要。這些規(guī)則涵蓋了軟件開發(fā)的各個(gè)方面,如應(yīng)該如何編寫軟件,應(yīng)該使用哪些語言特性等等。

盡管很難就一個(gè)編碼標(biāo)準(zhǔn)達(dá)成共識,NASA 的 JPL 首席科學(xué)家 Gerard J. Holzmann 還是制定了一套名為“發(fā)展安全關(guān)鍵代碼的十大規(guī)則”的代碼準(zhǔn)則,由所有工作人員共同遵循。

由于 JPL 的工作內(nèi)容與 C 語言相關(guān),因此本指南主要關(guān)注用 C 編程語言編寫的代碼。但也可以靈活運(yùn)用到其他語言上。

NASA 的十大編碼準(zhǔn)則:

1、簡化控制流程:使用盡可能精簡的控制流程構(gòu)造編寫程序 – 不要使用 setjmp 或 longjmp 構(gòu)造、goto 語句,以及直接或間接的遞歸調(diào)用。

2、為循環(huán)使用固定次數(shù)上限:所有的循環(huán)必須有一個(gè)固定的上限。 必須可以被某個(gè)檢測工具靜態(tài)證實(shí),該循環(huán)不能達(dá)到預(yù)置的迭代上限值。如果該上限值不能被靜態(tài)證實(shí),那么可以認(rèn)為違背該原則。

3、不要在初始化完成后進(jìn)行動態(tài)內(nèi)存分配。

4、不使用冗長的函數(shù):如果標(biāo)準(zhǔn)格式為一個(gè)語句一行、一個(gè)聲明一行,那么函數(shù)的長度應(yīng)在一張紙的范圍內(nèi),即每個(gè)函數(shù)的代碼行不能超過 60。

5、低斷言密度:代碼中斷言的密度平均低至每個(gè)函數(shù) 2 個(gè)斷言。斷言被用于檢測在實(shí)際執(zhí)行中的異常情況。斷言必須沒有副作用,并應(yīng)該定義為布爾測試。當(dāng)一個(gè)斷言失敗時(shí),應(yīng)該執(zhí)行一個(gè)明確的恢復(fù)操作,例如,把錯(cuò)誤情況返回給執(zhí)行該斷言失敗的函數(shù)調(diào)用者。對于靜態(tài)工具來說,任何能被靜態(tài)工具證實(shí)其永遠(yuǎn)不會失敗或永遠(yuǎn)不能觸發(fā)的斷言違反了該規(guī)則(例如,通過增加無用的 assert(true) 語句是不可能滿足這個(gè)規(guī)則的)。

6、以最小范圍級別聲明數(shù)據(jù)對象:該原則同時(shí)也是數(shù)據(jù)隱蔽(Data hiding)的基本原則。所有數(shù)據(jù)對象均必須以盡可能最小的范圍級別進(jìn)行聲明。

7、檢查參數(shù)和返回值:應(yīng)在每次調(diào)用函數(shù)后檢查非空函數(shù)的返回值,并在每個(gè)函數(shù)內(nèi)部檢查參數(shù)的有效性。

8、限制預(yù)處理程序的使用:預(yù)處理器的使用僅受包含頭文件和簡單的宏定義的限制。符號拼接、可變參數(shù)列表(省略號)和遞歸宏調(diào)用不被允許。所有的宏必須擴(kuò)展為完整的語法單元。通常不建議使用條件編譯指令,但也不總是能夠避免每次在代碼中這樣做的時(shí)候必須有基于工具的檢查器進(jìn)行標(biāo)記,并有充足的理由。

9、限制指針的使用:具體來說,不允許有超過一級的解除指針引用。解除指針引用操作不可隱藏在宏定義或類型聲明中。不允許使用函數(shù)指針。

10、編譯所有代碼:從開發(fā)工作第一天開始時(shí),在編譯器開啟最高級別警告選項(xiàng)的條件下對代碼進(jìn)行編譯。在此設(shè)置之下,代碼必須零警告編譯通過。代碼必須通過源代碼靜態(tài)分析工具,每天檢查一次以上,且零警告通過。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5202

    文章

    20516

    瀏覽量

    335185
  • 大數(shù)據(jù)
    +關(guān)注

    關(guān)注

    64

    文章

    9075

    瀏覽量

    143874

原文標(biāo)題:NASA頂級程序員是如何編程的?其實(shí)有十大準(zhǔn)則

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    以DENC區(qū)塊鏈為例講解共識機(jī)制

    ?所謂共識機(jī)制,實(shí)際上就是讓區(qū)塊鏈系統(tǒng)的每一個(gè)節(jié)點(diǎn)達(dá)成致的策略和方法。技術(shù)界大佬李開復(fù)就曾經(jīng)有個(gè)
    發(fā)表于 08-30 14:21

    以DENC區(qū)塊鏈為例講解共識機(jī)制

    ?所謂共識機(jī)制,實(shí)際上就是讓區(qū)塊鏈系統(tǒng)的每一個(gè)節(jié)點(diǎn)達(dá)成致的策略和方法。技術(shù)界大佬李開復(fù)就曾經(jīng)有個(gè)
    發(fā)表于 09-05 09:58

    GaN HEMT可靠性測試:為什么業(yè)界無法就種測試標(biāo)準(zhǔn)達(dá)成共識

    以確保其可靠性?要回答這個(gè)問題,我們首先可以看下兩個(gè)致力于高質(zhì)量可靠性測試的委員會:JEDEC和AEC。 當(dāng)前的測試標(biāo)準(zhǔn):JEDEC和AEC電子設(shè)備工程聯(lián)合委員會(JEDEC)負(fù)責(zé)為半導(dǎo)體電路和存儲
    發(fā)表于 09-23 10:46

    鴻海郭臺銘未與夏普達(dá)成共識 已經(jīng)離開日本

    日本媒體報(bào)道,鴻海精密董事長郭臺銘周四已經(jīng)離開日本,但其此行并未能就富士康投資夏普事與后者達(dá)成共識。今年3月27日,富士康宣布以每股550日元的股價(jià)收購夏普9.9%的股價(jià),交
    發(fā)表于 08-31 09:04 ?559次閱讀

    種改進(jìn)的區(qū)塊鏈共識機(jī)制的研究與實(shí)現(xiàn)

    區(qū)塊鏈作為比特幣的底層技術(shù),是種通過去中心化、去信任的方式集體維護(hù)個(gè)可靠數(shù)據(jù)庫的技術(shù)方案。共識機(jī)制是區(qū)塊鏈的核心,解決了如何在
    發(fā)表于 01-10 14:24 ?1次下載
    <b class='flag-5'>一</b>種改進(jìn)的區(qū)塊鏈<b class='flag-5'>共識</b>機(jī)制的研究與實(shí)現(xiàn)

    共識”才是達(dá)成區(qū)塊鏈應(yīng)用落地的根本因素

    內(nèi)部的規(guī)則、標(biāo)準(zhǔn)、流程都可能存在差異性,如果要按照同標(biāo)準(zhǔn)或原則去執(zhí)行道工序,尤其是涉及到復(fù)雜業(yè)務(wù)的時(shí)候,達(dá)成
    發(fā)表于 06-22 11:55 ?621次閱讀

    華為官方和UL就跑分作弊事件達(dá)成共識

    華為官方和UL聯(lián)合發(fā)布聲明,對此事進(jìn)行了解釋和澄清,雙方就下步合作達(dá)成共識。
    的頭像 發(fā)表于 09-11 09:25 ?4245次閱讀

    為什么共識算法對于加密貨幣至關(guān)重要

    共識算法可以被定義為使區(qū)塊鏈網(wǎng)絡(luò)達(dá)成共識的機(jī)制。公共(去中心化的)區(qū)塊鏈?zhǔn)亲鳛榉植际较到y(tǒng)來構(gòu)建的,由于它們不依賴于個(gè)中央權(quán)威,因此分散的節(jié)
    發(fā)表于 12-24 09:43 ?1355次閱讀

    如何保證區(qū)塊鏈網(wǎng)絡(luò)達(dá)成正確的共識

    共識是指分布式網(wǎng)絡(luò)中節(jié)點(diǎn)對某一事實(shí)達(dá)成致意見的過程。例如,比特幣的共識就是指依據(jù)其規(guī)則和流程,網(wǎng)絡(luò)中的節(jié)點(diǎn)對共享的交易記賬結(jié)果達(dá)成
    發(fā)表于 04-02 10:14 ?959次閱讀

    區(qū)塊鏈共識的錯(cuò)誤陳述

    共識協(xié)議解決了計(jì)算機(jī)科學(xué)中的個(gè)經(jīng)典問題:許多平等的參與者如何才能就事件的全局觀點(diǎn)達(dá)成致?在區(qū)塊鏈術(shù)語中,這意味著同意處理交易的特定順序。
    發(fā)表于 04-08 11:38 ?1300次閱讀

    廣瀨電機(jī)和德國浩亭就單組差分信號用連接器開發(fā)達(dá)成共識

    廣瀨電機(jī)株式會社和浩亭電子 GmbH就單組差分信號(SPE)用連接器的共同開發(fā)、標(biāo)準(zhǔn)化以及銷售推廣達(dá)成共識。
    發(fā)表于 04-19 09:18 ?1464次閱讀

    區(qū)塊鏈中的共識機(jī)制是什么

    所謂共識機(jī)制,是分布式系統(tǒng)中的個(gè)過程,用于在涉及多個(gè)不可靠節(jié)點(diǎn)的網(wǎng)絡(luò)中,在所有節(jié)點(diǎn)之間實(shí)現(xiàn)數(shù)據(jù)致性并對某個(gè)提案達(dá)成
    發(fā)表于 04-30 10:00 ?1399次閱讀

    個(gè)汽車產(chǎn)業(yè)大國為何突然在汽車電動化上達(dá)成共識?

    在新能源汽車的技術(shù)路線上,全球汽車行業(yè)巨頭們直存在著很多分歧,比如有的堅(jiān)定選擇純電動,有的看好混動,還有的瞄準(zhǔn)氫能?;仡檮倓傔^去的2020年,德日美中四個(gè)汽車產(chǎn)業(yè)大國,突然在汽車電動化上達(dá)成
    的頭像 發(fā)表于 02-18 15:03 ?1835次閱讀

    中環(huán)股份攜手TCL科技達(dá)成戰(zhàn)略合作共識

    4月7日,TCL科技集團(tuán)、中環(huán)半導(dǎo)體與內(nèi)蒙古自治區(qū)、呼和浩特市舉行合作協(xié)議簽約儀式,就進(jìn)步深化合作,推動重大項(xiàng)目建設(shè),促進(jìn)新能源產(chǎn)業(yè)高質(zhì)量發(fā)展達(dá)成戰(zhàn)略合作共識
    的頭像 發(fā)表于 04-08 10:10 ?2622次閱讀

    華為攜手產(chǎn)業(yè)達(dá)成移動AI基礎(chǔ)網(wǎng)共識

    在2025 MWC上海期間,華為舉辦“移動AI基礎(chǔ)網(wǎng)峰會”,邀請全球運(yùn)營商、AI生態(tài)伙伴、產(chǎn)業(yè)標(biāo)準(zhǔn)組織、學(xué)者及三方測評機(jī)構(gòu)等產(chǎn)學(xué)研代表,共同探討移動AI產(chǎn)業(yè)的未來發(fā)展路徑。會議達(dá)成兩項(xiàng)共識
    的頭像 發(fā)表于 06-26 11:44 ?903次閱讀