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