歡迎光臨
每天分享高質量文章

波音 777 飛機由 Ada 語言驅動

(給演演算法愛好者加星標,修煉程式設計內功

原創整理:程式員的那些事(id:iProgrammer)

Working Together」是波音公司最初考慮生產 777 噴氣式飛機時選定的專案名稱。當時,波音公司打算讓參與該 777 飛機專案的 1 萬名員工接受公司內部部門和外部供應商之間的開放和非競爭性政策。

波音的管理層認為,從二級液壓制動到自動駕駛系統,「Working Together」是實現飛機系統各個部分盡可能高質量的方法。

Working Together」樣式面臨一個挑戰,波音公司堅持飛機軟體必須用 Ada 程式語言編寫。波音的工程航空電子軟體經理 Brian Pflug 說,大多數公司根本不喜歡標準語言的想法,然後極力反對 Ada 太不成熟。此外,有一個供應商(Sundstrand)在開發其專案的一部分時已經進行了 6 個月,並且用了另一種程式語言。

(波音公司的供應商之一)霍尼韋爾公司透過對 Ada 和 C 程式語言的優勢做了廣泛研究。研究得出結論,Ada 內建的安全特效能減少開發時間、降低費用,減少除錯的關註。所以當研究結果出來後,霍尼韋爾同意採用 Ada 的決定。

波音 777 主要電力系統的供應商 Sundstrand 同意了這種轉換。後來 Sundstrand 反饋,在換語言之後,開發工作繼續順利進行。Sundstrand 專案經理德 Dwayne Teske 在接受電話採訪時說,「我們不得不重新開始。但在那之後,專案進展非常順利,所以 Ada 有很多積極的方面。」

由於他們都參與了 777 飛機的 Ada 專案,飛機系統的其他部分的供應商(包括剎車控制系統供應商  Hydro-Aire)繼續也就都採用了 Ada 語言。

尋找工具

選定 Ada 語言後,波音的各個供應商的首要任務,就是為手頭的任務選擇合適的 Ada 編譯器。

霍尼韋爾公司(負責駕駛艙的飛行控制系統),從 DDC-I 公司購買了 Ada 編譯器系統,將其作為霍尼韋爾符號除錯器的前端原始碼。後來這 2 家公司合作一年半,針對 AMD 29050 微處理器,構建了 Ada 編譯器的最終除錯器和整個後端。

Hydro-Aire 公司(負責剎車控制系統),從 Alsys 公司購買了 Ada 軟體開發工具 AdaWorld 。每架波音飛機的剎車控制系統都有 2 個摩托羅拉 58333 微控制器。

Sundstrand 公司(負責電力系統)也是選擇了 Alsys 的  AdaWorld,然後選用了Intel 80186 微處理器。

波音 777 飛機子系統的程式碼量

Sundstrand 公司開發的電力系統,大約 8 萬行 Ada 程式碼,程式碼重用率在 10~15%

波音 777 的客艙管理系統,大約 7 萬行程式碼;

霍尼韋爾開發的飛機資訊管理系統(AIMS)大約有 61.3 萬行程式碼。他們在波音飛機專案上投用的程式員多達 550 名。

「程式員的那些事」暫時只找到波音 777 的 3 個子系統的程式碼量,至於飛機總程式碼量是多少,暫沒找到相應資料。

參考:維基百科、AdaIC

    贊(0)

    分享創造快樂