程式語言的變遷

本文首發 | 公眾號:lunvey

導讀:提及電腦語言,聽聞過C++,它是電腦專業高校生必修課。作為早期語言C的擴展,填補了類的空白,將面向對象這一特性融入其中,理所當然地成為了流行度最高的高級程式語言,長期活躍在程式語言榜單前五。本文將通過程式語言的發展來介紹C++的前世今生。

人類文明的發展離不開語言文字,同理,日新月異的電腦技術也離不開程式語言的變遷。

和人一樣,同為軀幹的電腦,因為程式語言,繁榮了枝葉,衍變出各種各樣豐富的應用程式。

自從電腦於1946年問世以來,70多年時間,硬體和軟體都蓬勃發展,大致經歷了這些過程。

程式語言階段 程式語言特點
機器語言 二進位指令構成,電腦直接識別,執行速度快,但0和1構成的程式碼晦澀難懂,不易開發和維護程式
彙編語言 用助記符映射二進位指令,和人的思維相差甚遠,抽象層次太低,需要考慮大量機器細節
高級語言 結構化數據、結構化語句、數據抽象、過程抽象,屏蔽機器細節,接近人類思維

電腦發明的同時,就出現了程式語言。電腦是硬體,一個實實在在的物理設備,而操作這台設備需要不同的指令,用以完成不同的功能。這些指令就構成了程式,統稱軟體。對電腦發出這些指令的過程叫做編程,使用的程式碼語言叫做程式語言。早期電腦,主要用於科學計算,通過0和1組成的冗長二進位指令,來控制電腦的運算過程。這時的程式語言停留在機器語言階段,不但晦澀難懂,不易識記,而且開發難度大、周期長,軟體功能單一。

為了解決這個問題,出現了彙編語言。通過一些特殊約定的字元來描述指令的操作,如ADD表示兩數相加,對應的就是一堆完成這個操作的二進位程式碼。使用助記符以後,雖然在機器語言的基礎上進行了改進,但是思維習慣依然和人類相差甚遠。彙編語言通過彙編程式,將彙編語言翻譯成了二進位指令,讓機器直接識別。這樣的進步,意味著人與電腦的交互除了機器語言,還可以是別的語言。正因如此,通過編譯程式的思想,高級語言開始發展。

C++是一門高級語言,由C語言拓展而來。因為在C語言的基礎上增加了類的設計,從而用面向對象思想來描述對象。物以類聚,人以群分。C++因為具備了類,從而可以將現實問題所涉及的客觀事物的共同屬性和行為提煉出來,用於重複調用。類是群體,對象是個體。如果我們需要描述群體中的個體,就需要將對象實例化,也就是從類中創建個體的過程,使得這個對象具備類中包含的全部屬性和行為,並可以針對個體的差異性進行修改。這樣的思想就叫做面向對象。

我們學習C++,除了語言本身,更多的是這種面向對象的程式設計方法。

Tags: