額外控製和同步,以及標準化的程序包以支持重要的應用程序領域,同時保留原來的重點。對於程序設計語言促進可靠性和簡化維護難度的需求已被確立。因此程序可讀性的重要性高於輕鬆地寫代碼。例如,語言規則要求程序變量應當明確聲明並指定它們的類型。由於變量的數據類型是不變的,編譯器可以確保對於變量的操作適用於該類型的對象。另外,有錯誤傾向的符號已經避免,並且語言語法避免了編碼形式的使用,使更傾向於英語的結構。最後,Ada語言提供了程序單元單獨編譯的功能,使程序開發和維護簡便,同樣也提供了在一個單元內多個單元之間的檢測。考慮人類程序員的問題也在設計時被強調。總而言之,在繼續避免過多複雜句型的缺陷的同時,嘗試以一致係統的方式保持相對較少的底層概念。
Ada語言最初設計是為了構建長周期的、高度可靠的軟件係統。它提供了一係列功能來定義相關的數據類型(type)、對象(object)和操作(operation)的程序包(package)。程序包可以被參數化,數據類型可以被擴展以支持可重用庫的構建。操作既可以使用方便的順序控製結構,通過子程序(subprogram)來實現,也可以通過包含並發線程同步控製的入口(entry)來實現。
Ada也支持單獨編譯(separatecompilation),在物理層上支持模塊性。Ada包含了很複雜的功能以支持實時(real-time),並發程序設計(concurrentprogramming)。錯誤可以作為異常(exception)來標示,並可以被明確地處理。
Ada也覆蓋了係統編程(systemprogramming);這需要對數據表示和係統特性訪問的精確控製。最後,提供了預定義的標準程序包,包括輸入輸出、字符串處理、數值計算的基本函數和隨機數生成來。
特點
看本書最新章節,請到oop.tw
易讀性
專業人員往往要讀很多程序,因此要避免像APL那種以過於簡單的符號編程的語言,雖然它們的編程速度快,但基本上是不可讀的。因此目前有種說法是:讀一個程序比寫類似的程序還要費時,這也是有一定道理的;特別是C\/C++的風格比較鬆散,很多語法都在濫用,使程序可讀性相當低,由於Ada的語法接近人的語言,即使是初學者,也不會感到很難讀懂。
強類型---保證了每個對象有明確定義的值域,並防止了不同概念的邏輯混淆。許多錯誤可以被編譯器發現,而對於其它語言來說,則可能導致一個不正確的程序。
異常處理
實際中,一個程序不可能保證它的正確性;因此,通過異常機製及分塊結構,將錯誤發生的影響控製在某一特定領域。
抽象數據類型
將數據描述的細節同基於該類型數據的操作相分離,以提高可移植性和可靠性。
多任務---使程序變成一係類的並發活動,而不是單一的順序活動;這在很多領域,特別是對於服務器程序來說有重要意義,這比調用操作係統提供的功能更有易可移植性和可靠性。
類屬單元
很多情況下,程序的某邏輯部份與運行時值的類型無關。因此,需要提供一種機製,從一個樣板中產生多個相應的程序段,以提高代碼的可重用性。
大型編譯---封裝機製,單獨編譯及程序包的分層機製等對於編寫大規模的程序來說是必不可少的。
Ada語言的\"HHello,world!\"示例程序
一個Ada語言編寫的\"你好世界\"Helloworldprogram程序:
withAda.Text_IO;
nigebsiolleHerudecorp
;)"\!dlrow,olleH"\(eniL_tuP.OI_txeT.adA
;olleHdne
。義意大多有沒並講來解理的裡這於對是但,入輸字文的多很要需不,標圖捷快些一有處eniL_tuP.OI_txeT.adA在
。cisaB/\gnimmargorPadA考參請題問的性節細
敗失的號五納亞利阿於關
:為因是炸爆箭火,出指告報查調事失。據數效無個一了送發機算計的嘴噴擎引製控向機算計的統係航導性慣製控,示顯查調的來後。炬一之付元美億6。星衛信通的元美億5值價有載上箭火。了炸爆並體解,徑路行飛的它離偏箭火,秒73僅僅後射發。果後的性難災了生產誤錯個一樣這,說來行航次初的箭火5enairA於對,日4月6年6991。源來誤錯序程的見常種一是數整成換轉數點浮的大將。的致導敗失查檢的程過譯編在言語adA為因是法說的敗失箭火號五納亞利阿局天航洲歐於關的遍普個一
.rorrEdnarepOnanidetlusersihT.regetnidengistib-61aybdetneserperebdluoctahwnahtretaergeulavadahdetrevnocsawhcihwrebmuntniopgnitaolfeht,eulavregetnidengistib-61ottniopgnitaolftib-46morfnoisrevnocatadafonoitucexegniruD
:下如碼代adA。設假的於基所它查檢有沒而,分部一這了用使新重地單簡中統係的箭火5納亞利阿在們他,是的幸不。數的位61個一出超會不絕率速平水定確且並,值字數了析分地心小們他,時件軟的箭火4納亞利阿計設在。倍5了出高的到達能所箭火4enairA的先早比這,率速平水的箭火是的量測值出溢。出溢了生產,時數整號符有位61成換轉數點浮位46個一將在明表,式模位斷診個一了出送是而,息信製控行飛送發有沒它
rev;)rosnes_colev_latnoziroh(teg_rosnes;)rosnes_colev_lacitrev(teg_rosnesnigeb