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