最近您宪,在計算機(jī)科學(xué)中坏挠,我發(fā)現(xiàn)了一個概念——抽象谓晌,這個概念大家應(yīng)該都有所耳聞,它通常會被我們與藝術(shù)中的抽象畫聯(lián)系起來癞揉,而我們經(jīng)常能夠聽到的纸肉,也就是這個詞。抽象派的詞我不多做解釋喊熟,但是在計算機(jī)中柏肪,抽象的使用是計算機(jī)科學(xué)中最為重要的概念之一,它描述了現(xiàn)實與表象之間的關(guān)系芥牌,例如為一組函數(shù)規(guī)定一個簡單的應(yīng)用程序接口就是一個很好的習(xí)慣烦味,可以使程序員不用了解它內(nèi)部的工作便可以實際的使用這些代碼。
當(dāng)然,沒有這方面的知識的人理解起來會很費(fèi)勁谬俄,我們來解釋一下柏靶。計算機(jī)系統(tǒng)中有很多的抽象,例如指令架構(gòu)就提供了對實際處理器硬件的抽象溃论。我們都知道屎蜓,計算機(jī)有一個中央處理單元,也就是處理器钥勋,我們說的CPU炬转,它是處理計算我們計算機(jī)中的指令的硬件,可以說是計算機(jī)的核心算灸,就如同我們?nèi)祟惖拇竽X扼劈。而處理器,看上去就是按照一個非常簡單的指令執(zhí)行模型來操作的菲驴,而這個模型則是有指令集架構(gòu)決定的荐吵。在這個簡單的指令集架構(gòu)中,處理器在指令的要求下會執(zhí)行:加載赊瞬、存儲捍靠、操作和跳轉(zhuǎn)這四個操作。它們看起來都是對單個或多個字或字節(jié)(它們是組成程序的單位)進(jìn)行操作森逮。
在這個指令集架構(gòu)中,我們可以淺顯的認(rèn)為處理器是按照這些步驟執(zhí)行磁携,但實際上褒侧,處理器硬件使用了非常復(fù)雜的機(jī)制來加速程序的執(zhí)行。因此人們將處理器的指令集架構(gòu)與處理器的微體系結(jié)構(gòu)區(qū)分開來谊迄。它們兩個一個描述了每條機(jī)器代碼的效果闷供,另一個描述了處理器實際上是如何實現(xiàn)的。
這是否就啟發(fā)了我們一個簡單的道理统诺,我們的或者說我們認(rèn)為的世界是由我們所觀測到的事情來組成的歪脏,但是實際上它并不是,而是由一個個原因構(gòu)成粮呢,而我們觀測到的是原因的結(jié)果婿失,我們忽略了過程。但事實上啄寡,這些過程對我們的影響并不大豪硅,但是知道它卻絕對有大用。