編程語言要用到英語?
大致的思路就是:編程語言轉(zhuǎn)化為二進制機器碼,再把二進制機器碼轉(zhuǎn)化為高低電平輸入給芯片電路。這個問題是計算機原理的問題,編程語言如何被硬件芯片執(zhí)行?我們很多時候,聽過計算機只認識“0”和“1”,除了0和1之外的信息,又是如何被計算機理解執(zhí)行的呢?聊到這我想到了《易經(jīng)》“無極生太極,太極生兩儀”,“一生二、二生三,三生萬物”。挺有意思,0和1可以表示整個世界,和幾千年前我們中國哲學(xué)思想完全吻合。
如何做到呢?
1、編譯。編譯器把高級程序語言(英語)編譯為二進制可執(zhí)行文件,存儲到硬盤上。
2、加載。操作系統(tǒng)通過相應(yīng)的機制,把二進制加載到內(nèi)存中。
3、運行。CPU執(zhí)行指令。
好像說的和電路還是沒有什么關(guān)系呀?是的,我們沒有講明白這一點。“0”和“1”如何變成高低電平?
“0”和“1”如何變成高低電平?
我們回到打孔機時代,你的01010代碼,需要專職的程序錄入員將0和1用打孔和不打孔的方法,轉(zhuǎn)換為紙條上的一串孔洞。然后有孔的程序紙通過光照區(qū),有孔無孔轉(zhuǎn)換為光點和暗點,再通過光敏元件,轉(zhuǎn)化為高低電平。以后機器中就再也不會出現(xiàn)0和1,只有高低電平了。
可以說,錄入員之前是一個世界,高級語言也好,匯編語言也好,機器代碼也好,都是0101的二進制數(shù)字世界;光敏傳感器之后,都是高低電平的世界。錄入員+光電檢測完成了這種轉(zhuǎn)換。
現(xiàn)在的計算機,和打孔機時代的區(qū)別,只不過是輸入變成鍵盤了,按鍵接通和斷開代替了光線的有和無,在每個鍵下面的識別電路以后,就完全是高低電平的時代了,010已經(jīng)不存在了啊。01在哪里?在我們的頭腦中,在程序紙上,在鍵盤表面,在顯示器上,就是不在鍵盤以下的空間中。
結(jié)論:高級程序語言經(jīng)過編譯器的翻譯,變成二進制的機器語言,機器語言再通過按鍵的變量輸入變成高低電平信號,這樣就被芯片設(shè)別了。