Ada - 維基百科,自由的百科全書 :
http://zh.wikipedia.org/zh-hant/Ada【
Ada,是一種程序設計語言。源於美國軍方的一個計劃,旨在整合美軍系統中運行着上百種不同的程序設計語言編寫的程序,命名是為了紀念愛達·勒芙蕾絲而使用Ada。
在70年代,美國國防部 因為它所屬項目的編程語言數量而倍受關注。這些語言中的很多都是完全獨立於硬件的,並且其中沒有一個是支持安全模塊編程的。1975年 高次階語言工作組 (HOLWG) 終於成立了。它的主要目標就是尋找或者創造一些適合國防部需要的語言來減少這種現存的編程語言數量。它帶來的結果就是Ada語言。因此,這些編程語言數量從1983 的450下降到了1996的37種。
工作組開發出了語言要求文檔—文檔。許多現存的語言都被仔細地檢查,但是1977年 這個團隊卻聲稱沒有任何現存語言符合他們的條件。
關於阿利亞納五號的失敗
一個普遍的關於歐洲空間局阿利亞納五號火箭失敗的說法是因為 Ada 語言在編譯過程的檢查失敗導致的。 將大的浮點數轉換成整數是一種常見的程序錯誤來源。1996年6月4日,對於Ariane 5火箭的初次航行來說,這樣一個錯誤產生了災難性的後果。發射後僅僅37秒,火箭偏離它的飛行路徑,解體並爆炸了。火箭上載有價值5億美元的通信衛星。6億美元付之一炬。後來的調查顯示,控制慣性導航系統的計算機向控制引擎噴嘴的計算機發送了一個無效數據。失事調查報告指出,火箭爆炸是因為:
During execution of a data conversion from 64-bit floating point to 16-bit signed integer value, the floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer. This resulted in an Operand Error.
它沒有發送飛行控制信息,而是送出了一個診斷位模式,表明在將一個64位浮點數轉換成16位有符號整數時,產生了溢出。 溢出值測量的是火箭的水平速率,這比早先的Ariane 4火箭所能達到的高出了5倍。在設計阿利亞納4火箭的軟件時,他們小心地分析了數字值,並且確定水平速率絕不會超出一個16位的數。不幸的是,他們在阿利亞納5火箭的系統中簡單地重新使用了這一部分,而沒有檢查它所基於的假設。Ada代碼如下:
begin
sensor_get(vertical_veloc_sensor);
sensor_get(horizontal_veloc_sensor);
vertical_veloc_bias := integer(vertical_veloc_sensor);
horizontal_veloc_bias := integer(horizontal_veloc_sensor);
...
exception
when numeric_error => calculate_vertical_veloc();
when others => use_irs1();
end;
】
即時Java在嵌入式系統的應用快速成長 :
http://www.eettaiwan.com/articleLogin.do?artId=8800378903&fromWhere=/ART_8800378903_676964_NT_6c977f72.HTM&catId=676964&newsType=NT&pageNo=null&encode=6c977f72