1. 機器語言
2. 匯編語言
3. 高級語言
????????概述:編程語言是用來定義計算機程序的形式語言会烙,用來向計算機發(fā)出指令。計算機語言數(shù)量很多,每年都會產(chǎn)生大量新的編程語言臂寝。按層次來分送淆,編程語言可分為3類:機器語言税产、匯編語言和高級語言。
1. 機器語言
? ? ? ? - 定義1:機器語言是機器能直接識別的程序語言或指令代碼偷崩,勿需經(jīng)過翻譯辟拷,每一操作碼在計算機內(nèi)部都有相應的電路來完成它,或指不經(jīng)翻譯即可為機器直接理解和接受的程序語言或指令代碼阐斜。
? ? ? ? - 定義2:機器語言是用二進制代碼表示的計算機能直接識別和執(zhí)行的一種機器指指令系統(tǒng)令的集合衫冻。它是計算機的設計者通過計算機的硬件結(jié)構(gòu)賦予計算機的操作功能。
? ? ? ? - ?優(yōu)點:直接執(zhí)行谒出,速度快隅俘,資源占用少;
? ? ? ? - 缺點:可讀性笤喳、可移植性差为居,編程繁雜。
2. 匯編語言
? ? ? ? -?匯編語言杀狡, 即第二代計算機語言颜骤,用一些容易理解和記憶的字母,單詞來代替一個特定的指令捣卤,比如:用“ADD”代表數(shù)字邏輯上的加減忍抽,“ MOV”代表數(shù)據(jù)傳遞等等;
? ???????-?用符號代替了0和1董朝,比機器語言便于閱讀和記憶;
? ? ? ? -?在不同的設備中鸠项,匯編語言對應著不同的機器語言指令集(每一種CPU都有自己的機器指令集\匯編指令集),通過匯編過程轉(zhuǎn)換成機器指令子姜。特定的匯編語言和特定的機器語言指令集是一一對應的祟绊,不同平臺之間不可直接移植。(這個特性奠定了逆向功能成的基礎(chǔ))哥捕;
? ? ? ? - 優(yōu)點:?
? ? ? ? ? ? ? ? ①. 存儲空間占用少牧抽、執(zhí)行速度快的特點;
? ? ? ? ? ? ? ? ②.?作為一種低級語言遥赚,可擴展性很高扬舒;
? ? ? ? ? ? ? ? ③.?可以輕松的讀取存儲器狀態(tài)以及硬件I/O接口情況。
? ? ? ? - 缺點:
? ? ? ? ? ? ? ? ①.?因為CPU(8086凫佛、ARM64)的特殊性造成了代碼兼容性差的缺陷;
? ? ? ? ? ? ? ? ②.?因為代碼非常單調(diào)讲坎,特殊指令字符很少孕惜,所以造成了代碼的冗長以及編寫的困難;
? ? ? ? ? ? ? ? ③.?需要自己去調(diào)用存儲器存儲數(shù)據(jù)晨炕,很容易出現(xiàn)BUG衫画,而且調(diào)試起來也不容易;
? ? ? ? ? ? ? ? ④. 后期維護成本也比較高瓮栗。
3. 高級語言
????????-?高級語言又主要是相對于匯編語言而言的削罩,它是較接近自然語言和數(shù)學公式的編程,基本脫離了機器的硬件系統(tǒng)费奸,用人們更易理解的方式編寫程序弥激。
????????-?高級語言并不是特指的某一種具體的語言,而是包括很多編程語言货邓,如流行的java秆撮,c四濒,c++换况,C#,lisp盗蟆,prolog戈二,F(xiàn)oxPro,易語言喳资,中文版的C語言等等觉吭,這些語言的語法、命令格式都不相同仆邓。
(PS : 其中有部分章節(jié)是從前人的文章中搬運過來整理而成鲜滩,這些文章里已經(jīng)對部分知識點解釋的很清楚明了了,我也沒有更好的表達方式节值,所以站在巨人的肩膀上徙硅,我只是一個整理者加了部分自己的理解。)