一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

為何就一個編碼標準很難達成共識

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

NASA 的十大編碼準則:

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

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

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

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

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

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

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

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

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

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

  • 嵌入式
    +關(guān)注

    關(guān)注

    5150

    文章

    19665

    瀏覽量

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

    關(guān)注

    64

    文章

    8960

    瀏覽量

    140176

原文標題:NASA頂級程序員是如何編程的?其實有十大準則

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

    GaN HEMT可靠性測試:為什么業(yè)界無法就種測試標準達成共識

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

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

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

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

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

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

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

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

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

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

    共識算法可以被定義為使區(qū)塊鏈網(wǎng)絡(luò)達成共識的機制。公共(去中心化的)區(qū)塊鏈是作為分布式系統(tǒng)來構(gòu)建的,由于它們不依賴于中央權(quán)威,因此分散的節(jié)
    發(fā)表于 12-24 09:43 ?1146次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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