天天看點

什麼是計算機語言

作者:javafairy

計算機語言發展史

(1)什麼是計算機語言

人和人之間的交流需要通過語言。中國人之間用中國話,英國人用英語,俄羅斯用俄語。人(程式員、軟體開發工程師、碼農)和計算機交流資訊也需要解決語言的問題,需要創造一種計算機和人都能識别的語言,這就是計算機語言。

計算機語言也被稱作是程式設計語言,因為我們學習計算機語言的目的就是程式設計(開發程式,寫項目)。計算機語言有很多種,但主流的語言有二十多種,例如:C / C++ / Java/ JavaScript/ Scala/ Python/ Go/ Kotlin/ Rust等等。

(2)計算機語言發展史

計算機語言經曆了機器語言、彙編語言、進階語言(進階程式設計語言、進階程式設計語言)三個階段,其特點就是讓程式的開發、測試、部署變得越來越高效、簡單、友善。不過是以犧牲了運作效率(性能)為代價的,但是随着計算機硬體的高速發展,在絕大多數應用場景下的運作效率(性能)的損失基本上可以忽略不記。

第一代計算機語言-機器語言

計算機工作基于二進制,計算機能直接識别和接受的二進制的代碼稱為機器指令。機器指令的集合就是該計算機的機器語言。每種CPU都是有各自不同的指令系統(x86,ARM),這樣導緻在不同的機器上同一套程式需要使用不同的機器語言。

機器語言的運作效率是最高的,但是面向機器編寫的程式是不能移植的,是以可以手動處理底層硬體的差異性,而且二進制的機器指令編寫的程式是難以了解和維護的。

第二代計算機語言-彙編語言

彙編語言, 即第二代計算機語言。彙編語言和彙編器(編譯器)就是用一些容易了解和記憶的縮寫單詞來代替一些特定的指令,例如:用"ADD"代表加法操作指令,"SUB"代表減法操作指令,以及"INC"代表增加1,"DEC"代表減去1,"MOV"代表變量傳遞等等,通過這種方法,解決了機器語言需要記住非常多的機器指令,對現有程式的bug修複以及營運維護都變得更加簡單友善。但是沒有從根本上解決程式的移植性的問題,隻是将機器指令轉換成了人類更加容易了解和記憶的英文單詞,然後由彙編器将英文單詞編譯(翻譯)成機器能夠識别的指令。因為計算機最終隻能識别二進制的機器指令。而且彙編語言是面向機器的,不同機器的彙編指令也不一樣,彙編語言編寫的程式也是不能移植的。盡管如此彙編語言在工業電子程式設計、軟體的加解密和計算機病毒分析等等場景在廣泛使用。

第三代計算機語言-進階語言

進階語言的進階之處展現在程式員在編寫代碼的時候不需要關注底層硬體的差異性,而隻需要關注實作的功能即可。

進階語言需要通過編譯器編譯程式再運作或者是通過解釋器邊解釋邊運作,而且相比機器語言、彙編語言而言,進階語言更加容易學,是以會有更加充足的人力資源來開發大型的商業軟體,例如Windows,macOS,Linux,Android,iOS,鴻蒙OS等等作業系統都是使用C/C++ 以及少量的彙編實作的,國内的阿裡巴巴在電商、支付、物流、金融背景等等領域都使用Java實作。

進階語言按照程式設計思想來分類:分成面向過程和面向對象兩類,例如C語言就是面向過程的程式設計語言,而Java、Python是面向對象的程式設計語言。

進階語言按照運作機制分類:分成編譯型和解釋型兩類,例如C語言就是編譯型的語言,Python就是解釋型的語言。

編譯型的語言的運作效率一般比解釋型的語言更加高效,但是編譯型的語言一般不能跨平台,比如說C語言使用了和系統綁定的庫,那麼C程式是不能跨平台的。

解釋型的語言的運作效率比編譯型的語言低一些,但是解釋型的語言一般都是可以跨平台的,例如Python編寫的程式既可以在Windows下運作,又可以在macOS或者Linux下運作。

10.計算機語言應用場景

Tiobe計算機語言的排行榜

Tiobe計算機語言排行榜的網址是:https://www.tiobe.com/tiobe-index/

2022年9月份前20計算機語言的排名(每個月都會更新一次)

什麼是計算機語言

2022年9月份前20計算機語言的排名

Tiobe計算機語言曆史走勢圖,C和Java基本上輪流做第一。

什麼是計算機語言

Tiobe計算機語言曆史走勢圖

計算機語言應用場景

每一種計算機語言都是有自己擅長的應用場景(開發方向),大家可以根據自己的喜好(市場需求)來選擇對應的計算機語言。

什麼是計算機語言

計算機語言應用場景

如果自己本身想要學習其他的語言、架構、中間件、架構,建議先深入掌握Java,因為Java語言上手比較容易,而且功能強大,無論是中間件、大資料、Android應用、大型分布式系統都是可以使用Java開發。現在招聘市場中Java的需求量還是非常大的,我們通過Boss直聘等招聘網站就可以了解到Java崗位的招聘要求。

什麼是計算機語言

Java崗位招聘要求

繼續閱讀