機(jī)器語(yǔ)言) 機(jī)器語(yǔ)言 匯編語(yǔ)言 高級(jí)語(yǔ)言
2023-11-20
更新時(shí)間:2023-11-20 00:05:28作者:佚名
其實(shí)這篇文章本來(lái)是想寫寫虛擬機(jī)如何搭建匯編環(huán)境的,想想還是算了,畢竟玩匯編純屬個(gè)人愛(ài)好,你們也不一定喜歡是不是。打住,(一本正經(jīng))今天我們主要聊聊編程語(yǔ)言的那些事。
要說(shuō)現(xiàn)在編程語(yǔ)言的數(shù)量那可多了去了,算上主流的,非主流的,半路夭折的,還剩一口氣的差不多2500種,當(dāng)然至今還算活躍的差不多有600種。很頭大是吧?(偷笑)其實(shí)完全可以再細(xì)分一下,就剩下3種了,“機(jī)器語(yǔ)言”,“匯編語(yǔ)言” 和 “高級(jí)語(yǔ)言”。如果你還是嫌多可以勉強(qiáng)把機(jī)器語(yǔ)言和匯編語(yǔ)言綁一起丟在“低級(jí)語(yǔ)言”的圈子里。如果再讓我歸類反手一個(gè)“編程語(yǔ)言”丟給你信不信。
說(shuō)機(jī)器語(yǔ)言反人類絕不是空話,大家都知道,最早的電子計(jì)算機(jī)出現(xiàn)在1946年,而穿孔卡片式計(jì)算機(jī)出現(xiàn)在1935年,35年出現(xiàn)的是一個(gè)升級(jí)款,更早的機(jī)器應(yīng)該是1931年IBM公司推出的IBM601(IBM的601乘法沖床),輸入是制式的帶孔紙帶,輸出也是制式的帶孔紙帶,解讀的過(guò)程很考驗(yàn)發(fā)量的。后來(lái)呢第一臺(tái)電子計(jì)算機(jī)出來(lái)了,操作方式又變了,用一個(gè)個(gè)的開(kāi)關(guān)代替的打孔紙帶,這次不光是費(fèi)頭發(fā)了還費(fèi)鞋。(170平的大房間里“摸電門”)
這就是最最低級(jí)的語(yǔ)言——機(jī)器語(yǔ)言了,也稱為“第一代計(jì)算機(jī)語(yǔ)言”。從上面來(lái)看機(jī)器語(yǔ)言不但費(fèi)時(shí)費(fèi)力,還費(fèi)鞋,更費(fèi)頭發(fā)。
再后來(lái)就是匯編語(yǔ)言了,本體出現(xiàn)在1949年,被應(yīng)用于延遲存儲(chǔ)電子自動(dòng)計(jì)算機(jī)(EDSAC)。當(dāng)然這還不是匯編語(yǔ)言的“完全體”,只是作為助記符來(lái)用,簡(jiǎn)單來(lái)說(shuō)就是先用匯編語(yǔ)言寫好程序,然后把匯編語(yǔ)言按照規(guī)定翻譯成二進(jìn)制,再把這些信息做成打孔紙帶使用,沒(méi)錯(cuò),匯編語(yǔ)言剛出現(xiàn)時(shí)還是用打孔紙帶輸入數(shù)據(jù)。終于有人靈光一閃想到把翻譯這么費(fèi)頭發(fā)的工作交給計(jì)算機(jī)多好,我們只需要寫匯編程序就好了,所以后來(lái)就有了匯編器,總算是避免和機(jī)器語(yǔ)言打交道了。
完全體的匯編語(yǔ)言也被稱為“第二代計(jì)算機(jī)語(yǔ)言,它的出現(xiàn)保護(hù)了一大群人的頭發(fā)。
最后就是高級(jí)語(yǔ)言也被稱為“第三代計(jì)算機(jī)語(yǔ)言”,企業(yè)級(jí)應(yīng)用的“扛把子”是Java,偏硬件一點(diǎn)的代表是“C/C++”,Python(爬蟲(chóng))作為一匹黑馬在人工智能領(lǐng)域戰(zhàn)功赫赫,HTML讓我們看到了更精美的網(wǎng)頁(yè),還有太多就不說(shuō)了,不是對(duì)其它編程語(yǔ)言有偏見(jiàn),你要知道還有差不多600種語(yǔ)言在排隊(duì)呢,撿幾個(gè)主流的說(shuō)說(shuō)就差不多了(機(jī)智)。
咱們?cè)賮?lái)說(shuō)說(shuō)編程語(yǔ)言的“低級(jí)”和“高級(jí)”,這是個(gè)相對(duì)的概念,越接近計(jì)算機(jī)底層換句話說(shuō)就是越接近“機(jī)器語(yǔ)言”的編程語(yǔ)言就越低級(jí),沒(méi)有比機(jī)器語(yǔ)言更低級(jí)的語(yǔ)言了,有人會(huì)說(shuō)了“電平信號(hào)”不就是嗎,這個(gè)還真不是。確切地說(shuō),電平信號(hào)和二進(jìn)制的“0”和“1”只是機(jī)器語(yǔ)言兩種不同的表現(xiàn)方式,一種用電平高低表示,一種用人們能理解的“0”和“1”來(lái)表示,歸根結(jié)底都是機(jī)器語(yǔ)言,
匯編語(yǔ)言是通過(guò)一種相對(duì)于機(jī)器語(yǔ)言更容易被人們接受的方式來(lái)操作硬件,當(dāng)然這種方式在現(xiàn)在看來(lái)還是過(guò)于繁瑣。說(shuō)它簡(jiǎn)單在于語(yǔ)法,說(shuō)它難在于要與硬件“掰腕子”。我們不但要知道一個(gè)指令是干什么的還要知道它是怎么運(yùn)作的。
高級(jí)語(yǔ)言對(duì)一些經(jīng)常用到的處理過(guò)程做了封裝,也就是類和方法,我們不需要知道它是如何運(yùn)作的,只需要知道它是干什么的可以取得什么結(jié)果就行了,這就是有人覺(jué)得高級(jí)語(yǔ)言比較簡(jiǎn)單的原因了(當(dāng)然架構(gòu)思想什么的也夠你喝一壺了)。