一、認(rèn)識(shí)編程語(yǔ)言
第一代語(yǔ)言
第一代編程語(yǔ)言,非機(jī)器語(yǔ)言莫屬。所謂的機(jī)器語(yǔ)言,就是計(jì)算機(jī)能直接識(shí)別的語(yǔ)言格式,計(jì)算機(jī)屬于電子元器件,最容易識(shí)別的兩種狀態(tài)就是"開(kāi)"和"關(guān)"。例如家用電器,就是要么執(zhí)行,要么不執(zhí)行這兩種狀態(tài)。而在計(jì)算機(jī)中,直觀(guān)體現(xiàn)的指令就是1和0。例如:101代表數(shù)字5,其他的內(nèi)容也是如此,在計(jì)算機(jī)中,底層的指令都是由1和0組成的。
對(duì)于計(jì)算機(jī)來(lái)說(shuō),識(shí)別1和0很容易,但對(duì)于程序員來(lái)講,這差不多就相當(dāng)于是在看"天書(shū)"。那么有沒(méi)有辦法能夠讓程序員更容易地讀懂計(jì)算機(jī)中的數(shù)據(jù)呢?答案是肯定的!這就好比我們要和老外交流,你聽(tīng)不懂老外在講什么,我們就可以找一個(gè)翻譯,在程序中我們所找的這位“翻譯官”,就是我們所謂的第二代語(yǔ)言。
第二代語(yǔ)言
第二代編程語(yǔ)言是匯編語(yǔ)言。這種語(yǔ)言相當(dāng)于是對(duì)機(jī)器語(yǔ)言的封裝,畢竟1010的組合太難記了,所以就產(chǎn)生了匯編這種中間層語(yǔ)言。
相對(duì)于機(jī)器語(yǔ)言,匯編語(yǔ)言的可讀性相對(duì)更好一些。好比人類(lèi)語(yǔ)言,一開(kāi)始可能只是一些肢體語(yǔ)言,慢慢地發(fā)展出了象形文字,最后才有了真正的文字,這個(gè)是人類(lèi)發(fā)展的必然階段,程序亦是如此。
當(dāng)然,匯編語(yǔ)言對(duì)于程序員來(lái)講,也不是特別的友好,因?yàn)樗恼Z(yǔ)法結(jié)構(gòu)還有很大的改進(jìn)空間。平哥給大家舉個(gè)例子,我們做算數(shù)運(yùn)算時(shí),可以使用ADD代表加法運(yùn)算,SUB代表減法運(yùn)算,諸如此類(lèi)。但如果我們直接使用‘+’、‘-’符號(hào)來(lái)進(jìn)行計(jì)算,可讀性方面則會(huì)更好。平哥在05年上大學(xué)時(shí),學(xué)校計(jì)算機(jī)系主修課就已經(jīng)把匯編語(yǔ)言給砍掉了,只作為選學(xué)內(nèi)容。所以我也只是簡(jiǎn)單地了解過(guò)一些相關(guān)的語(yǔ)法,沒(méi)有系統(tǒng)化地去學(xué)習(xí),大家也無(wú)需重點(diǎn)學(xué)習(xí)這塊內(nèi)容,因?yàn)閰R編語(yǔ)言這種老古董在企業(yè)中已經(jīng)不怎么用了。
第三代語(yǔ)言
在匯編語(yǔ)言的基礎(chǔ)上,后來(lái)又誕生了多種高級(jí)語(yǔ)言,例如c/c++、c#、python、java等,這些高級(jí)語(yǔ)言都是屬于第三代語(yǔ)言。
從程序員的編碼角度來(lái)說(shuō),去除了各種晦澀難懂的匯編語(yǔ)法,這就極大提高了程序員的開(kāi)發(fā)效率。所以我們可以把第三代語(yǔ)言稱(chēng)為"面向用戶(hù)"的語(yǔ)言,也就是對(duì)程序員最為友好的語(yǔ)言,它們有著最貼近生活邏輯的語(yǔ)法。比如在Java語(yǔ)法中,平哥給大家舉個(gè)例子:如果我的錢(qián)多于100塊錢(qián),那么今天就打車(chē)上班。這個(gè)案例的代碼可以描述成下面的樣子:
int money=500; //這是我錢(qián)包的500塊錢(qián)
if(money>=100){ //判斷錢(qián)大于100塊,則進(jìn)入{}執(zhí)行語(yǔ)句
System.out.println("有錢(qián),打車(chē)上班"); //執(zhí)行打車(chē)的語(yǔ)法輸出
}
相信你只要有一點(diǎn)Java編程和英語(yǔ)基礎(chǔ),都能看懂上面的語(yǔ)法,所以高級(jí)語(yǔ)言相比前面的機(jī)器語(yǔ)言和匯編語(yǔ)言有更強(qiáng)的可讀性、邏輯性。
二、結(jié)語(yǔ)
編程語(yǔ)言的發(fā)展歷程其實(shí)也就像咱們生活的發(fā)展歷程,從之前的一窮二白,到現(xiàn)在的安定幸福(或許有些同學(xué)被短視頻平臺(tái)或各種論壇帶節(jié)奏)。平哥也是在90年代初見(jiàn)證過(guò)交公糧的人,那時(shí)候的生活和現(xiàn)在簡(jiǎn)直天差地別,但無(wú)論怎樣,我們需要憶苦思甜。編程的世界也是如此,雖然現(xiàn)在有了各種高級(jí)語(yǔ)言,但我們不要忘記底層語(yǔ)言的作用性。沒(méi)有底層語(yǔ)言的支撐,也就無(wú)法升級(jí)到現(xiàn)在的高級(jí)語(yǔ)言,更沒(méi)有現(xiàn)在信息化時(shí)代的飛速發(fā)展。
除了上述介紹的三代編程語(yǔ)言之外,還有第四代面向問(wèn)題的語(yǔ)言,和為第五代人工智能領(lǐng)域設(shè)計(jì)的語(yǔ)言,平哥今天就不再過(guò)多闡述了。我們要想從應(yīng)用領(lǐng)域跨越到智能化領(lǐng)域,各位初學(xué)者還有很長(zhǎng)的一段路要走。