이 책은 Nand라는 가장 기초적인 논리 게이트에서 시작해서 테트리스를 포함한 그 어떤 프로그램이라도 실행할 수 있는 범용 컴퓨터 시스템을 직접 만들어 보는 여정을 담고 있다. 12개 장에 걸친 프로젝트를 통해 독자들이 단순하지만 강력한 컴퓨터 시스템의 하드웨어 플랫폼과 소프트웨어 계층 구조를 단계적으로 구현할 수 있도록 안내한다. 독자들은 이 과정을 통해 하드웨어, 아키텍처, 운영체제, 프로그래밍 언어, 컴파일러, 데이터 구조 및 알고리즘, 소프트웨어 엔지니어링에 대한 실무 지식을 얻게 된다. 또한 이렇게 하나씩 쌓아 올리는 방식을 통해 독자들은 컴퓨터 과학 지식의 핵심적인 부분을 이해하고, 주요 이론 및 응용 기술을 하나의 틀로 통합할 수 있다.
Contents
I부 하드웨어
1장 불 논리
1.1 불 대수
1.2 논리 게이트
1.3 하드웨어 구성
1.4 명세
1.5 구현
1.6 프로젝트
1.7 정리
2장 불 연산
2.1 산술 연산
2.2 2진수
2.3 2진 덧셈
2.4 부호가 있는 2진수
2.5 명세
2.6 구현
2.7 프로젝트
2.8 정리
3장 메모리
3.1 메모리 장치
3.2 순차 논리
3.3 명세
3.4 구현
3.5 프로젝트
3.6 정리
4장 기계어
4.1 기계어: 개요
4.2 핵 기계어
4.3 핵 프로그래밍
4.4 프로젝트
4.5 정리
5장 컴퓨터 아키텍처
5.1 컴퓨터 아키텍처 기초
5.2 핵 하드웨어 플랫폼: 명세
5.3 구현
5.4 프로젝트
5.5 정리
6장 어셈블러
6.1 배경
6.2 핵 기계어 명세
6.3 어셈블리-2진 코드 번역
6.4 구현
6.5 프로젝트
6.6 정리
II부 소프트웨어
7장 가상 머신 I: 프로세싱
7.1 가상 머신 패러다임
7.2 스택 머신
7.3 VM 명세, 파트 I
7.4 구현
7.5 프로젝트
7.6 정리
8장 가상 머신 II: 제어
8.1 고수준 마법
8.2 분기
8.3 함수
8.4 VM 명세, 파트 II
8.5 구현
8.6 프로젝트
8.7 정리
9장 고수준 언어
9.1 예제
9.2 잭 언어 명세
9.3 잭 응용프로그램 만들기
9.4 프로젝트
9.5 정리
10장 컴파일러 I: 구문 분석
10.1 배경
10.2 명세
10.3 구현
10.4 프로젝트
10.5 정리
11장 컴파일러 II: 코드 생성
11.1 코드 생성
11.2 명세
11.3 구현
11.4 프로젝트
11.5 정리
12장 운영체제
12.1 배경
12.2 잭 OS 명세
12.3 구현
12.4 프로젝트
12.5 정리
13장 후기: 더 재미있는 여행
부록 1 불 함수 합성
부록 2 하드웨어 기술 언어
부록 3 테스트 기술 언어
부록 4 핵 칩 세트
부록 5 핵 문자 집합
부록 6 잭 OS API
Author
노암 니산,시몬 쇼켄,김진홍
예루살렘 히브루대학교(Hebrew University of Jerusalem)의 컴퓨터 과학 및 공학과 교수다.
예루살렘 히브루대학교(Hebrew University of Jerusalem)의 컴퓨터 과학 및 공학과 교수다.