計算機語言的發展過程是什麼

  語言是人們描述現實世界,表達自己思想觀念的工具。而計算機語言是人與計算機交流的工具。一方面人類使用各種計算機語言將所關心的現實世界對映到計算機世界;另一方面,人類又可以通過計算機語言創造現實世界中並不存在的虛擬世界。下面是小編為大家整理的計算機語言的發展歷程,希望對您有所幫助!

  計算機語言的發展歷程

  1.計算機語言的歷史回顧

  早期程式設計師們使用機器語言來進行程式設計運算,直接對以數字表示的機器程式碼進行操作。後來為了便於閱讀,就將機器程式碼以英文字串來表示,於是出現了組合語言。

  1956年首先在IBM公司的計算機上實現的由美國的電腦科學家巴科斯設計FORTRAN語言,標誌著高階語言的到來。FORTRAN語言以它的簡潔、高效性,成為此後幾十年科學和工程計算的主流語言, 除了FORTRAN以外,還有ALGOL60等科學和工程計算語言。隨著計算機應用的深入,產生了使用計算機來進行商業管理的需求,於是COBOL這類商業和行政管理語言出現了,並一直流行至今。

  早期的這些計算機語言都是面向計算機專業人員,為了普及計算機語言,使計算機更為大眾化,出現了入門級的BASIC語言,至今BASIC語言仍然是絕大多數軟體開發人員接觸到的第一們計算機語言,同時也最流行的計算機語言。

  七十年代初,結構化程式設計的思想孵化出兩種結構化程式設計語言,一種是PASCAL語言,另一種是C語言。這兩種語言的語法結構基本上是等價的,它們都是通過函式和過程等語言特性來構成結構化程式設計的基礎。但是很主要的區別在於PASCAL語言強調的是語言的可讀性,因此PASCAL語言至今成為學習演算法和資料結構等軟體基礎知識的教學語言;而C語言強調的是語言的簡潔性以及高效性,因此C語言成為之後幾十年中主流的軟體開發語言,高效性使C語言的地位已相當於一種“高階組合語言”。

  雖然面向物件的思想可以追溯到六十年代,但是面向物件思想被普遍接受還是得益於面嚮物件語言的功勞。在眾多的面嚮物件語言當中,最為突出的就是C++語言。C++語言是在八十年代初由AT&T貝爾實驗室Bjarne Stroustrup在C語言的基礎上設計並實現的。C++語言繼承了C語言的所有優點,如簡潔性和高效性,同時引入了面向物件的思想,如類、封裝、繼承、多型等。C++語言的這些特性使得C程式設計師在學習面向物件思想的同時不必放棄已有的知識和經驗,原有的軟體積累同樣可以利用,同時面向物件的設計開發方法使得軟體的分析、設計、構造更為完美,因此,C++藉助C語言的龐大程式設計師隊伍,成為主流的面嚮物件語言,並促使面向物件的思想被普遍接受。C++是一種混合型的面嚮物件語言。象任何人類的自然語言一樣,C++語言提供一種表達思想和概念的方法,當問題變得大而複雜時,使用C++語言來解決問題將會比使用其它語言更加容易、更加靈活。在最早的面嚮物件語言中,除了C++以外,還有一種純面嚮物件語言也頗為流行,就是Smalltalk語言,產生並流行於七十末,八十年代初。

  計算機語言的發展歷史也是人們不斷追求更高的模組化、抽象和封裝的歷史。最初的抽象是以計算機為中心的:首先是將以0和1表示的二進位制值抽象為位元組、整型、長整型、浮點型等各種預定義的資料型別,然後,為了表達更復雜的資料,出現了以結構表示的自定義資料型別。除了資料的抽象以外,計算機指令也有一個抽象過程:從表示式和語句,到函式和過程。結構化程式設計是以計算機為中心的抽象方式的體現,它所提倡的資料和程式碼分開的思想和計算機硬體的處理機制是相符的。六十年代末開始出現的軟體危機迫使人們去尋找解決辦法。解決軟體危機的努力主要朝兩個方向發展,一是針對軟體開發過程的工程管理,提出軟體開發的生命週期模型,包括:瀑布式模型、快速原型法、螺旋模型、噴泉模型等等;另外一個解決方法是從對軟體開發過程中分析、設計的方法的研究入手,提出了結構化程式設計方法,一時間,“演算法+資料結構=程式”幾乎成為軟體開發的唯一準則。結構化程式設計方法從計算機發展角度來看是自然而然的,但是,今天從抽象的角度來看,這種方法幾乎可以說是一個時代錯誤。軟體開發的主要目的就是描述和反映現實世界,現實世界就是由大大小小的物件構成:大到宇宙,小到原子,物件層層包裹;物質世界如此,人類社會的組成也是這樣,從作為個體的人,到集體,到整個社會,都可以用物件加以描述。因此,抽象的過程應該是以現實世界的物件為中心的,於是面向物件的抽象方法就走到前臺來,為軟體開發從分析建模到設計實現提供統一的工具。面向物件技術以及建立在它的基礎之上的元件技術為徹底解決軟體危機鋪平了道路。

  大量應用的需求,使得軟體開發效率提到日程上來。原有的高階語言,如BASIC、PASCAL等結合視覺化的介面程式設計技術、面向物件思想、資料庫技術,產生了所謂的第四代語言,如Visual Basic,Delphi等。Visual Basic的語言基礎是BASIC語言,Delphi的語言基礎是PASCAL,這兩種語言都是軟體開發人員所熟知的語言。Visual Basic和Delphi是目前應用軟體的主流開發工具。

  人工智慧一直是人們長期以來的夢想,從圖靈開始,半個多世紀以來,電腦科學家們對人工智慧進行不懈的探索,這期間,有兩種主要的人工智慧研究的語言工具,一種是LISP表處理語言,另一種是PROGLOG語言。常有人稱二者為第五代語言,但是這兩種語言並沒有為人工智慧的研究帶來實質上的進展,因此,不應該稱其為第五代語言,我們只能期待著真正的第五代語言的出現。

  Internet誕生在六十年代末,此後的二十幾年,一直是在緩慢地發展,直到九十年代,HTML語言以及HTML圖文瀏覽器Mosaic的出現,使得Internet在此後十年間得到前所未有的發展。從HTML,到DHTML,再到XML,Web儲存格式語言為資訊的釋出、資訊的交流起了極大的作用。這些Web儲存格式語言與以往的計算機語言有很大的不同,它們是通過標籤來標識內容和資料,從嚴格意義來說不應該稱為計算機語言。

  在Web技術的發展過程中,真正可以稱為計算機語言,並得到極大的普及的是Java語言。Java是面向物件的網路語言,它的獨特的網路特性包括:平臺獨立性、動態程式碼下載、為多媒體功能而設計的多執行緒、為通過Internet快速傳送而設計的緊湊的程式碼格式。Java的工作方式與現有的桌面軟體應用程式的工作方式不同。Java程式不需要儲存在你的PC機上,而是儲存在中央網路伺服器。當你通過瀏覽器訪問到一個帶有Java小程式的Web頁面時,Java小程式就會自動被下載執行。因為Java程式通常都很小的小程式,因此下載執行就會比大程式快得多。此外,版本控制在Java小程式這樣的中央儲存模式下更為容易。可以從任何一臺具有Java虛擬機器的機器上訪問任何伺服器上的Java程式。

  九十年代,軟體複用的需求和呼聲促使元件技術從面向物件技術肥沃的土壤中迅速發芽、成長,並開始結出累累碩果。軟體元件定義為自包含的、可程式設計的、可重用的、與語言無關的程式碼片段,這樣的軟體元件可以很容易地插入到應用程式中。軟體元件暴露方法和屬性,觸發事件,並且通過名稱或ID號全域性表示自己。已經成為流行的標準的元件模型包括COM/DCOM元件模型和CORBA元件模型。元件技術是計算機軟體發展的最新結果,也是半個多世紀以來所尋求的有效的軟體構造方法。

  在計算機語言的發展過程中,先後出現的語言至少有幾千種,但是真正能普及應用的計算機語言卻是屈指可數的。一種計算機語言要能流行普及,除了要有獨有的特色以外,還要切合當時的應用需求。

  計算機語言不應該只是思維放大工具,事實上,計算機語言已經成為我們思維的一部分。計算機語言是朝著自然語言的方向發展,它的最終目標應該是成為人類與計算機之間的很自然的交流工具,人可以通過這樣的語言將自己所具有的知識,或者自己的思想、情感、願望等表達給計算機,這樣的語言可以稱為知識語言或者是智慧語言。到了這樣的境界,“計算機”的名稱應該改成別的什麼,因為它與人類智慧的界限已經不那麼明顯了。這就是人工智慧,我們人類所夢寐以求的最高境界。

  2.從數值運算,符號運算,到元件運算

  簡單回顧一下運算的歷史:最早的運算屬於數值運算,它針對阿拉伯數字進行加、減、乘、除等等數學計算;將數值運算抽象出來,數學家們發明了符號運算,這種運算的特徵在於它並不指明實際的運算物件,而是以抽象的符號作為運算物件,通過對符號的演繹,數學家們構建了規模巨大的數學公式庫,而物理學家們則利用符號運算作為工具來研究物質世界的作用機制。這兩種運算的運算物件分別是數字和字串,以元件的眼光來看,它們屬於極特殊的兩種元件。

  運算是計算機語言的主要功能,早期的計算機語言如FORTRAN就主要是用於科學與工程計算,屬於數值運算的範疇。對數學家以及工程人員來說,象公式推導這樣的符號運算是極為有用,也是迫切需要的,於是相應的語言工具就出現了,這其中Mathematica語言工具是一種廣泛流行的數學工具,它除了具有強大的數值運算功能外,最重要的核心就是它能進行公式推導。在Mathematica內部,有一種模式匹配方法作為其數學運算和公式推導的基礎。

  既然數值運算和符號運算的運算物件:數字和字串屬於特殊的兩種元件型別,那麼,除了數值運算與符號運算以外,還應該有元件的運算方式。目前只有KCOM Space這一軟體開發平臺實現了元件運算。作為一種純粹的元件平臺,KCOM Space的核心優勢之一表現在它首先提出並實現了一種全新的運算方式 --- 元件運算。

  在純粹的元件空間裡,物件不再只有數字和字串,而包含有種類和形態豐富多樣的元件。這就需要有一種對元件的運算方式,為此,KCOM Space提出並實現了元件運算:元件作為運算物件參與運算,比如定義元件變數、元件常量、元件陣列,元件作為值賦給元件變數,元件作為引數用在方法呼叫中。

  元件運算是數值運算和符號運算的發展和擴充,它包含前兩種運算方式。元件運算的最明顯的特徵就是它的直觀明瞭,降低了學習運用的難度,因此元件運算語言也將成為大眾化的語言。通過元件運算語言,每一個人都可以將它自己領域的知識表示出來,這樣表達出來的元件系統就是知識化的系統,積少成多就可以構成知識元件庫。

  元件運算的最直接的效果是帶來了程式碼的視覺化。面向物件程式語言如C++,在程式碼中使用元件都是通過一連串的程式碼來完成的:首先宣告一個元件類的例項,然後每一個要設定的屬性都需要有一個賦值程式碼行。相比之下,元件運算使得元件可以直接插入到程式碼之中,通過元件的屬性對話方塊就可以以可視的方式設定所有待設的屬性。這就是程式碼的視覺化。第四代語言的最重要的特徵就是介面視覺化,也就是能以所見即所得的方式編排使用者介面。元件運算引入的程式碼視覺化,使視覺化的程度又前進了一步,實現了完全視覺化。如果說介面視覺化為應用開發效率的提高帶來一次飛躍,那麼程式碼視覺化再次為應用開發效率的提高帶來又一次的飛躍。

  元件運算是一個全新的運算領域,但卻又是必然的運算髮展趨勢。結合檢索和模式匹配以及控制機制,元件運算將構成未來知識系統的基礎。