History of program (language).
生活随笔
收集整理的這篇文章主要介紹了
History of program (language).
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 編程語言的發展歷程及未來趨勢
1.1 編程語言的發展
· 1946?Plankalkul?
? ? Konrad?Zuse,一位德國工程師,他躲藏在巴伐利亞附近的阿爾卑斯山上時,獨立開發了Plankalkul。他把該項成果應用在其它的事物中,比如國際象棋。?
?
· 1949 Short Code
? ? 第一種真正在電子設備上使用的計算機語言,盡管它是一個純手工編譯的語言。
?
· 1951?Grace?Hopper?
? ? Grace?Hopper為Remington?Rand工作,是在第一個著名的編譯器——A-o上開始設計工作。當Rand在1957年發布這個詞語時,它被稱為MATH-MATIC
?
· 1952 AUTOCODE
? ? Alick?E.?Glennie?,他利用自己在曼徹斯特大學的課余時間,發明了一個名為AUTOCODE的編程系統,一個未能成型的編譯器。? · 1954 Fortran? ? FORTRAN(FORmula TRANslator的縮寫)意為“公式翻譯器”,是世界上最早出現的計算機高級程序設計語言,廣泛應用于科學和工程計算領域。FORTRAN語言以其 ? 特有的功能在數值、科學和工程計算領域發揮著重要作用。
?
· 1958?LISP? ? LISP語言(全名LISt?Processor,即鏈表處理語言)由約翰·麥卡錫在1960年左右創造的一種基于λ演算的函數式編程語言。
· 1959?Cobol
? ? COBOL(Common?Business?Oriented?Language)是數據處理領域最為廣泛的程序設計語言,是第一個廣泛使用的高級編程語言。主要應用于數值計算并不復 ? 雜,但數據處理信息量卻很大的商業領域。
· 1962?Simula
? ? Simula?67被認為是最早的面向對象程序設計語言,它引入了所有后來面向對象程序設計語言所遵循的基礎概念:對象、類、繼承。
· 1964?Basic
? ? BASIC(Beginners’?All-purpose?Symbolic?Instruction?Code)的意思就是“初學者的全方位符號指令代碼”,是一種設計給初學者使用的程序設計語 ? ? 言。BASIC是一種解釋語言,在完成編寫后不須經過編譯及連結即可執行,但如果要單獨執行仍然需要編譯成可執行文件。
· 1968?Pascal
? ? Pascal語言語法嚴謹,層次分明,程序易寫,具有很強的
? 可讀性,是第一個結構化的編程語言。Pascal的取名是為了紀念十七世紀法國著名哲學家和數學家Blaise?Pascal,它由瑞士Niklaus?Wirth教授于六十年代末設計 ? 并創立。
· 1969?C
? ? C語言既具有高級語言的特點,又具有匯編語言的特點,由美國貝爾研究所的D.M.Ritchie于1972年推出。1978后,C語言已先后被移植到大、中、小及微型機上。 · 1975 SQL
? ? SQL(Structured?Query?Language,結構化查詢語言)是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。
· 1983 C++
? ? C++是一種靜態數據類型檢查的、支持多重編程范式的通用程序設計語言。它支持過程化程序設計、數據抽象、面向對象程序設計、泛型程序設計等多種程序設 ? 計風格。
· 1987 Perl
? ? Perl象C一樣強大,象awk、sed等腳本描述語言一樣方便。
? ? Perl借取了C、sed、awk、shell?scripting以及很多其他程序語言的特性。其中最重要的特性是它內部集成了正則表達式的功能,以及巨大的第三方代碼庫 ? ? CPAN。 ? ? Perl最初的設計者是拉里·沃爾(Larry?Wall),發表于1987年12月18日。
· 1991 ?Python
? ? Python是一種面向對象、直譯式計算機程序設計語言,由Guido?van?Rossum于1989年底發明,第一個公開發行版發行于1991年。Python是一種代表簡單主義思 ? 想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠專注于解決問題而不是去搞明白語言本身。
· 1995 ?Java ? ? Java是一種簡單的,面向對象的,分布式的,解釋的,健壯的,安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。
? 是由Sun Microsystems公司于1995年5月推出的Java程序設計語言和Java平臺(即JavaSE,?JavaEE,?JavaME)的總稱。在Java?出現以前。Internet上的信息內 ? 容都是一些乏味死板的HTML文檔。
? ? 這對于那些迷戀于WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEB中看到一些交互式的內容,開發人員也極希望能夠在WEB上創建一類無需考慮軟硬件平 ? 臺就可以執行的應用程序,當然這些程序還要有極大的安全保障。對于用戶的這種要求,傳統的編程語言顯得無能為力,而SUN的工程師敏銳地察覺到了這一點,從1994 ? 年起,他們開始將OAK技術應用于WEB上,并且開發出了HotJava的第一個版本。
· 1995 JavaScript
? ? JavaScript是一種能讓你的網頁更加生動活潑的程式語言,也是目前網頁中設計中最容易學又最方便的語言。 · 2001?C#
? ? C#(C?Sharp)是微軟為.NET框架量身訂做的程序語言,C#擁有C/C++的強大功能以及Visual?Basic簡易使用的特性,是第一個組件導向的程序語言,與C++和Java ? 同樣是面向對象程序設計語言。
· 2002?.Net
? ? .NET?是?Microsoft?XML?Web服務平臺。XML?Web服務允許應用程序通過Internet進行通訊和共享數據,而不管所采用的是哪種操作系統、設備或編程語 ? 言。
· 2005?Ruby?On?Rails
? ? Ruby?on?Rails是一個可以使你開發、部署、維護web應用程序變得簡單的框架,Ruby以7月的誕生石ruby(紅寶石)命名。
· 2009?Node.JS
? ? Node是一個服務器端?JavaScript?解釋器,它改變了服務器應該如何工作的概念。它的目標是幫助程序員構建高度可伸縮的應用程序,編寫能夠處理數萬條同 ? 時連接到一臺物理機的連接代碼。當1995年SUN推出Java語言之后,全世界的目光都被這個神奇的語言所吸引。
1.2 編程語言的發展趨勢
?
“首先,編程語言的發展非常緩慢。期間當然出現了一些東西,例如面向對象等等,但是遠沒有好上1000倍。另一方面,你可能會想,那么這些努力都到哪里去了呢?事實上這些努力沒有體現在編程語言上,而是出現在框架及工具等方面了。如果你關注如今我們使用的框架,它們的體積的確有1000倍的增長。與此類似,如果你觀察現在的IDE,我們現在已經有了無數強大的功能,例如語法提示,重構,調試器,探測器等等,這方面的新東西有很多。與此相比,編程語言的改進的確很不明顯?!?/span>? ?幾十年來,硬件性能按成千上萬倍的規模增長,軟件工具與框架也有數倍乃至十數的增長,強調這一點,我們不難識別網上的編程語言之爭,有些確屬“愚忠”之舉,如果我們把編程語言自身與它所依賴(或由它拓展的)運行環境區分開來,什么都是浮云,剩下的其實主要是平臺路線之爭,都與具體應用相關,大家不甚著調的鬧個熱火朝天。當然,語言之間區別還是存在的,像C語言面向過程,C++面向對象,面向對象自然比面向過程更加人性,但這是顯而易見的,無關語言優劣。
? ?原本的編程語言分類方式也要有所改變了。以前我們經常說面向對象語言,動態語言或是函數式語言。但是我們現在發現,這些邊界變得越來越模糊,經常會互相學習各自的范式。靜態語言中出現了動態類型,動態語言里也出現了靜態能力,而如今所有主要的編程語言都受到函數式語言的影響。因此,一個越來越明顯的趨勢是多范式程序設計語言。
? ?C#、java、Go等語言的發展軌跡,我們明顯看到這種趨勢。CSE也是這種趨勢的典型代表,它分明是一種解釋性動態語言,但模擬C/C++命令式風格,把動態與靜態的特質融為一體。
? ?編程語言能做的事情有限,請勿期望過高。
? ?語言對并發支持沒大家想象得重要,并發編程更多是編程方式、思維模式變化,你要關注任務隔離性,更加精心的構造(或分離出)可并行的任務,提供普適的“純潔”函數(無副作用函數)。并發對編程語言的要求是:能標識這種純潔函數,提供foreach?多核分發機制,相比較而言,并行編程的思維方式變化才是根本性的。
了解編程語言的文化,利用好編程語言,在信息化的今天,我們會走的更遠。 來源:https://wenku.baidu.com/view/fb0754e904a1b0717ed5dd07.html?from=search
2 程序設計語言的發展
(一)“史前”時期世界上最早的"計算機"是我國的算盤,它被人們沿用至今。在17世紀,?Pascal等人發明了一種以傳動齒輪為基礎的“計算機”,它是以齒輪的轉動來控制計算的累加與進位。上個世紀初,英國劍橋大學著名數學家Charles?Babbage?于1822年與1848年分別設計出了兩種差分機,并于1833年制造出了有名的分析機。分析機在原理上與當今社會的計算機非常類似,它靠輸入讀進穿孔卡片來對輸入的數進行算術運算并給出結果。而且分析機可以隨意重復運算序列。這些是由Ada?Lovelace設計的運算序列可以解決許多問題。實際上,這種運算序列就是程序的雛形,而這種設計思想一直沿用至今。因而Ada?Lovelace被稱為是世界上第一個程序員(ADA語言就是為紀念她而命名)。1890年Hollerith研制出了一種同樣使用穿孔卡片的統計機被用作各種統計工作。此后,Hollerith成立了一個公司,這個公司便是如今的IBM。
紀30年代,英國數學家Turing提出了圖靈機的概念,它是由一個控制塊、一條存儲帶及一個讀寫頭構成的能執行左移、右移、在存儲帶中清除或寫入符號以及條件轉移等操作的機器。這種圖靈機的結構雖然較為簡單,但一切運算。隨后Church發明了一種以邏輯公式中約束變量的代入為主要運算的λ-演算,這種運算已經相當于一種語法與語義都非常簡單的程序設計語言,已被廣泛應用于程序理論以及程序設計語言理論與實踐的研究中。
(二)低級語言時期
1.第一代程序設計語言——機器語言
機器語言是二進制機器代碼編成的代碼序列,用來控制計算機執行規定的操作。其特點是能直接反映計算機的硬件結構,并且用機器語言編寫的程序不須作任何處理即可直接輸入計算機執行。由于機器語言與機器是一對一的,不同的機器有不同的指令系統,一種機器編寫的程序也無法直接搬到另一種機器上運行。一個問題如果需要在多種機器上求解,那么就必須對同一問題重復編寫多個應用程序。
2.第二代程序設計語言——匯編語言
由于機器語言程序的直觀性差,且與人們習慣使用的數學表達式及自然語言差距太大,導致機器語言難學、難記,編寫出來的程序難以調試、修改、移植和維護,極大限制了計算機的推廣作用。在這種情況下,用助記符號來表示機器指令的操作符與操作數(亦稱運算符與運算對象),用地址符號或標號代替指令或操作數的地址的匯編語言出現了。機器不能直接識別使用匯編語言編寫的程序,還要由匯編語言編譯器轉換成機器指令才能運行。
由于匯編語言與機器指令之間是一對一的關系,導致即使是編寫一個很簡單的程序也需要數百條指令。所以在匯編語言的基礎上,人們又研制出了只需一條
指令便可編譯成多條機器指令的宏匯編語言。而后又研制出了用于把多個獨立編寫的程序塊連接組裝成一個完整程序的連接程序。但匯編語言大多是針對特定的計算機或計算機系統設計的,所以它對機器的依賴性很強,同時還有很多的機器語言中存在的問題,匯編語言也沒有解決。
(三)高級語言階段
1954年,第一個完全脫離機器硬件的高級語言——FORTRAN語言問世了。高級語言在不同的平臺上會被編譯成不同的機器語言,使得程序設計語言不再過度的依賴某種特定的機器或者語言環境。1970年,一個標志著結構化程序設計時期開始的語言問世了,它就是Pascal語言。這個標致性的語言擁有嚴格的結構化形式、豐富且完備的數據類型,運行效率高、查錯能力強。同時Pascal語言還是一種自編譯語言。這個以法國數學家pascal命名的語言現已成為使用最廣泛的基于DOS的語言之一。
80年代初,在程序設計的思想上又發生了一次大的革命。這個時期研制出的語言多為面對對象的程序設計。之后,高級語言的目標則是面對應用的程序設計。它側重于描述程序“做什么”而不是“如何做”。
程序設計語言的發展是一個不斷演變的過程。從最開始的機器語言,到匯編語言,再到各種各樣的高級語言,最后到支持面對對象技術的面對對象的語言,甚至未來的面對應用的語言,它的演化過程的根本推動力就是抽象機制的更高要求,以及對程序設計思想的更好的支持。也就是說把機器能夠理解的語言提升到能夠很好的模擬人類思考問題的形式的過程。 來源:https://wenku.baidu.com/view/eb72ca12c5da50e2524d7f34.html?from=search
轉載于:https://www.cnblogs.com/DJOSIMON/p/9910361.html
總結
以上是生活随笔為你收集整理的History of program (language).的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript函数练习
- 下一篇: POJ1942-Paths on a G