2010-03-08 7 views
2

많은 질문이있는 비 컴퓨터 과학 전공 학생에게 설명하려고합니다.이진 트리 탐색 추상화

(1) 무엇이 나무를 가로 지르는가? 그냥 논리 또는 실제 꺼져 스위치 회로 보드를 여행 1s 및 0s 생성합니까? 이 트리와 노드 사이에 CPU/메모리가 어디에 있습니까?

(2) 1과 0이면 회로가 회선을 이해하는 방법 p = p.getLeft();

나는 구글이나 위키를 검색했다.

+0

계산의 전기 및 반도체 토대와 그 언어와 고수준 언어 컴파일러 사이의 모든 추상화 레이어를 즉석에서 찾을 방법이 없습니다! 하지만 "컴퓨터 작동 방식"과 같은 편집 과정을 거친 발행 된 책에서 가장 일반적인 개요를 찾을 수 있습니다. http://www.amazon.com/gp/product/0789736136/ – HostileFork

+0

+1, funneh ! – hop

답변

2

트리는 우리가 0s와 1s 시퀀스의 특정 집합 (CPU의 레지스터, CPU의 캐시, 메모리 등에 있음) 위에 놓는 추상화입니다. 트리 탐색은 트리를 탐색하는 데 필요한 논리를 캡슐화하는 일련의 CPU 명령어입니다.

회로가 라인 p = p.getLeft();을 이해하는 방법에 대해 컴파일러는 해당 명령어를 CPU가 이해하고 실행하는 필요한 기계 명령어로 변환하는 작업을 수행했습니다.

솔직히 여기에서 추상적으로 생각하는 것이 가장 좋습니다. 만약 당신이 이진 트리 트래 버설을 이해하고 싶다면 추상화 수준에서 생각해보십시오. 0s와 1s 수준에서 컴퓨터가 어떻게 작동하는지 이해하려면 이진 트리를 잊어 버리고 대신 컴퓨터 아키텍처를 연구하십시오.

마지막으로 0과 1도 실제 메커니즘을 추상화 한 것입니다.

+0

흠, 나는 그 사이에 많은 추상화 레이어가 있다고 말할 것입니다. JVM, JIT, OS 실행 파일, 메모리 관리에 대해 잊지 말고 ... 그 학생이 정말로 관심이 있다면 그를 어셈블러 또는 일부 레지스트리로 가져 오십시오. 명령어 코드. –

+0

@Gabriel Ščerbák : 예를 들어 오늘날의 코어 2 듀오 및 기타 코어 인텔 및 AMD CPU 등에서도 "x86 어셈블리"조차도 또 다른 추상화 된 레이어라는 것을 잊지 마십시오. 현대 CPU는 실제로 hackish 추상화 된 계층을 가진 RISC와 매우 유사하므로 조상과 어느 정도 조화를 이룹니다. 따라서 우리의 "어셈블리 CISC 명령어"는 일반적으로 여러 RISC 명령어로 번역되지만 대개 CISC *처럼 프로그래밍되었지만 현재 CPU가 CISC라고 생각하는 사람은 거의 없습니다. – SyntaxT3rr0r

+0

그래, 나는 그것에 대해 들었다. 실제로 마이크로 프로그래밍은 그것을 더욱 재미있게 만든다 ... CS는 abstractions에 관한 모든 것 –