WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專(zhuān)題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢(qián)
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專(zhuān)題
- 云計(jì)算
- 微博營(yíng)銷(xiāo)
- 虛擬主機(jī)管理系統(tǒng)
- 開(kāi)放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
Ada
Ada是一種表現(xiàn)能力很強(qiáng)的通用程序設(shè)計(jì)語(yǔ)言,它是美國(guó)國(guó)防部為克服軟件開(kāi)發(fā)危機(jī),耗費(fèi)巨資,歷時(shí)近20年研制成功的。它被譽(yù)為第四代計(jì)算機(jī)語(yǔ)言的成功代表。美國(guó)國(guó)防部之所以把這種語(yǔ)言取名為Ada,是為了紀(jì)念?yuàn)W古斯特·艾達(dá)·洛夫萊斯伯爵夫人(Augusta Ada Lovlace,1815-1852),她是英格蘭詩(shī)人拜倫(Byron)勛爵的女兒,曾對(duì)現(xiàn)代計(jì)算機(jī)技術(shù)之父查爾斯·巴貝奇(Charles Babage,1791-1871)的筆記、手稿進(jìn)行了整理和修正。從某種意義上說(shuō),她是世界上第一位計(jì)算機(jī)程序員。與其他流行的程序設(shè)計(jì)語(yǔ)言不同,Ada語(yǔ)言不僅體現(xiàn)了許多現(xiàn)代軟件的開(kāi)發(fā)原理,而且將這些原理付諸實(shí)現(xiàn)。因此,Ada語(yǔ)言的使用可大大改善軟件系統(tǒng)的清晰性、可靠性、有效性、可維護(hù)性。Ada是現(xiàn)有的語(yǔ)言中無(wú)與倫比的一種大型通用程序設(shè)計(jì)語(yǔ)言,它是現(xiàn)代計(jì)算機(jī)語(yǔ)言的成功代表,集中反映了程序語(yǔ)言研究的成果。Ada的出現(xiàn),標(biāo)志著軟件工程成功地進(jìn)入了國(guó)家和國(guó)際的規(guī)模。在一定意義上說(shuō),Ada還刺破了“馮·偌依曼思維模式” (Von Newman Mind-set) 的桎梏,連同Ada的支持環(huán)境(APSE)一起,形成了新一派的所謂Ada文化。它是迄今為止最復(fù)雜、最完備的軟件工具。Ada語(yǔ)言是美國(guó)國(guó)防部指定的唯一的一種可用于軍用系統(tǒng)開(kāi)發(fā)的語(yǔ)言,我國(guó)軍方也將Ada作為軍內(nèi)開(kāi)發(fā)標(biāo)準(zhǔn)(GJB 1383《程序設(shè)計(jì)語(yǔ)言Ada》)。
特征[ ]
Ada語(yǔ)言最早是針對(duì)嵌入式和實(shí)時(shí)系統(tǒng)設(shè)計(jì)的,并且在今天依然在這方面使用廣泛。Ada95版,是由INTERMETRICS公司的塔克。塔夫特于92到95年間設(shè)計(jì)的,當(dāng)時(shí)主要是希望改進(jìn)對(duì)于 系統(tǒng),數(shù)字,財(cái)務(wù)軟件編程的支持。
Ada語(yǔ)言的重要特征就是其鍵入式風(fēng)格,模塊化設(shè)計(jì),編譯檢查,平行處理,異常處理及泛型編程。Ada在95年加入了對(duì)面向?qū)ο笤O(shè)計(jì)的支持,包括動(dòng)態(tài)分配等。
Ada的編譯檢查主要是針對(duì)沒(méi)有分配的內(nèi)存讀寫(xiě)的保護(hù),堆棧溢出錯(cuò)誤,單個(gè)錯(cuò)誤空閑,隊(duì)列讀寫(xiě)錯(cuò)誤以及其他可以避免的小問(wèn)題。這些檢查可以在為增加效率的情況下被取消,但是在編譯的時(shí)候他們卻能帶來(lái)很高的效率。同樣它也包括對(duì)程序的嚴(yán)正的設(shè)置。因?yàn)檫@些原因,它被廣泛應(yīng)用于一些非常重要的系統(tǒng)中,例如航空電子學(xué),武器及航天飛行器的操作系統(tǒng)中。
同樣它支持很多的編譯時(shí)間檢查,這些檢查被用來(lái)避免一些錯(cuò)誤的發(fā)生。這種錯(cuò)誤往往是在其他語(yǔ)言中在運(yùn)行以前都不能被察覺(jué)到的,需要在源碼中加入特殊的檢查設(shè)置才能被發(fā)現(xiàn)。
Ada的動(dòng)態(tài)內(nèi)存管理非常安全和高規(guī)格,它類(lèi)似于JAVA語(yǔ)言卻不同于C語(yǔ)言的。這種特殊功能并不需要特殊的運(yùn)行設(shè)置。盡管這種語(yǔ)言的語(yǔ)意結(jié)構(gòu)允許對(duì)于不能讀寫(xiě)的目標(biāo)進(jìn)行自動(dòng)的碎片搜集,但是大多數(shù)運(yùn)行都不支持它。Ada卻支持有限形式基于區(qū)域的存儲(chǔ)管理。無(wú)效的讀寫(xiě)常在運(yùn)行時(shí)候被檢查出來(lái)(除非這種檢測(cè)被人為關(guān)閉)并且有時(shí)候在編譯時(shí)候就被發(fā)現(xiàn)。
Ada語(yǔ)言的定義同國(guó)際標(biāo)準(zhǔn)化組織(ISO)的標(biāo)準(zhǔn)有很大不同,因?yàn)樗且粋€(gè)自由內(nèi)容形式的。這種做法的后果是被廣大程序員只能從它的標(biāo)準(zhǔn)化文檔(普遍認(rèn)為是Ada的參考使用手冊(cè)(ARM))尋找細(xì)節(jié)性的技術(shù)問(wèn)題,但是普遍情況是一本標(biāo)準(zhǔn)教科書(shū)卻可以在其他不同語(yǔ)言上使用。
Ada語(yǔ)言由嚴(yán)格的巴斯特范式定義,但是不適合一般人閱讀.它是第一種同時(shí)擁有IEC/ISO/美國(guó)軍用標(biāo)準(zhǔn)認(rèn)證的語(yǔ)言.其編譯器經(jīng)過(guò)嚴(yán)格的審查,以確保同樣的代碼在任一編譯器上產(chǎn)生同樣的可執(zhí)行效果.并且保證并行性在代碼級(jí)可以在無(wú)操作系統(tǒng)下同樣運(yùn)行。
Ada最初設(shè)計(jì)時(shí)關(guān)注于3個(gè)最重要的問(wèn)題:程序的穩(wěn)定性和可維護(hù)性,程序設(shè)計(jì)和人的行為接近,并且高效。這份語(yǔ)言的修訂版是為了提供更大的靈活性和擴(kuò)展性,存儲(chǔ)管理的額外控制和同步,以及標(biāo)準(zhǔn)化的程序包以支持重要的應(yīng)用程序領(lǐng)域,同時(shí)保留原來(lái)的重點(diǎn)。對(duì)于程序設(shè)計(jì)語(yǔ)言促進(jìn)可靠性和簡(jiǎn)化維護(hù)難度的需求已被確立。因此程序可讀性的重要性高于輕松地寫(xiě)代碼。例如,語(yǔ)言規(guī)則要求程序變量應(yīng)當(dāng)明確聲明并指定它們的類(lèi)型。由于變量的數(shù)據(jù)類(lèi)型是不變的,編譯器可以確保對(duì)于變量的操作適用于該類(lèi)型的對(duì)象。另外,有錯(cuò)誤傾向的符號(hào)已經(jīng)避免,并且語(yǔ)言語(yǔ)法避免了編碼形式的使用,使更傾向于英語(yǔ)的結(jié)構(gòu)。最后,Ada 語(yǔ)言提供了程序單元單獨(dú)編譯的功能,使程序開(kāi)發(fā)和維護(hù)簡(jiǎn)便,同樣也提供了在一個(gè)單元內(nèi)多個(gè)單元之間的檢測(cè)。考慮人類(lèi)程序員的問(wèn)題也在設(shè)計(jì)時(shí)被強(qiáng)調(diào)??偠灾?,在繼續(xù)避免過(guò)多復(fù)雜句型的缺陷的同時(shí),嘗試以一致系統(tǒng)的方式保持相對(duì)較少的底層概念。
Ada 語(yǔ)言最初設(shè)計(jì)是為了構(gòu)建長(zhǎng)周期的、高度可靠的軟件系統(tǒng)。它提供了一系列功能來(lái)定義相關(guān)的數(shù)據(jù)類(lèi)型(type)、對(duì)象(object)和操作(operation)的程序包(package)。程序包可以被參數(shù)化,數(shù)據(jù)類(lèi)型可以被擴(kuò)展以支持可重用庫(kù)的構(gòu)建。操作既可以使用方便的順序控制結(jié)構(gòu),通過(guò)子程序(subprogram)來(lái)實(shí)現(xiàn),也可以通過(guò)包含并發(fā)線(xiàn)程同步控制的入口(entry)來(lái)實(shí)現(xiàn)。Ada 也支持單獨(dú)編譯(separate compilation),在物理層上支持模塊性。
Ada 包含了很復(fù)雜的功能以支持實(shí)時(shí)(real-time),并發(fā)程序設(shè)計(jì)(concurrent programming)。錯(cuò)誤可以作為異常(exception)來(lái)標(biāo)示,并可以被明確地處理。Ada 也覆蓋了系統(tǒng)編程(system programming);這需要對(duì)數(shù)據(jù)表示和系統(tǒng)特性訪(fǎng)問(wèn)的精確控制。最后,提供了預(yù)定義的標(biāo)準(zhǔn)程序包,包括輸入輸出、字符串處理、數(shù)值計(jì)算的基本函數(shù)和隨機(jī)數(shù)生成。 Ada的風(fēng)格在Pascal語(yǔ)言中得以延續(xù)。
簡(jiǎn)單程序[ ]
一個(gè)Ada語(yǔ)言編寫(xiě)的Hello world程序: with Ada.Text_IO; procedure Hello is begin Ada.Text_IO.Put_Line("Hello, world!"); end Hello; 在Ada.Text_IO.Put_Line處有一些快捷圖標(biāo),不需要很多的文字輸入,但是對(duì)于這里的理解來(lái)講并沒(méi)有多大意義。
相關(guān)條目[ ]