Ada
Ada,是一種程式設計語言。伊源佇美國國防部佇二十世紀七十年代的計劃,旨咧整合美軍系統程式設計語言,毋過當當時美軍系統執行上百種無仝的程式設計語言,並且提懸除錯能力佮效率,由 Pascal 佮其他的語言擴充而成,近來自然語言佮數學表達式,用「Ada」號名以紀念愛達 ・ 勒芙 lè-sìr(Ada Lovelace)。
重要特徵
Ada 語言上早針對射入式佮即時運算設計,到今猶閣佇遮的領域廣泛使用。Ada 九十五版,是由 INTERMETRICS 公司的塔克 ・ 塔夫特於一千九百九十二到一九九五年間設計的,旨咧改進對系統、數字、財務軟體編程的支援。
Ada 語言的重要特徵就是其他的六千入式風格,模組化編程,編譯檢查,平行處理,例外處理佮泛型編程。Ada 佇一九九五年加入了對物件導向設計的支援,包括動態分配等等。
Ada 的編譯檢查主要是針對無分配的記持體讀寫的寶護,疊起來的錯誤,單一个錯誤彼空閒,佇列讀寫毋著誤以及其他會使避免的小問題。遮的檢查會當為增加效率的情況下被取消,猶毋過佇咧編譯的時陣𪜶煞會當帶來真懸的效率。仝款伊嘛包括對程式的嚴正的設定。因為遮的原因咧,伊予人廣泛應用佇一寡足重要的系統中,比如講航空電子學,武器佮航天飛行器的作業系統當中。
仝款伊支援真濟的編譯時間檢查,遮的檢查予人用來避免一寡錯誤的發生。這款錯誤往往是佇咧其他的語言中執行進前歹予人知覺著的,愛佇原始碼中加入特殊的檢查設定才會當予人發現。
Ada 的動態記持體管理非常安全佮高規格,伊類似 JAVA 語言煞無仝 C 語言的。這種特殊功能並無需要特殊的執行設定。就算講這款語言的語意結構允准對袂使讀寫的目標來進行自動的碎片搜集,但是大多數執行的時攏無支援該特性。Ada 煞支援有限形式無保留區域的儲存管理。無效的讀寫定咧執行的時陣去予檢查出來(除非這款的檢測予人為關起來)並且有當時仔咧編譯的時陣就予人發現講。
Ada 語言的定義仝國際標準化組織(ISO)的標準有真大無仝,因為伊是一个自由內容形式的。這種做法的後果是予廣大程式設計師干焦會當對伊的標準化文件(普遍認為講是 Ada 的參考使用手冊(ARM)) 揣細節性的技術問題,但是普遍的情況是一本標準教科書煞會使佇其他無仝款的語言使用。
Ada 語言由嚴格的巴斯特範式定義,無適合一般人看冊。伊是頭一種同時擁有 IEC / ISO / 美國軍用標準認證的語言,其編譯器經過嚴格的審查,以確保仝款的代碼佇任一編譯器上產生仝款的可執行效果,並且保證並列性佇咧代碼級會當佇咧無作業系統之下仝款來執行。
歷史
佇一九七空年代,美國國防部(DoD)所屬的躉入式電腦系統專案當中使用的程式語言數量逐工增加,其中的足濟語言真十分陳舊或者是依賴佇硬體,而且無一个支援安全的模組化編程,對這來 DoD 感覺十分的煩惱。是因為這个原因,佇一九七五年成立了高階語言工作群組(HOLWG), 伊的使命是就是走揣或者創造某一種適合國防部需要的程式語言,通好減少現有程式語言數量。該小組最終的工課成果就是 Ada 語言。由此,類似專案中使用的高階程式語言的數量大大減少了,一九八三年的四百五十種程式語言,到一九九六年只賰三十七種。
工作群組開發出了語言要求文件—文件。誠濟現存的語言攏予詳細做檢查,但是一九七七年這个團隊講號做無任何的這个現存語言符合𪜶的條件。
Ada 語言的範例程式
Hello , World ! 程式:
佇咧 Ada . Text \ _ IO . Put \ _ Line 處有一寡捷徑,無需要足濟的文字輸入,但是對遮的理解來講並無偌大意義。細節性的問題請參考 Ada Programming / Basic。
去判一字串敢是回文的函式(遞迴):
定義一个函式用來判一字串敢是回文:
關於亞利安五號運載火箭的失敗
一个普遍的關於歐洲太空總署亞利安五號運載火箭失敗的講法是因為 Ada 語言咧編譯過程的檢查失敗致使的。共大的浮點數轉換做整數是一款捷看的程式錯誤。一九九六年六月初四,對亞利安五號運載火箭的初次航行來講,按呢一个錯誤產生災難性的後果。發射了後干焦三十七秒,火箭偏離伊的飛行路徑,解體並爆炸矣。火箭頂載有價值五億美金的通信衛星。六億美金燒了了。後來的調查顯示,控制慣性導航系統的電腦向控制 ia̋n-jín 噴喙的電腦傳送一个無效資料。失事調查報告指出,火箭爆炸是因為:
> > During execution of a data conversion from 六十四-bit floating point to 十六-bit signed integer value , the floating point number which was converted had a value greater than what could be represented by a 十六-bit signed integer . This resulted in an Operand Error . > >
伊無傳送飛行控制資訊,是送出一个診斷位元型,表明佇將一个六十四位元浮點數轉換做十六位元有符號啊整數的時陣,產生矣溢个。溢位值測量的是火箭的水平速率,這比早前的亞利安四型運載火箭所會達到的懸出五倍。佇設計亞利安四型運載火箭的軟體時,𪜶細膩的分析了數字值,並且確定講水平速率絕對袂超出一个十六位元的數。不幸的是,𪜶佇亞利安五號運載火箭的系統中簡單地重新來使用這一部份,若無檢查伊所基於的假使講。Ada 代碼如下:
參見
參考書目
國際標準
- ISO / IEC 八千六百五十二:Information technology—Programming languages—Ada
- ISO / IEC 一爿五千兩百九十一:Information technology—Programming languages—Ada Semantic Interface Specification(ASIS)
- ISO / IEC 一孵八千空九:Information technology—Programming languages—Ada : Conformity assessment of a language processor(ACATS)
- IEEE Standard 一千空三孵五 b 被一千九百九十六,the POSIX Ada binding
- Ada Language Mapping Specification,the CORBA IDL to Ada mapping
冊目
- Jan Skansholm:_ Ada 九十五 From the Beginning _ , Addison-Wesley , ISBN 空九二百空一四四抹空三百七十六五
- John Barnes:_ Programming in Ada plus Language Reference Manual _ , Addison-Wesley , ISBN 空抹二百空一四五五鋪六千五百三十九九九陽空
- John Barnes:_ Programming in Ada 九十五 _ , Addison-Wesley , ISBN 空九二百空一孵三鋪四千二百九十三鋪六
- John Barnes:_ High Integrity Ada : The SPARK Approach _ , Addison-Wesley , ISBN 空九二百空一四一五七千五百一十七刣七
- John Barnes:_ High Integrity Software : The SPARK Approach to Safety and Security _ , Addison-Wesley , ISBN 空九三百二十一孵一鼻三千六百一十六鼻空
- Dean W . Gonzalez:_ Ada Programmer's Handbook _ , Benjamin-Cummings Publishing Company , ISBN 空九八千空五十三五二千五百二十九九九九分八
- M . Ben-Ari:_ Ada for Software Engineers _ , John Wiley & Sons , ISBN 空抹四百七十一鋪九九七千九百一十二鋪空
- Norman Cohen:_ Ada as a Second Language _ , McGraw-Hill Science / Engineering / Math , ISBN 空空七抹一一千六百空七堵五
- Alan Burns,Andy Wellings:_ Real-Time Systems and Programming Languages . Ada 九十五 , Real-Time Java and Real-Time POSIX . _ , Addison-Wesley , ISBN 空九二百空一四七五二千九百八十八分一
- Alan Burns,Andy Wellings:_ Concurrency in Ada _ , Cambridge University Press , ISBN 空抹五百二十一鋪六五十二千九百十一-X
- Colin Atkinson:_ Object-Oriented Reuse , Concurrency and Distribution : An Ada-Based Approach _ , Addison-Wesley , ISBN 空抹二百空一四五五鋪六千五百二十七陽七
- Grady Booch,Doug Bryan:_ Software Engineering with Ada _ , Addison-Wesley , ISBN 空空八千空五十三五六百空八堵空
- Daniel Stubbs,Neil W . Webre:_ Data Structures with Abstract Data Types and Ada _ , Brooks Cole , ISBN 空抹五百三十四抹一鋪四千四百四十八追九
- Pascal Ledru:_ Distributed Programming in Ada with Protected Objects _ , Dissertation . com , ISBN 一孵五鋪八千一百十二孵三十四孵六
- Fintan Culwin:_ Ada , a Developmental Approach _ , Prentice Hall , ISBN 空九十三五二十六五四千六百八十知三
- John English,Fintan Culwin:_ Ada 九十五 the Craft of Object Oriented Programming _ , Prentice Hall , ISBN 空九十三五二十三五空三百五十八七
- David A . Wheeler:_ Ada 九十五 _ , Springer-Verlag , ISBN 空抹三百八十七抹九九四千八百空一鋪五
- David R . Musser,Alexander Stepanov:_ The Ada Generic Library : Linear List Processing Packages _ , Springer-Verlag , ISBN 空九三百八十七石九九五七千一百三十三抹五
- Michael B . Feldman:_ Software Construction and Data Structures with Ada 九十五 _ , Addison-Wesley , ISBN 空九二百空一四八五八千七百九十五五五九九
- Simon Johnston:_ Ada 九十五 for C and C + + Programmers _ , Addison-Wesley , ISBN 空抹二百空一四四抹空三百六十三抹三
- Michael B . Feldman,Elliot B . Koffman:_ Ada 九十五 _ , Addison-Wesley , ISBN 空抹二百空一四三五六千一百二十三-X
- Nell Dale,Chip Weems,John McCormick:_ Programming and Problem Solving with Ada 九十五 _ , Jones & Bartlett Publishers , ISBN 空九七千六百三十七五二百九十三鋪五
- Nell Dale,Susan Lilly,John McCormick:_ Ada Plus Data Structures : An Object-Based Approach _ , Jones & Bartlett Publishers , ISBN 空知六百六十九九九四四一千六百七十六刣二
- Bruce C . Krell:_ Developing With Ada : Life-Cycle Methods _ , Bantam Dell Pub Group , ISBN 空抹五百五十三五五十九千一百空二岫六
- Judy Bishop:_ Distributed Ada : Developments and Experiences _ , Cambridge University Press , ISBN 空抹五百二十一孵三鋪九千兩百五十一孵九
- Bo Sanden:_ Software Systems Construction With Examples in Ada _ , Prentice Hall , ISBN 空九十三五五八百三十四-X
- Bruce Hillam:_ Introduction to Abstract Data Types Using Ada _ , Prentice Hall , ISBN 空抹十三五四四五千九百四十九石六
- David Rudd:_ Introduction to Software Design and Development With Ada _ , Brooks Cole , ISBN 空九三百一十四撨二千八百二十九九嬸三
- Ian C . Pyle:_ Developing Safety Systems : A Guide Using Ada _ , Prentice Hall , ISBN 空九十三五二十八分空四千兩百九十八分三
- Louis Baker:_ Artificial Intelligence With Ada _ , McGraw-Hill , ISBN 空抹七孵三千三百五十鋪一
- Alan Burns,Andy Wellings:_ HRT-HOOD : A Structured Design Method for Hard Real-Time Ada Systems _ , North-Holland , ISBN 空抹四百四十四抹八鋪兩千一百六十四抹三
- Walter Savitch , Charles Peterson:_ Ada : An Introduction to the Art and Science of Programming _ , Benjamin-Cummings Publishing Company , ISBN 空九八千空五十三五七千空七十五六
- Mark Allen Weiss:_ Data Structures and Algorithm Analysis in Ada _ , Benjamin-Cummings Publishing Company , ISBN 空九八千空五十三五九千空五十五五五
Ada 彼百科
總體資訊
- Ada @ Krischik
輔助工具冊
- Ada Programming
- Programación en Ada
- Programmation Ada
工程
- AdaCL
- wikibook-ada
- ASIS
- GLADE
- Florist
參考文獻
外部連結
- Ada World
- AdaPower
- The Web Site for Ada
- ACM SIGAda
- Ada-Europe Organization
- Ada Information Clearinghouse
- ISO Home of Ada Standards
- Ada 九十五 Books Available Online
- Ada Rapporteur Group ( evolution of standard )
- Ada Answers-Building better software with Ada
- Ada Academic Initiative
- " Libre " Ada Software
- GNU Ada Homepage
- GNAVI Ada Visual RAD
- Citations from CiteSeer
- GNAT
- AdaGIDE , the Ada GNAT Integrated Development Environment for Windows
- Forum
- Ada Tutorial
- Projects Using Ada
- A # : Ada on . NET
- Conference announcements for the international Ada community