編程語(yǔ)言:最完整的編程語(yǔ)言分類(lèi)!知道你學(xué)的語(yǔ)言屬于什么嗎?
編程語(yǔ)言是形式化的語(yǔ)言,帶有一組提供所需輸出的指令。為了在我們的機(jī)器中實(shí)現(xiàn)各種算法,我們開(kāi)始使用編程語(yǔ)言。一組特定的指令用于可編程機(jī)器,而不是通用的編程語(yǔ)言。計(jì)算機(jī)編程語(yǔ)言用于與計(jì)算機(jī)通信。每種編程語(yǔ)言都基于某些語(yǔ)法和語(yǔ)義規(guī)則。

計(jì)算機(jī)以數(shù)字表示形式工作。僅將0或1的存在理解為關(guān)閉或打開(kāi)。因此,要與計(jì)算機(jī)進(jìn)行通信,我們必須以二進(jìn)制形式給出指令,而這幾乎是不可能的,因此這里出現(xiàn)了可以節(jié)省我們時(shí)間的編程語(yǔ)言。我們遵循某種編程語(yǔ)言的一般語(yǔ)法規(guī)則,用英語(yǔ)編寫(xiě)了說(shuō)明,然后通過(guò)一些過(guò)程將其轉(zhuǎn)換為機(jī)器代碼,并告訴計(jì)算機(jī)執(zhí)行一些特定的操作。
日益增長(zhǎng)的對(duì)計(jì)算能力和生產(chǎn)率的需求是開(kāi)發(fā)功能更強(qiáng)大,價(jià)格更低廉,速度更快的商用機(jī)器,超級(jí)計(jì)算機(jī)和各種編程設(shè)備以及各種應(yīng)用程序和計(jì)算機(jī)類(lèi)型的關(guān)鍵因素,需要特定的編程語(yǔ)言來(lái)完成特定的任務(wù)。下面列出了所有類(lèi)型的編程語(yǔ)言的完整分類(lèi)列表。編程語(yǔ)言沒(méi)有嚴(yán)格的分類(lèi)方案。因此,我們可以將一種語(yǔ)言視為不止一種編程語(yǔ)言的示例。
讓我們一一理解這些編程語(yǔ)言。由于列表很大,因此不可能詳細(xì)討論所有這些內(nèi)容。在這里,我正在用所有這些各種編程語(yǔ)言的示例編寫(xiě)簡(jiǎn)短的介紹。大家記得點(diǎn)個(gè)贊啵~

