2010-03-08 4 views
2

Я пытаюсь объяснить не-компьютерную науку крупного студента со многими вопросами.Двоичная абстракция обхода дерева

(1) Что пересекает дерево? Является ли это просто логическим или фактическим в выключенном переключателе, генерирует 1 и 0, идущие по печатной плате? где это дерево и узел существуют между процессором/памятью?

(2) Если это 1 с и 0, КАК цепи понимают линию, например, p = p.getLeft();

Я сказал, что вы ищете google или wiki.

+0

Невозможно мгновенно вычислить электрические и полупроводниковые основы вычислений И все слои абстракции между этими и высокоуровневыми компиляторами языка! Но вы, вероятно, найдете лучший общий обзор в опубликованной книге, которая прошла через редакционный процесс, что-то вроде «Как работают компьютеры» http://www.amazon.com/gp/product/0789736136/ – HostileFork

+0

+1, т. Е. Funneh ! – hop

ответ

2

Дерево - это абстракция, которую мы ставим поверх определенной последовательности последовательностей 0 и 1, которые могут быть где угодно (в регистре процессора, в кеше ЦП, в памяти и т. Д.). Обход такой последовательности - последовательность инструкций ЦП, которые инкапсулируют логику, необходимую для пересечения дерева.

Что касается схем, понимающих линию p = p.getLeft();, то компилятор выполнил задачу перевода этой инструкции на необходимые машинные инструкции, которые CPU понимает и выполняет.

Честно говоря, лучше всего здесь абстрагироваться. Если вы хотите понять обход бинарного дерева, подумайте об этом уровне абстракций. Если вы хотите понять, как компьютеры работают на уровне 0 и 1, забудьте о бинарных деревьях и изучите компьютерную архитектуру.

Наконец, обратите внимание, что 0s и 1s также являются абстракцией по истинному механизму.

+0

hmm, я бы сказал, что между абстракциями много слоев, не забывайте о JVM, JIT, ОС, префикс исполняемых файлов, управление памятью ... Если этот ученик действительно заинтересован, попробуйте привести его ассемблер или даже какой-нибудь реестр код инструкции. –

+0

@Gabriel Ščerbák: и не забывайте, что даже «сборка x86», например, на сегодняшнем Core 2 Duo и whatnots Intel и AMD cpus и т. Д. Является еще одним абстрактным слоем. Современные процессоры действительно больше похожи на RISC, у которых есть хакерский абстрактный слой, чтобы они «работали» более или менее как их предки. Таким образом, каждая из наших «инструкций CISC по сбору» обычно переводится в несколько инструкций RISC, но вряд ли кто-нибудь это знает и думает, что текущие процессоры - это CISC, хотя они просто запрограммированы так, как если бы они были CISCs *, но это не так. – SyntaxT3rr0r

+0

Да, я слышал об этом, на самом деле микропрограммирование делает его еще более интересным ... CS - все об абстракциях –

Смежные вопросы