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

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

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

SPARK語言可否取代 C語言?

Linux愛好者 ? 來源:OSC開源社區(qū) ? 作者:OSC開源社區(qū) ? 2022-11-23 12:37 ? 次閱讀

知名編程語言 Ada 與 SPARK 所屬公司 AdaCore 發(fā)布了一則關(guān)于 NVIDIA 的案例,案例顯示:NVIDIA 的產(chǎn)品運行著許多經(jīng)過正式驗證的 SPARK 代碼,NVIDIA 安全團隊正嘗試使用 SPARK 語言取代 C 語言,來實現(xiàn)一些對安全較為敏感的應(yīng)用程序或組件。

SPARK 是一種編程語言和一組驗證工具,旨在滿足高保證軟件開發(fā)的需求。SPARK 基于 Ada 語言,它既對 ada 語言進行子集化以刪除無法驗證的功能,又擴展了合約和方面的系統(tǒng),進一步支持模塊化、形式化驗證。 SPARK 語言一般用于可預(yù)測和高度可靠操作的系統(tǒng)中的高完整性軟件,它有助于開發(fā)需要高安全性或業(yè)務(wù)完整性的應(yīng)用程序。

e33837de-6ae2-11ed-8abf-dac502259ad0.png

早在 2018 年, NVIDIA 就針對 “從 C 轉(zhuǎn)換為 SPARK” 這一過程進行了概念驗證 (POC) 練習,在三個月內(nèi)將兩個低級別的安全敏感應(yīng)用從 C 轉(zhuǎn)換為 SPARK 代碼。在對投資回報進行評估后,該團隊得出結(jié)論:隨著新技術(shù)的增加(培訓(xùn)、實驗、新工具等),應(yīng)用程序安全性和驗證效率也得到了提高,轉(zhuǎn)換為 SPARK 代碼的兩個應(yīng)用程序?qū)崿F(xiàn)了安全穩(wěn)健性的重大改進。 (有關(guān)評估結(jié)果的更多信息,請參閱 NVIDIA 的進攻性安全研究 D3FC0N 演講:https://blog.adacore.com/when-formal-verification-with-spark-is-the-strongest-link)。 由于 POC 的結(jié)果證明從 C 轉(zhuǎn)換為 SPARK 的可行性,SPARK 語言的使用在 NVIDIA 內(nèi)迅速傳播開來?,F(xiàn)在已有超過 50 名受過專業(yè)培訓(xùn)的開發(fā)人員使用 SPARK 中實現(xiàn)了許多組件,且許多 NVIDIA 產(chǎn)品現(xiàn)在都附帶 SPARK 組件。 另外,SPARK 有一項很有趣的特性:它可以代碼本身中指定程序需求的能力,并使用相關(guān)的工具集來確保代碼實現(xiàn)地功能與它的需求相匹配。NVIDIA 更多地使用 SPARK 來實現(xiàn)最關(guān)鍵的組件,確保它沒有運行時錯誤,并確保它符合受信任根應(yīng)用程序的規(guī)范。 此外,完整的案例研究涵蓋了一些有趣的主題,比如與 C 相比,SPARK 的性能 “根本沒有看到任何性能差異 “。

編輯:黃飛

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

    關(guān)注

    14

    文章

    5047

    瀏覽量

    103347
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7610

    瀏覽量

    137229
  • SPARK
    +關(guān)注

    關(guān)注

    1

    文章

    105

    瀏覽量

    19932

原文標題:NVIDIA 嘗試使用 SPARK 語言取代 C 語言

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    C語言指針學(xué)習筆記

    本文從底層內(nèi)存分析,徹底讓讀者明白C語言指針的本質(zhì)。
    的頭像 發(fā)表于 11-05 17:40 ?270次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>指針學(xué)習筆記

    C語言中的socket編程基礎(chǔ)

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實現(xiàn)不同計算機之間的通信
    的頭像 發(fā)表于 11-01 16:51 ?384次閱讀

    C語言與Java語言的對比

    C語言和Java語言都是當前編程領(lǐng)域中的重要成員,它們各自具有獨特的優(yōu)勢和特點,適用于不同的應(yīng)用場景。以下將從語法特性、內(nèi)存管理、跨平臺性、性能、應(yīng)用領(lǐng)域等多個方面對C
    的頭像 發(fā)表于 10-29 17:31 ?385次閱讀

    C語言與其他編程語言的比較

    C語言作為一種歷史悠久的編程語言,自其誕生以來,一直在軟件開發(fā)領(lǐng)域扮演著重要角色。它以其高效、靈活和可移植性強的特點,成為了系統(tǒng)級編程的首選語言之一。
    的頭像 發(fā)表于 10-29 17:30 ?321次閱讀

    C++語言基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《C++語言基礎(chǔ)知識.pdf》資料免費下載
    發(fā)表于 07-19 10:58 ?7次下載

    按照這樣學(xué)習C語言,成為卷王不是夢!

    在計算機編程領(lǐng)域,C語言被譽為一種強大而靈活的編程語言,掌握好C語言不僅可以讓你輕松駕馭各種編程任務(wù),還能夠為你的職業(yè)生涯打下堅實的基礎(chǔ)。但
    的頭像 發(fā)表于 07-06 08:04 ?335次閱讀
    按照這樣學(xué)習<b class='flag-5'>C</b><b class='flag-5'>語言</b>,成為卷王不是夢!

    PLC編程語言C語言的區(qū)別

    在工業(yè)自動化和計算機編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。盡管兩者都是編程語言,但它們在多個方面存在顯著的區(qū)別。本文將從多個維度深入探討PLC編程
    的頭像 發(fā)表于 06-14 17:11 ?3043次閱讀

    fpga是用c語言還是verilog

    FPGA(現(xiàn)場可編程邏輯門陣列)開發(fā)主要使用的編程語言是硬件描述語言(HDL),其中Verilog是最常用的編程語言之一。而C語言通常用于傳
    的頭像 發(fā)表于 03-27 14:38 ?2079次閱讀

    C語言基礎(chǔ)-為什么要使用C?

    當今最流行的 Linux 操作系統(tǒng)和 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng)) MySQL 都是使用 C 語言編寫的。
    發(fā)表于 03-25 11:20 ?472次閱讀

    fpga語言是什么?fpga語言c語言的區(qū)別

    FPGA語言,即現(xiàn)場可編程門陣列編程語言,是用于描述FPGA(Field Programmable Gate Array)內(nèi)部硬件結(jié)構(gòu)和行為的特定語言。它允許設(shè)計師以硬件描述的方式定義FPGA的邏輯
    的頭像 發(fā)表于 03-15 14:50 ?971次閱讀

    嵌入式系統(tǒng)中C語言結(jié)構(gòu)體的基礎(chǔ)實現(xiàn)與應(yīng)用

    C語言中的數(shù)組只能允許程序員定義存儲相同類型數(shù)據(jù)。但是結(jié)構(gòu)是C語言編程中允許您存儲不同數(shù)據(jù)類型的數(shù)據(jù)。
    發(fā)表于 03-12 14:29 ?528次閱讀
    嵌入式系統(tǒng)中<b class='flag-5'>C</b><b class='flag-5'>語言</b>結(jié)構(gòu)體的基礎(chǔ)實現(xiàn)與應(yīng)用

    C語言#define的應(yīng)用

    C/C++ 編程語言中,當程序被編譯時,被發(fā)送到編譯器,編譯器將程序轉(zhuǎn)換為機器語言,然后完成編譯并執(zhí)行該程序。預(yù)處理器也稱為宏預(yù)處理器。
    發(fā)表于 03-06 11:29 ?393次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>#define的應(yīng)用

    plc編程語言c語言的聯(lián)系 c語言和PLC有什么區(qū)別

    PLC編程語言C語言的聯(lián)系 PLC(可編程邏輯控制器)是一種針對自動化控制系統(tǒng)的特殊計算機。PLC編程語言是為了控制和管理自動化生產(chǎn)過程中的各種設(shè)備而設(shè)計的。與之相比,
    的頭像 發(fā)表于 02-05 14:21 ?4270次閱讀

    c語言,c++,java,python區(qū)別

    C語言、C++、Java和Python是四種常見的編程語言,各有優(yōu)點和特點。 C語言
    的頭像 發(fā)表于 02-05 14:11 ?2500次閱讀

    vb語言c++語言的區(qū)別

    VB語言C++語言是兩種不同的編程語言,雖然它們都屬于高級編程語言,但在設(shè)計和用途上有很多區(qū)別。下面將詳細比較VB
    的頭像 發(fā)表于 02-01 10:20 ?2412次閱讀