編譯語(yǔ)言:
編譯語(yǔ)言是一種編程語(yǔ)言,其中我們使用編譯器來(lái)編譯和執(zhí)行代碼。編譯器通常是從我們的書(shū)面源代碼生成機(jī)器級(jí)代碼的翻譯器。
例:
C
C ++
C#
ALGOL
Cobol
Fortran
Java
Visual Basic
SMalltalk
解釋語(yǔ)言:
解釋語(yǔ)言是一種編程語(yǔ)言,在其中,無(wú)需將程序編譯為機(jī)器語(yǔ)言的指令,我們就可以直接自由地執(zhí)行指令。解釋器逐行執(zhí)行程序。語(yǔ)言解釋為編譯后的實(shí)現(xiàn)(如平臺(tái)獨(dú)立性,動(dòng)態(tài)范圍,動(dòng)態(tài)類(lèi)型等)提供了更多的靈活性。
示例:
Python
Ruby
Perl
Pascal
Lisp
BASIC
APL
腳本語(yǔ)言:
腳本語(yǔ)言是控制應(yīng)用程序的編程語(yǔ)言??梢栽谌魏纹渌麘?yīng)用程序上獨(dú)立執(zhí)行的腳本。它們被廣泛應(yīng)用于它們所控制的應(yīng)用中,并被用于自動(dòng)化領(lǐng)域。
例:
PHP
VBScript
Windows PowerShell
F-Script
BeanShell
AutoIt
R
Game Maker Language
標(biāo)記語(yǔ)言:
標(biāo)記語(yǔ)言是一種人工語(yǔ)言,用于對(duì)文檔進(jìn)行注釋?zhuān)员阍谡Z(yǔ)法上與文本(可定義文本顯示方式的文本)區(qū)分開(kāi)。
例:
HTML
XML
XHTML
SGML
Curl
程序語(yǔ)言:
程序(命令式)編程意味著指定程序達(dá)到預(yù)期狀態(tài)應(yīng)采取的步驟。過(guò)程不過(guò)是一組可以通過(guò)過(guò)程調(diào)用引用的指令。這有助于代碼的重用。這種類(lèi)型的編程使程序結(jié)構(gòu)化并易于跟蹤程序流。
例:
HyperTalk
Go
PL/C
PL/I
MATLAB
Curl
Mathematica
MATLAB
函數(shù)式語(yǔ)言:
函數(shù)式編程語(yǔ)言將每次計(jì)算都定義為數(shù)學(xué)評(píng)估。他們專(zhuān)注于函數(shù)的應(yīng)用。一些函數(shù)式編程語(yǔ)言是純函數(shù)式語(yǔ)言,但是許多所謂的函數(shù)式語(yǔ)言是不純凈的,包含命令式功能,它們不是純函數(shù)式語(yǔ)言。
例:
Pure Functional
Agda
SAC
SASL
Cuneiform
Curry
Futhark
Haskell
不純功能語(yǔ)言:
APL
C++ (since C++11)
C#
VB.NET
Ceylon
Kotlin
Lisp
Clojure
JScript
PHP
Python
基于邏輯的編程語(yǔ)言:
邏輯編程是一種編程范例,主要基于形式邏輯。基于邏輯的編程是一組邏輯形式的語(yǔ)句,這些語(yǔ)句表達(dá)有關(guān)問(wèn)題域的事實(shí)和規(guī)則。
例:
Prolog
ROOP
ALF
Alma-0
Curry
Fril
Janus

