人生苦短,我用Python!
大家好稳诚,我是metahuber棕所。
本系列教程是Python的入門教程,本篇文章是此教程的第一篇辨宠,希望大家多多關(guān)注遗锣。
在學(xué)習(xí)Python之前,我們首先了解下什么是編程語言嗤形。
說到編程語言精偿,還需要從程序說起。
其實(shí)赋兵,程序就是一系列指令笔咽,計(jì)算機(jī)之所以能夠工作,根本的原因是它能夠識(shí)別人類發(fā)出的指令霹期。目前你看到關(guān)于計(jì)算機(jī)的所有內(nèi)容叶组,包括網(wǎng)站、視頻历造、搜索引擎等等甩十,歸根結(jié)底都是計(jì)算機(jī)執(zhí)行人類指令產(chǎn)生的結(jié)果船庇。
也就是說,計(jì)算機(jī)本身是什么也做不了的侣监,只有人類編寫好指令后鸭轮,計(jì)算機(jī)按部就班地去執(zhí)行指令,才能真正工作起來橄霉,從而產(chǎn)生有價(jià)值的內(nèi)容窃爷。
所以,你也許也發(fā)現(xiàn)了酪劫,這其中最關(guān)鍵的就是那一系列指令串吞鸭,而我們?nèi)祟惥帉懼噶畲倪^程就是稱為編程。
所謂編程語言覆糟,那“語言”又是什么東西刻剥?
眾所周知,計(jì)算機(jī)只認(rèn)識(shí)0和1這種二進(jìn)制數(shù)字滩字,我們可以稱之為機(jī)器碼造虏,也就是機(jī)器語言。這也意味著麦箍,人類需要將指令編寫為機(jī)器語言漓藕,才能夠讓計(jì)算機(jī)工作。但機(jī)器語言與人類語言差異太大挟裂,不符合人類的語言習(xí)慣享钞,人類想要閱讀并理解機(jī)器碼是相當(dāng)困難的。
于是乎诀蓉,計(jì)算機(jī)科學(xué)家們想到個(gè)折中的辦法栗竖,他們?cè)跈C(jī)器語言和人類語言之間做了一層翻譯器。這個(gè)翻譯器十分關(guān)鍵渠啤,我們后續(xù)文章還會(huì)提到狐肢。有了這個(gè)翻譯器,人類就可以用習(xí)慣上的人類語言邏輯去編寫代碼沥曹,編寫完成后份名,翻譯器再把代碼翻譯成機(jī)器語言,這樣妓美,人類與機(jī)器之間就可以順暢交流了僵腺!
當(dāng)這套解決方案產(chǎn)生后,人們很快就在上世紀(jì)50年代設(shè)計(jì)出了一套編程語言壶栋,也就是匯編語言想邦,它也是第二代計(jì)算機(jī)語言(第一代就是機(jī)器碼)。匯編語言設(shè)計(jì)了一套人類易于理解和記憶的縮寫單詞委刘,用來代替一些特定的指令丧没,通過這種方法鹰椒,人們就很容易去閱讀和理解程序執(zhí)行的功能了,對(duì)現(xiàn)有程序的bug修復(fù)和運(yùn)行維護(hù)也都變得更加簡(jiǎn)單方便了呕童。
.section .text
.global _start
_start:
.ARM
add r3, pc, #1
bx r3
.THUMB
mov r0, #2
mov r1, #1
sub r2, r2, r2
mov r7, #200
add r7, #81
svc #1
mov r4, r0
adr r1, struct_addr
strb r2, [r1, #1]
strb r2, [r1, #4]
strb r2, [r1, #5]
strb r2, [r1, #6]
strb r2, [r1, #7]
mov r2, #16
add r7, #1
svc #1
nop
匯編語言
后來隨著計(jì)算機(jī)的發(fā)展漆际,匯編語言漸漸滿足不了不同領(lǐng)域的編程要求和軟件功能,于是C語言夺饲、C++奸汇、Java這種高級(jí)語言相繼橫空出世,這些語言的語法往声、結(jié)構(gòu)相對(duì)于匯編語言更加成熟擂找,也更易于理解了。
編程語言發(fā)展到現(xiàn)在浩销,計(jì)算機(jī)科學(xué)家們已經(jīng)開發(fā)了成千上百種編程語言贯涎,而且隨著時(shí)間的演變,這些編程語言又產(chǎn)生了很多不同的版本慢洋。但無論是什么編程語言塘雳,也無論有多少個(gè)版本,雖然它們?cè)诩?xì)節(jié)上有所不同普筹,但它們的核心邏輯都是相同的败明。這也是為什么當(dāng)程序員學(xué)會(huì)一門編程語言后,再學(xué)習(xí)其他語言會(huì)非程溃快的原因妻顶。
說到編程語言的核心,具體來講就是編程語言制定了一套規(guī)則蜒车,在這套規(guī)則下讳嘱,每種編程語言都擁有固定的關(guān)鍵字(縮寫單詞)、使用格式(稱為語法)醇王,以及精確的含義(稱為語義)呢燥。當(dāng)然崭添,編程語言肯定沒有你學(xué)習(xí)一門外語那么困難寓娩,這點(diǎn)你不必?fù)?dān)心。
在學(xué)習(xí)Python這門編程語言之前呼渣,你可能也了解過其他編程語言棘伴,比如C,C++屁置,Java等焊夸,就像我之前所說的,無論是什么語言蓝角,核心邏輯都是一樣的阱穗,無非都是通過翻譯器將這類語言翻譯成可執(zhí)行的機(jī)器語言饭冬。那么這套翻譯器是如何設(shè)計(jì)的,它又是如何工作的揪阶,這一點(diǎn)我們下個(gè)章節(jié)會(huì)進(jìn)行詳細(xì)介紹昌抠。