Ada[電腦程式設計語言]

Ada[電腦程式設計語言]

Ada,是一種程式設計語言。源於美國軍方的一個計畫,旨在整合美軍事系統中運行著上百種不同的程式設計語言。其命名是為了紀念世界上第一位程式設計師Ada Lovelace。Ada不僅體現了許多現代軟體的開發原理,而且將這些原理付諸實現。同時,Ada語言的使用可大大改善軟體系統的清晰性、可靠性、有效性、可維護性。Ada是現有的語言中無與倫比的一種大型通用程式設計語言,它是現代計算機語言的成功代表,集中反映了程式語言研究的成果。Ada的出現,標誌著軟體工程成功地進入了國家和國際的規模。在一定意義上說,Ada打破了John von Neumann 思維模式的桎梏,連同Ada的支持環境(APSE)一起,形成了新一派的Ada文化。它是迄今為止最複雜、最完備的軟體工具。Ada曾是美國國防部指定唯一可用於軍用系統開發的語言 。

歷史背景

在20世紀70年代,美國國防部(DoD)關切到其嵌入式計算機系統項目中使用的眾多不同程式語言,其中許多是過時或依賴於硬體,而其中更沒有一個可以支援安全的模組化編程。於是在1975年成立高級語言工作組(HOLWG),意圖創造適合於美英兩國國防部需要的程式語言,以及精簡現有程式語言數量。該項目最終成就了Ada語言 。

發展歷程

1975年4月,HOLWG工作組成立後先制訂了Strawman語言要求系列文檔,以祈將國防部高級語言的需求規劃化。8月,更新為Woodenman版;
1976年1月更新為Tinman版,1977年1月更新為Ironman版,最終於1978年6月制訂出Steelman語言要求系列文檔。期間工作組對眾多程式語言正式進行檢討,結果發現現存語言中並無任何一種能符合文檔規格。工作組亦曾向四個分別以紅(Benjamin Brosgol等)、綠(Jean Ichbiah等)、藍(John Goodenough等)、黃(Jay Spitzen等)為名的承包商發出聘任,請求他們提供發展暫新程式設計語言的建議。
1978年4月,紅組與綠組的建議在大眾注目下均通過並進階。
1979年5月,Jean Ichbiah率領的綠組建議方案被釆納並被命名為Ada,紀念電腦程式創始人Ada Lovelace。
1979年6月,Ada語言的設計初步參考手冊由ACM在SIGPLAN Notices雜誌上發表。
1979年10月,Ada語言在波士頓舉行了公開測試和評估會議;因應會議後修正的需求說明Stoneman版文檔於1980年2月發布。
1980年7月,Ada的修訂版完成;軍事標準參考手冊於12月獲得批准,並被授予Ada Lovelace出生年份數字1815命名為MIL-STD 1815。
1982年7月,Ada另一個修訂版本的參考手冊發布。
1983年,美國國家標準學會(ANSI)對Ada語言進行了標準化,Gerhard Goos和Juris Hartmanis對此最終版本進行了說明。
1983年4月,紐約大學採用高格別SETL的Ada/Ed編譯器首次執行Ada語言驗證,隨後多間商業機構加入提供Ada編譯器和相關開發工具行列。
1991年開始,美國國防部要求所有軟體運用必用Ada語言。 1997年,此規則被撤回。

語言特點

Ada語言最早是針對嵌入式和實時系統設計的,並且在現今依然在這些方面廣泛使用。Ada95版,是由INTERMETRICS公司的塔克·塔夫特於1992到1995年間設計的,當時主要是希望改進對於系統、數字、財務軟體編程的支持。

Ada語言的重要特徵就是其嵌入式風格,模組化設計,編譯檢查,平行處理,異常處理及泛型編程。Ada在95年加入了對面向對象設計的支持,包括動態分配等。

Ada的編譯檢查主要是針對沒有分配的記憶體讀寫的保護,堆疊溢出錯誤,單個錯誤空閒,佇列讀寫錯誤以及其他可以避免的小問題。這些檢查可以在為增加效率的情況下被取消,但是在編譯的時候他們卻能帶來很高的效率。同樣它也包括對程式的嚴正的設定。因為這些原因,它被廣泛套用於一些非常重要的系統中,例如航空電子學,武器及航天飛行器的作業系統中。

