2011年3月編程語言排行榜:用Ada向人類首位程序員致敬
原創(chuàng)【51CTO獨(dú)家特稿】3月9日,Tiobe發(fā)布了最新的編程語言排行榜。Java與C語言繼續(xù)占據(jù)頭兩位排名,C++還在繼續(xù)上升中,而PHP和VB則在下降。本期編程語言排行榜還是將會(huì)給大家介紹一門古典語言——Ada。
Ada語言在上世紀(jì)80年代還非?;馃?,曾經(jīng)攀升到編程語言排行榜的第二位,即使在2011年,也能排在20強(qiáng)的位置。這無疑證明了Ada的生命力,盡管它并沒有Java或者C語言的光芒。
推薦專題:51CTO編程語言排行榜專題
先說Ada下的Hallo World
- with Ada.Text_IO;
- procedure Hello is
- begin
- Ada.Text_IO.Put_Line("Hello, world!");
- end Hello;
Ada語言:軍方的寵兒
Ada是一種表現(xiàn)能力很強(qiáng)的通用程序設(shè)計(jì)語言,它是美國(guó)國(guó)防部為克服軟件開發(fā)危機(jī),耗費(fèi)巨資,歷時(shí)近20年研制成功的。它被譽(yù)為第四代計(jì)算機(jī)語言的成功代表。美國(guó)國(guó)防部之所以把這種語言取名為Ada,是為了紀(jì)念奧古斯特·艾達(dá)·洛夫萊斯伯爵夫人(Augusta Ada Lovlace,1815-1852),她是英格蘭詩人拜倫(Byron)勛爵的女兒,曾對(duì)現(xiàn)代計(jì)算機(jī)技術(shù)之父查爾斯·巴貝奇(Charles Babage,1791-1871)的筆記、手稿進(jìn)行了整理和修正。從某種意義上說,她是世界上第一位計(jì)算機(jī)程序員,而3月24日恰恰正是“Ada Lovelace Day”,這正是51CTO在3月編程榜里向各位介紹Ada的原因,請(qǐng)大家向這位偉大的程序員致敬。
現(xiàn)代計(jì)算機(jī)技術(shù)之父查爾斯·巴貝奇Charles Babage
與其他流行的程序設(shè)計(jì)語言不同,Ada語言不僅體現(xiàn)了許多現(xiàn)代軟件的開發(fā)原理,而且將這些原理付諸實(shí)現(xiàn)。因此,Ada語言的使用可大大改善軟件系統(tǒng)的清晰性、可靠性、有效性、可維護(hù)性。Ada是現(xiàn)有的語言中無與倫比的一種大型通用程序設(shè)計(jì)語言,它是現(xiàn)代計(jì)算機(jī)語言的成功代表,集中反映了程序語言研究的成果。Ada的出現(xiàn),標(biāo)志著軟件工程成功地進(jìn)入了國(guó)家和國(guó)際的規(guī)模。在一定意義上說,Ada還刺破了“馮·偌依曼思維模式” (Von Newman Mind-set) 的桎梏,連同Ada的支持環(huán)境(APSE)一起,形成了新一派的所謂Ada文化。它是迄今為止最復(fù)雜、最完備的軟件工具。Ada語言是美國(guó)國(guó)防部指定的唯一的一種可用于軍用系統(tǒng)開發(fā)的語言,我國(guó)軍方也將Ada作為軍內(nèi)開發(fā)標(biāo)準(zhǔn)(GJB 1383《程序設(shè)計(jì)語言Ada》)。
Ada特征談:嚴(yán)謹(jǐn)?shù)秒y以閱讀
一門好的編程語言肯定是一門嚴(yán)謹(jǐn)?shù)恼Z言,但它不一定是最方便的語言。Ada就是一個(gè)典型的例子。
Ada語言最早是針對(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架構(gòu)圖
Ada語言的重要特征就是其鍵入式風(fēng)格,模塊化設(shè)計(jì),編譯檢查,平行處理,異常處理及泛型編程。Ada在95年加入了對(duì)面向?qū)ο笤O(shè)計(jì)的支持,包括動(dòng)態(tài)分配等。
Ada的編譯檢查主要是針對(duì)沒有分配的內(nèi)存讀寫的保護(hù),堆棧溢出錯(cuò)誤,單個(gè)錯(cuò)誤空閑,隊(duì)列讀寫錯(cuò)誤以及其他可以避免的小問題。這些檢查可以在為增加效率的情況下被取消,但是在編譯的時(shí)候他們卻能帶來很高的效率。同樣它也包括對(duì)程序的嚴(yán)正的設(shè)置。因?yàn)檫@些原因,它被廣泛應(yīng)用于一些非常重要的系統(tǒng)中,例如航空電子學(xué),武器及航天飛行器的操作系統(tǒng)中。
同樣它支持很多的編譯時(shí)間檢查,這些檢查被用來避免一些錯(cuò)誤的發(fā)生。這種錯(cuò)誤往往是在其他語言中在運(yùn)行以前都不能被察覺到的,需要在源碼中加入特殊的檢查設(shè)置才能被發(fā)現(xiàn)。
Ada的動(dòng)態(tài)內(nèi)存管理非常安全和高規(guī)格,它類似于Java語言卻不同于C語言的。這種特殊功能并不需要特殊的運(yùn)行設(shè)置。盡管這種語言的語意結(jié)構(gòu)允許對(duì)于不能讀寫的目標(biāo)進(jìn)行自動(dòng)的碎片搜集,但是大多數(shù)運(yùn)行都不支持它。Ada卻支持有限形式基于區(qū)域的存儲(chǔ)管理。無效的讀寫常在運(yùn)行時(shí)候被檢查出來(除非這種檢測(cè)被人為關(guān)閉)并且有時(shí)候在編譯時(shí)候就被發(fā)現(xiàn)。
Ada語言的定義同國(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ù)問題,但是普遍情況是一本標(biāo)準(zhǔn)教科書卻可以在其他不同語言上使用。
Ada語言由嚴(yán)格的巴斯特范式定義,但是不適合一般人閱讀.它是第一種同時(shí)擁有IEC/ISO/美國(guó)軍用標(biāo)準(zhǔn)認(rèn)證的語言.其編譯器經(jīng)過嚴(yán)格的審查,以確保同樣的代碼在任一編譯器上產(chǎn)生同樣的可執(zhí)行效果.并且保證并行性在代碼級(jí)可以在無操作系統(tǒng)下同樣運(yùn)行。
Ada官方網(wǎng)站鏈接:http://www.adahome.com/
#p#
前10名編程語言趨勢(shì)走向
20到50名語言排行
Position | Programming Language | Ratings |
---|---|---|
21 | RPG (OS/400) | 0.570% |
22 | Visual Basic .NET | 0.563% |
23 | Transact-SQL | 0.550% |
24 | R | 0.489% |
25 | Groovy | 0.457% |
26 | SAS | 0.452% |
27 | MATLAB | 0.452% |
28 | ABAP | 0.425% |
29 | Scratch | 0.412% |
30 | PL/SQL | 0.408% |
31 | Haskell | 0.407% |
32 | Logo | 0.402% |
33 | D | 0.399% |
34 | Object Pascal | 0.361% |
35 | Fortran | 0.350% |
36 | Alice | 0.338% |
37 | Forth | 0.335% |
38 | COBOL | 0.326% |
39 | Erlang | 0.301% |
40 | Bash | 0.291% |
41 | ML | 0.289% |
42 | MAD | 0.274% |
43 | APL | 0.272% |
44 | Scala | 0.257% |
45 | F# | 0.247% |
46 | ActionScript | 0.236% |
47 | Smalltalk | 0.233% |
48 | C shell | 0.230% |
49 | CL (OS/400) | 0.226% |
50 | Prolog | 0.225% |
下面給出了編程語言類別的一年變化趨勢(shì)。
【編輯推薦】
- 51CTO編程語言排行榜
- 2011年2月編程語言排行榜:冰河時(shí)代的Fortran
- 2011年1月編程語言排行榜:Python稱霸2010
- 2010年12月編程語言排行榜:觸摸經(jīng)典語言化石之Lisp