我試圖向非計算機科學專業的學生解釋很多問題。二叉樹遍歷抽象
(1)什麼遍歷樹?它僅僅是邏輯或實際關斷開關產生1s和0s行走電路板?這棵樹和節點在哪裏存在CPU /內存之間? (2)如果它是1s和0s電路如何理解線,例如p = p.getLeft();
我說搜索google或wiki。
我試圖向非計算機科學專業的學生解釋很多問題。二叉樹遍歷抽象
(1)什麼遍歷樹?它僅僅是邏輯或實際關斷開關產生1s和0s行走電路板?這棵樹和節點在哪裏存在CPU /內存之間? (2)如果它是1s和0s電路如何理解線,例如p = p.getLeft();
我說搜索google或wiki。
樹是一種抽象,我們把它放在可以在任何地方(在CPU的寄存器,在CPU的緩存中,在內存中等)的0和1的序列的特定集合之上。這種遍歷是一系列CPU指令,封裝了遍歷樹所必需的邏輯。
至於電路如何理解行p = p.getLeft();
,編譯器已經完成了將該指令轉譯爲CPU理解並執行的必要機器指令的工作。
老實說,最好在這裏抽象地思考。如果您想了解二叉樹遍歷,請考慮這個抽象層次。如果您想了解計算機在0和1級別的工作方式,請忘記二叉樹並學習計算機體系結構。
最後要說明的是,0和1也是真正機制的抽象。
嗯,我會說有很多層之間的抽象,不要忘了JVM,JIT,OS預傳的可執行文件,內存管理... 如果那個學生真的感興趣,試着給他帶來彙編程序甚至一些註冊表指令代碼。 – 2010-03-08 21:45:01
@GabrielŠčerbák:不要忘記,即使是「x86彙編」,例如在今天的Core 2 Duo以及Intel和AMD CPU等等也是另一個抽象層。現代CPU實際上更像是RISC,它具有一個黑客抽象層,因此他們或多或少地像他們的祖先一樣「工作」。因此,我們的每個「彙編CISC指令」通常都會翻譯成幾條RISC指令,但幾乎沒有人知道這一點,並且認爲當前的CPU是CISC,儘管它們只是*編程爲CISC *,但它們不是。 – SyntaxT3rr0r 2010-03-08 23:32:32
是的,我聽說過,實際上微編程使它更加有趣... CS是關於抽象 – 2010-03-08 23:51:56
有沒有即時的方法來挖掘計算的電氣和半導體基礎以及該語言和高級語言編譯器之間的所有抽象層次!但是,您可能會在已出版的書籍中找到最佳的總體概述,這篇書籍已經過編輯過程,如「電腦工作原理」http://www.amazon.com/gp/product/0789736136/ – HostileFork 2010-03-08 21:49:00
+1,teh funneh ! – hop 2010-03-08 21:49:11