面向?qū)ο蟮恼Z(yǔ)言:
面向?qū)ο蟮木幊蹋∣OP)是基于“對(duì)象”概念的高級(jí)編程范例,該對(duì)象可能包含字段形式的數(shù)據(jù),通常稱(chēng)為屬性。在OOP中,計(jì)算機(jī)程序?qū)⑾嚓P(guān)數(shù)據(jù)和功能綁定到對(duì)象中,并實(shí)現(xiàn)對(duì)象及其相關(guān)過(guò)程以創(chuàng)建軟件程序。
例:
Scala
C++
Java
Python
C#
Ruby
Scala
數(shù)據(jù)流語(yǔ)言:
數(shù)據(jù)流編程語(yǔ)言依賴(lài)于表示數(shù)據(jù)流。在數(shù)據(jù)流語(yǔ)言中,數(shù)據(jù)流從一條指令傳遞到另一條指令以執(zhí)行。條件執(zhí)行會(huì)跳轉(zhuǎn)數(shù)據(jù),并在過(guò)程調(diào)用中將數(shù)據(jù)路由到其他位置。
例子:
Analytica
BMDFM
Hartmann pipelines
Lucid
Max
Oz
Prograph
Pure Data
嵌入式語(yǔ)言:
主要是動(dòng)態(tài)腳本和編程語(yǔ)言。它也可以用作獨(dú)立于平臺(tái)的通用編程語(yǔ)言。嵌入式語(yǔ)言有兩種類(lèi)型:
服務(wù)端
客戶(hù)端
客戶(hù)端嵌入式語(yǔ)言旨在為網(wǎng)頁(yè)提供動(dòng)態(tài)特性,從而減少重新連接服務(wù)器的開(kāi)銷(xiāo)。
服務(wù)器端嵌入式語(yǔ)言更加靈活。動(dòng)態(tài)生成附加標(biāo)記是擁有服務(wù)器端代碼片段的主要目的。服務(wù)該頁(yè)面時(shí),嵌入在網(wǎng)頁(yè)中的服務(wù)器端是自動(dòng)丟棄的代碼,并由輸出替換。
例:
(1)服務(wù)器端
PHP
VBScript
SMX
Tcl
WebDNA
(2)客戶(hù)端
ActionScript
JavaScript
VBScript
機(jī)器語(yǔ)言:
這些語(yǔ)言可由計(jì)算中央處理器直接執(zhí)行。機(jī)器語(yǔ)言通常以八進(jìn)制或十六進(jìn)制形式的位模式編碼。
例:
ARM
DEC
x86
IBM System/360
MIPS
Sun, Oracle SPARC
系統(tǒng)語(yǔ)言:
這些語(yǔ)言用于內(nèi)存管理或任務(wù)管理中使用的低級(jí)語(yǔ)言。與應(yīng)用軟件相比,通常用于系統(tǒng)編程的系統(tǒng)編程語(yǔ)言(例如,用于編寫(xiě)系統(tǒng)軟件的語(yǔ)言)通常需要不同的開(kāi)發(fā)方法。
例:
Ada
Nim
Rust
Swift
ESPOL
并發(fā)語(yǔ)言:
這些語(yǔ)言是為了在消息傳遞語(yǔ)言中并發(fā)而構(gòu)造的。例如,Java顯示共享內(nèi)存并發(fā)。
例:
Go
Java
Julia
clojure
Scala
范式語(yǔ)言:
這些類(lèi)型的語(yǔ)言支持多種編程語(yǔ)言或編程范式。多范式語(yǔ)言允許使用多種編程風(fēng)格。沒(méi)有一種特定的語(yǔ)言能夠以最簡(jiǎn)單或有效的方式解決所有問(wèn)題,這就是我們使用Multiparadigm語(yǔ)言的原因。
例:
Ada
APL
BETA
C++
C#
Cobra
擴(kuò)展語(yǔ)言:
這些語(yǔ)言用作其他語(yǔ)言的擴(kuò)展。擴(kuò)展編程語(yǔ)言嵌入到另一個(gè)程序中,并用于在擴(kuò)展腳本中利用其功能。
例:
AutoLISP
BeanShell
Perl
Pike
Ruby
迭代語(yǔ)言:
這些語(yǔ)言圍繞生成器提供或提供生成器。
例:
Aldor
Alphard
PHP
CLU
Cobra
硬件描述語(yǔ)言:
這些編程語(yǔ)言用于電子產(chǎn)品,硬件描述語(yǔ)言或HDL用于描述電子電路或數(shù)字邏輯電路的結(jié)構(gòu),設(shè)計(jì)和操作。Verilog和VHDL在工業(yè)中使用的各種最流行和得到良好支持的HDL品種中。
例:
模擬電路的HDL:
Verilog-AMS
VHDL-AMS
數(shù)字電路的HDL:
Advanced Boolean Expression Language(ABEL)
Altera Hardware Description Language(AHDL)
Bluespec
Lava
ELLA
視覺(jué)語(yǔ)言:
在Viual Languages中,用戶(hù)可以以二維或多種方式指定程序,而不能使用視覺(jué)語(yǔ)言中的一維(文本字符串)來(lái)指定程序,我們使用圖形元素和圖形來(lái)開(kāi)發(fā)程序。
例:
Analytica
Blockly
DRAKON
Fabrik
Scratch
Simulink
Spreadsheets
基于列表的語(yǔ)言:
列表的語(yǔ)言基于列表數(shù)據(jù)結(jié)構(gòu)。
例:
Lisp
Arc
Clojure
R
Dylan
Joy
同步語(yǔ)言:
這些編程語(yǔ)言用于對(duì)反應(yīng)系統(tǒng)進(jìn)行編程。編程反應(yīng)系統(tǒng)是被中斷并立即響應(yīng)的系統(tǒng)。這些系統(tǒng)中的一些也稱(chēng)為實(shí)時(shí)系統(tǒng),并且被廣泛使用。
例:
Argus
Averest
Esterel
Lustre
Signal
宏語(yǔ)言:
這些語(yǔ)言用于將一個(gè)源代碼文件轉(zhuǎn)換為另一個(gè)。宏是一小段文本,可以擴(kuò)展為更大的文本。宏語(yǔ)言通常用于預(yù)處理源代碼。預(yù)處理程序提供文件包含等功能。
示例:
cpp (the C preprocessor)
m4
ML/I (general purpose macro processor)
查詢(xún)語(yǔ)言:
數(shù)據(jù)庫(kù)和信息系統(tǒng)中使用這些語(yǔ)言進(jìn)行查詢(xún)。
例:
SQL
XPath
AQL
PQL
XQuery
元編程語(yǔ)言:
元編程語(yǔ)言是編寫(xiě)程序,該程序編寫(xiě)或操縱其他程序(包括其自身)作為數(shù)據(jù),或者完成在編譯時(shí)在運(yùn)行時(shí)執(zhí)行的部分工作。
例:
C++
CWIC
Curl
D
eC
Emacs Lisp
Elixir
F#
基于規(guī)則的語(yǔ)言:
當(dāng)被一組數(shù)據(jù)中的條件激活時(shí),基于規(guī)則的語(yǔ)言實(shí)例化規(guī)則。將選擇某些集合,并執(zhí)行屬于那些規(guī)則的語(yǔ)句。
例:
awk
CLIPS
Constraint Handling Rules
Drools
Jess
OPS5
Prolog
數(shù)值分析語(yǔ)言:
在數(shù)值分析中,我們分析和實(shí)現(xiàn)用于數(shù)值解的算法,以解決涉及連續(xù)變量的現(xiàn)實(shí)數(shù)學(xué)模型的巨大問(wèn)題。我們?cè)跀?shù)值分析中使用以下編程語(yǔ)言。
例:
Mathematica
MATLAB
PROSE
R
語(yǔ)法處理語(yǔ)言:
這些語(yǔ)言可幫助生成詞法分析器和解析器以實(shí)現(xiàn)上下文無(wú)關(guān)的語(yǔ)法。例:
ANTLR
Coco/R (EBNF with semantics)
GNU bison (FSF’s version of Yacc)
GNU Flex (FSF version of Lex)
lex (Lexical Analysis, from Bell Labs)
Parsing expression grammar (PEG)
非基于英語(yǔ)的語(yǔ)言:
有幾種編程語(yǔ)言,它們是用英語(yǔ)以外的其他語(yǔ)言開(kāi)發(fā)的。在這種情況下,語(yǔ)言不是障礙。
Chinese BASIC – Chinese
Fj?lnir – Icelandic
Language Symbolique d’Enseignement – French
Lexico – Spanish
Rapira – Russian
ChaScript-Bengali
ezhil-Tamil
基于XML的語(yǔ)言:
這些語(yǔ)言用于將XML文檔轉(zhuǎn)換為人類(lèi)可讀的格式。
Ant
C?
XPath
XQuery
XProc
原諒筆者,經(jīng)過(guò)這樣一番分類(lèi)之后,筆者發(fā)現(xiàn)我沒(méi)有接觸過(guò)的語(yǔ)言實(shí)在還有太多太多,我們需要學(xué)習(xí)的東西還有很多很多呀!
話說(shuō)回來(lái)昂,筆者還是一名CC++的程序員,如果你想更好的提升你的編程能力,好好學(xué)習(xí)C/C++編程知識(shí)的話!那么你很幸運(yùn)~

UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
編程學(xué)習(xí)書(shū)籍:

編程學(xué)習(xí)視頻:
