常用程式語言彙總及其用途

2020-08-08 18:27:36

常用程式語言彙總及其用途
C:操作系統、嵌入式、驅動開發
C++:圖形影象、科研、通訊、桌面軟體、遊戲、遊戲伺服器
C#:Windows桌面軟體、.NET Web、伺服器
Java: Java SE:跨平臺的桌面應用,Android;Java EE:企業級應用,web開發、伺服器後端;Java ME:手機應用、流行於非智慧機時代;Java Android:用於安卓開發應用
GO:高效能伺服器應用,比較年輕
Erlang:高併發伺服器應用,多用於遊戲
Python:Web、科學計算、運維
Ruby:web
Perl:運維、文字處理,用的較少
Lisp:科研,一種邏輯語言,用於人工智慧
Node:一個JavaScript執行環境(runtime)
Haskell:Haskell是一種標準化的、通用純函式程式語言,數學邏輯方面
Scala:一種類似Java的程式語言,整合物件導向程式設計和函數語言程式設計的各種特性
Javascript:前端,在node中可以做後端
HTML/CSS:標示語言,主要是給前端工程師構建頁面使用

程式語言的分類
1、高階語言和低階語言:
高階語言: C、C++、Java、Python、Pascal、Lisp、Prolog、FoxPro、易語言等都是高階語言,相對於低階語言來說,高階語言採用易於識別和記憶的字元來作爲關鍵字,也更接近人類的思維方式,編寫容易讀寫性好,開發效率更高。重點是,高階語言是可移植的,做少量修改甚至無需修改,即可將程式碼執行在不同平臺的計算機上。
低階語言(包括機器語言和彙編語言) :
機器語言:
計算機硬體只能識別「斷開」和「閉合」兩種物理狀態,也就是0和1。使用機器指令效率最高,因爲無需對指令進行翻譯。但是機器語言對人類不友好,一大串0和1,很難識別和記憶,且容易出錯。
但是對於機器來說,秒懂。
彙編語言:
彙編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可程式化器件的低階語言,亦稱爲符號語言。在彙編語言中,用助記符(Mnemonics)代替機器指令的操操作碼,用地址符號(Symbol)或標號(Label)代替指令或運算元的地址。在不同的裝置中,彙編語言對應着不同的機器語言指令集,通過彙編過程轉換成機器指令。普遍地說,特定的彙編語言和特定的機器語言指令集是一一對應的,不同平臺之間不可直接移植。
彙編語言採用人類容易記憶和識別的助記符來代表一些0和1的指令,比如AND代表加法。
越是低階的語言對機器越是友好,越是符合機器的思考方式,因此執行效率高。
越是高階的語言對人類越是友好,越是符合人類的思考方式,因此開發效率高。
2、編譯型語言和直譯語言(相對於高階語言而言)。
高階語言的可移植性是基於編譯或者解釋這個過程,對人類友好的高階語言只有經過處理才能 纔能被操作系統識別並載入到計算機硬體上最終執行。
高階語言的編譯和解釋都是面向操作系統而言,並非面對計算機硬體。

編譯型語言
編譯就是把一個事先編好的叫做「編譯程式」的機器語言程式安裝在計算機內,當需要執行高階語言程式時,編譯程式就把整個「高階語言的源程式」翻譯成「機器語言的目標程式」。
直譯語言
高階語言進入計算機後,解釋程式一邊掃描一邊解釋,逐句輸入逐句翻譯,計算機一行一行執行,並不產生目標程式。

3、強型別語言(靜態語言)和弱型別語言(動態語言)
強型別語言(靜態語言):是編譯時變數的數據型別就可以確定的語言,大多數靜態語言要求在使用變數之前必須宣告數據型別。比如Java、C、C++、C#等。
弱型別語言(動態語言):是執行時才確定數據型別的語言,變數在使用之前無需申明型別,通常變數的值是被賦值的那個值的型別。比如Php、Asp、JavaScript、Python、Perl等等。
弱型別語言是數據型別可以被忽略的語言。它與強型別語言相反,一個變數可以賦不同數據型別的值。一個變數的型別是由其上下文決定的,效率更高。
強型別語言是必須強制確定數據型別的語言,一旦一個變數被指定了某個數據型別,如果不經過強制轉換,那麼它就永遠是這種數據型別。一個變數的型別是申明的時候就已經確定的,更安全。
靜態語言由於強制宣告數據型別,讓開發工具(IDE)對程式碼有很強的判斷能力,在實現複雜的業務邏輯和開發大型商業系統、以及那些宣告週期很長的應用中,開發者可以依託強大的IDE來更高效、更安全地開發。
動態語言思維不受約束,可以任意發揮,把更多的精力放在產品本身上;集中思考業務邏輯實現,思考過程就是實現過程。