同樣它支持很多的編譯時間檢查,這些檢查被用來避免一些錯誤的發生。這種錯誤往往是在其他語言中運行之前難以被察覺到的,需要在源碼中加入特殊的檢查設定才能被發現。

Ada的動態記憶體管理非常安全和高規格,它類似於JAVA語言卻不同於C語言的。這種特殊功能並不需要特殊的運行設定。儘管這種語言的語意結構允許對於不能讀寫的目標進行自動的碎片蒐集,但是大多數運行都不支持它。Ada卻支持有限形式基於區域的存儲管理。無效的讀寫常在運行時候被檢查出來(除非這種檢測被人為關閉)並且有時候在編譯時候就被發現。

Ada語言的定義同國際標準化組織(ISO)的標準有很大不同,因為他是一個自由內容形式的。這種做法的後果是被廣大程式設計師只能從它的標準化文檔(普遍認為是Ada的參考使用手冊(ARM))尋找細節性的技術問題,但是普遍情況是一本標準教科書卻可以在其他不同語言上使用。

Ada語言由嚴格的巴斯特範式定義,但是不適合一般人閱讀.它是第一種同時擁有IEC/ISO/美國軍用標準認證的語言.其編譯器經過嚴格的審查,以確保同樣的代碼在任一編譯器上產生同樣的可執行效果,並且保證並行性在代碼級可以在無作業系統下同樣運行 。

語言組成

數據類型

Ada對數據類型不作預設而由編寫者按其目標而界定,在編譯運行時便可靈活地決斷出該類型適當的體積,亦能易於辨識類型設定類型。
Ada支援以系列、模類型、聚合類型和列舉類型定義的數值類別,不允許非類型化指標。
數據類型可以副類型設定來細緻最佳化,可作limited、abstract、private等修整式運行。
Ada提供任務類及受保護類作特殊類型。

語句結構

Ada是一種結構化程式設計語言,在標準句語的構成上可掌控流程,支援所有標準化構造及深層早退指令。
程式包、過程和函式可以嵌套在任意深度並各自可作邏輯上的覆蓋,亦可各自為其常數、類型、變數等等作任何順序的定義聲明。

關鍵字

Ada為ALGOL算法語言類程式設計語言,具備系內關鍵字if、 then、 else、 while、 for等等。亦有轉化自Pascal的 type definitions、 records、 pointers、 enumerations等關鍵字的使用。
Ada關鍵字列:
abort, abs, abstract(Ada 95), accept, access, aliased (Ada 95),
all, and, array, at, begin, body, case, constant, declare, delay,
delta, digits, do, elsif, end, entry, exception, exit, for,
function, generic, goto, if, in, interface (Ada 2005), is, limited,
lop, mod, not, null, of, or, others, out, overriding (Ada 2005),
package, pragma, private, procedure, protected (Ada 95), raise,
range, record, rem, renames, requeue (Ada 95), reverse, return,
select, separate, some (Ada 2012), subtype, synchronized (Ada 2005),
tagged (Ada 95), task, terminate, then, type, until (Ada 95),
use, when, while, with, xor

語言執行

Ada語法,可透過執行Hello World程式來體現。此程式能輕易地以GCC轄下的GNAT編譯器執行。

以上資料來源

語言標準

Ada曾認證於以下標準:
ANSI MIL-STD 1815A- 1983年,程式語言Ada(Ada Programming language)
ISO 8652:1987- 1987年,程式語言Ada(Ada Programming language)已撤回
ISO/ANSI 8652:1995- 1995年,程式語言Ada(Ada Programming language),首個ISO標準面向對象語言認證。
ISO/IEC 8652:1995/Amd 1:2007- 2007年, 修正版程式語言Ada(Ada Programming language)已撤回
ISO/IEC 8652:2012 - 2012年,程式語言Ada(Ada Programming language)

語言套用

Ada語言出色的安全把關功能除了服務於歐美軍事體系,亦廣泛地被套用於商業火箭衛星、空中交通控制、鐵路運輸及銀行等領域 。

相關詞條

相關搜尋

熱門詞條

聯絡我們