經過多年的發展,在完備的二進位制系統理論下,再加上諸多高手的不懈努力,計算機透過二進位制中“與”、“或”以及移位等運算,就能夠進行目前為止的全部運算了。
至於我們現階段可以在計算機上進行的玩遊戲看電影等活動,那個屬於多媒體的範疇,這裡不做過多討論。不過要插一句,多媒體的本質還是計算,只不過表現的形式頗為花哨。
日期:2014-08-06 10:04:45
剛剛我們看到的內容,是計算機中最底層的東西,在這一層中不管計算機怎麼玩,都不會涉及到編譯器的內容,但是在對這一層有了清晰明瞭的理解之後,我們才能更好的理解編譯器的作用。
在這個時候,一個非常有意思的問題就出來了:
基於計算機們玩的都是機器碼,那麼它們又是如何理解人類的意思進行運算,並將操作之後的結果反饋給我們的呢?
日期:2014-08-06 10:05:33
能夠幹這個事的,只有計算機中最為重要沒有之一的軟體——編譯器。
當我們想要計算機對數字“-71”進行運算時,我們只要需要在螢幕上輸入這個數字之後,就可以切換去看碟打遊戲了,因為接下來的工作將由編譯器全權處理。
編譯器首先讀取這個數,然後透過一定的運演算法則,將該數轉化為“10111000”的字串,然後匯入計算機儲存器。機器們這時看到這個字串就開始興奮了,這些代表作“高”、“低”的字元預示著它們開始有活幹了。接下來的事情大家都很清楚了,計算機運算完之後,將結果傳送至編譯器,然後編譯器又將這結果翻譯成人類能夠理解的語言反饋給我們。
日期:2014-08-06 10:05:58
相信到這裡,大家也應該看得出來了,編譯器實際就是幹了一件翻譯的工作,它完整無誤將人類的語言直接翻譯成計算機能夠理解的機器碼,同時又將計算機的機器碼翻譯成我們能夠理解的語言。
作為一個溝通人與機器的軟體,作為一個在硬體和軟體何中起到承上啟下左右的軟體,你說它能不重要嗎?
計算機發展到後來,編譯器的邊界已經很模糊,現在它跟作業系統基本上繫結在一起,幹著承上啟下的活,要弄清楚這一點,我們接下來看第二個問題。
日期:2014-08-06 10:06:41
編譯器和作業系統究竟是什麼關係?
上面我們說到,一個“-71”的數字可以被編譯器翻譯成“10111000”的字串,然後這些代表著高低電壓的“0”、“1”就被放在儲存單元中,最終實現對計算機硬體的控制。
在這個均為機器碼(即二進位制編碼)的環境中,最為底層的原始編譯器就出現了。原始編譯器用純機器碼編寫,並且以人工的方式輸入到計算機中。因為原始編譯器本身就是機器碼,所以自然就不需要進行編譯,直接就能用。它可以接收一定規則的語言,並將這些按一定規則編寫的程式翻譯成機器碼。
日期:2014-08-06 10:07:11
因為原始編譯器是最初由人工的方式固化在儲存單元中的,所以在某種意義上來說,在它那個層次,根本上就不存在任何執行環境。但是因為它的存在,所以在這個基礎上,就有了弄出一個執行環境(作業系統)的可能。於是某些高手的努力下,一個極小型的作業系統就誕生了,這個作業系統透過原始編譯器可以很完備地控制計算機硬體。雖然這個作業系統做得十分簡陋萬分差勁,並且可供提供的資源也極為有限,但不影響我們在這個作業系統提供的執行環境中弄一個高階點的編譯器(層次比原始編譯器高一點)。有了這個高階點的編譯器後,我們就可以在此基礎上又弄一個好一點的作業系統。這樣週而復始的玩下去,以粗糙的原始編譯器為起點,弄個像Windows這樣拉風的作業系統也不是沒可能,有了Windows這樣的作業系統,在這個平臺上的什麼C語言編譯器、Java語言編譯器也就更好弄了。
這時候我估計大家已經明白了,理論上編譯器確實比作業系統重要那麼一點點,更為基礎那麼一點點。經過多年的發展,現在的作業系統的發展已經遠遠的超越了編譯器的地位,並且由於編譯器這玩意大家平時也不怎麼玩(專業人士除外),所以在人們的概念中也就被慢慢淡化。客觀的說,作業系統和編譯器其實是你中有我,我中有你的局面,大家相輔相成,少了誰都不行。
好了。
非常感謝大家能夠讀完這比較枯燥乏味的一段。
日期:2014-08-06 10:08:31
大家如果看到這裡還沒有感到思維凌亂的,我建議你還是去學學計算機吧,這個學科絕對是非常適合像你這種邏輯性比較強,雖然連我都不知道胡言亂語了些什麼,但是你還是看得懂的人才。
當然如果現在已經思維凌亂到鹿馬不分境界的朋友也不用擔心,因為到這下你們終於可以鬆一口氣了。目前為止,在本人有限的學識中,已認為將編譯器以及作業系統的內容說明白了。
雖然從總體來看,這段內容是有那麼一點言簡意賅。但是請相信我,就為了以上不超過三千字的內容,我足足蛋疼了好幾個月。在那段非常時間裡,一個月總有那麼二十幾天不想去上班,隨時隨地悶頭髮呆思考這些問題。
當然即便是我費了那麼大的功夫也不能表示以上所說都是正確無誤的。基於本人時間有限,智商有限,最重要的是天賦也有限,能理解到並且能表述出來的也就只有那麼多了,歡飲大家不吝賜教(這個不是場面話,百分百的真心誠意)。
日期:2014-08-06 10:09:25
基於個人計算機早期作業系統不是太完善,編譯器至關重要的地位也就完全體現出來了。而蓋茨和艾倫出道之初就牢牢的把握個人計算機中至關重要的一環,不管從什麼方面看,他們都是在從事一樣極有前途的事業。
當初艾倫義無反顧的退學踏入這個領域,在發現遍地金礦的情況下不顧一切的跑到哈佛大學,打算跟蓋茨一起分享這一切,在蓋茨百般拒絕之後仍然不離不棄守在他旁邊,期待他的回心轉意。
這一瞬間我豁然明白了,艾倫對這個初中時代就在一起的好基友,絕對是真愛。
日期:2014-08-06 10:10:35
或許是生不逢時,在那個智慧財產權(尤其是軟體版權)極為不清晰的年代,雖然艾倫和蓋茨能力超群,也非常努力,但仍然抗爭不過命運,微軟猶如一艘搖盪在驚風駭浪之間的小船,艱難度日,雖然一直期待著乘風破浪的一天,但是也不知道這一天會什麼時候到來。
所以在此之前,他們只能夠耐心等待。
在這段時間中,他們不斷的完善BASIC編譯器,同時BASIC編譯器被移植到不同款的個人計算機上。雖然這些功能出色的編譯器並沒有給微軟帶來豐厚的收入,但是伴隨的盜版的不斷傳播,微軟的名氣也越來越大。
直到有一天蓋茨和艾倫突然發現,他們已經非常有名了。他們的名氣之大,大到有一天居然接到IT領域的巨無霸IBM打來的一個電話,問問微軟是否能為IBM的個人計算機打造一款作業系統!