引言
在如今信息發達的時代,科技日新月異,計算機和Internet網絡的發展也成為人們日常生活的重要部分。學習一兩門計算機編程語言也如當初學習英文一樣的火熱,隨著人工智能AI和云計算的不斷發展,Python語言和Scala語言已經成為這兩個領域里面最為火熱的編程語言了,可以預知未來學習計算機編程語言的人也一樣會如同學習英文一樣的成為一種新常態,并且成為一種穩定的常態。以下筆者將以自己的學習認知,簡單的闡述一下計算機編程語言的發展。
編程語言簡介
計算機語言,英文名Computer Language,或者Programming Language,指的是人與計算機進行交互的一種語言,就如我們學習外語一樣的,只是一種形式工具,主要與計算機交流的是我們的思想,將我們自己的思想以計算機能識別的語言賦予他,就形成了程序。
而實現我們的思想的一系列的問題的就是向計算機發送指令,對于通信的雙方而言,指令的格式,組成字符,數字數據,語法等一系列的標準就很重要了,而我們學習的就是這一系列的標準,從而能將自己的思想賦予計算機,讓計算機能智能化、自動化的為我們服務。隨著這一思想的不斷演化發展,就逐步形成了一種新的語言,即就是計算機語言!
1946年,于賓夕法尼亞大學,莫克利(JohnW.Mauchly)和艾克特(J.PresperEckert)發明了世界上第一臺通用計算機,命名為“ENIAC”。那時候程序員必須手動控制計算機,當時唯一想到利用程序設計語言來解決問題的人是德國工程師楚澤(konradzuse)。
計算機語言發展簡史
計算機是一系列的硬件構成的能完成強大功能的一個結合體,他唯一能夠識別的就是邏輯運算,即0和1,所以最初的計算機交互語言是以二進制的機器語言,由于太難理解與記憶,人們就定義了一系列的助記符幫助理解與記憶,就逐漸產生了匯編語言,但是匯編還是不好理解與記憶,就逐漸發展了高級語言。隨著C、Fortran等結構化高級語言的誕生,使程序員可以離開機器層次,通過更加抽象的層次來表達自己的思想,同時也誕生的三種重要控制結構,即就是順序結構、選擇結構、循環結構,以及一些基本數據類型都能夠很好的讓程序員以接近問題本質的方式去描述、抽象問題。但隨著需要處理的問題規模的不斷擴大,一般的程序設計模型無法克服錯誤隨著代碼的擴大而級數般的擴大,這個時候就出現了一種新的思考程序設計方式和程序設計模型,即就是面向對象程序設計,同時也誕生了一批支持這種設計模型的計算機語言,例如C++、Java、Python等。
簡而言之,計算機語言從最初的機器語言(二進制),發展到使用助記符的匯編語言,再到更易理解的高級語言,包括C、C++、Java、C#、Python等等。計算機程序的設計模型從結構化的編程,再到面向對象的編程。當然計算機只能識別二進制語言,那么很明顯在其他計算機語言與機器語言之間就有著一個橋梁,起著翻譯一樣的功能,使得通信雙方能夠交流,而這個翻譯官就是編譯器。而由于編譯的原理不一樣,我們將計算機語言分為編譯性語言(例如C、C++)和解釋性語言(Shell、Python)。
第一代計算機編程語言
第一代的計算機語言就是機器語言,即就是0\1組成的代碼,人們通過0\1與計算機進行交互與數據交換,這樣的編程實在是太難,對于大多數人來說都是十分的困難的,隨著其時間的發展,就逐步演化了第二代計算機語言。不過這是計算機的基礎,因為計算機硬件只能識別0\1的二進制,無論后面的計算機語言如何發展,最總在計算機內能夠執行的只能是0\1的二進制編碼,故而后面所有的計算機語言都需要一個翻譯的東西,將其翻譯為二進制的編碼執行,這個起著翻譯官作用的就是編譯器!
第二代計算機編程語言
由于第一代計算機語言的學習難度系數極高,就發展出使用一些助記符來幫助人們編程,這就是第二代編程語言——匯編語言,使人們與計算機進行交流溝通時便捷一些,人們學習編程起來也比較容易,這種使用英文助記符來幫助人們進行編程,再由編譯器翻譯為0\1的代碼,這樣計算機就能識別了。但是隨著信息技術的不斷發展,匯編語言已經不能夠滿足大部分人們的需求,就催生了第三代計算機編程語言。
第三代計算機編程語言
所謂的第三代計算機編程語言,就是大家經常熟知的一些編程語言。而對于計算機高級語言的發展分為兩個階段,以 1980 年為分界線,前一階段屬于結構化語言或者稱為面向過程的語言,后一階段屬于面向對象的語言。
然而對于什么叫面向過程,什么叫面向對象?這是很難解釋的一個問題,故而暫時不需要深入理解,簡單來說就是編程時的兩種設計思想。
面向過程語言中最經典、最重要的就是C語言。Fortran、Basic 和 Pascal 語言基本上已經很少有人使用了。但是C語言一直在用,因為C語言是計算機領域最重要的一門語言,其在liunx編程和嵌入式編程有極大的地位。但是C語言也有缺陷,它的缺陷只有在學完面向對象語言之后才能體會到。
故而從 20 世紀 80 年代開始又產生了另外一種“以面向對象”為思想的語言,其中最重要、最復雜的就是 C++。C++ 從易用性和安全性兩個方面對C語言進行了升級。C++ 是一種較復雜、難學的語言,但是一旦學會了則非常有用。因為 C++ 太復雜,所以后來就對 C++ 進行了改裝,產生了兩種語言,一個是 Java,另一個是 C#。Java 語言是現在最流行的語言之一。C# 則是微軟公司看 Java 很流行而寫的一個與 Java 語法相似的語言。因為 Java 和 C# 幾乎是一模一樣的,所以你只需要學習其中的一種語言就可以了。
同時隨著近年來的人工智能和云計算的火熱發展,Python語言和Scala語言成為人工智能和云計算Hadoop框架的重要編程語言,逐漸成為時代的主流編程語言。在計算機的領域里,還有一些專用的計算機編程語言,不如網頁設計的三要素:HTML、CSS和JavaScript ,這三者就是專用的計算機編程語言。