sicp.io
커리큘럼으로 돌아가기

제5장 · 레지스터 기계로 계산하기

원서의 5개 절에 걸쳐 구성된 23개의 실행 가능한 수업입니다.

시작하기

제5.1절 · 레지스터 기계 설계하기

수업 6개

  1. 5.1.1컨트롤러 텍스트는 데이터 경로와 연산과 제어 이동을 이름 붙인다.학습하기
  2. 5.1.2컨트롤러는 유지하고 연산과 저장 표현만 바꾼다.학습하기
  3. 5.1.3컨트롤러 구간 하나가 여러 호출자로 돌아갈 수 있다.학습하기
  4. 5.1.4스택은 돌아온 뒤 해야 할 일을 기억한다.학습하기
  5. 5.1.5평가기의 제어가 레지스터와 레이블과 스택 규약이 된다.학습하기
  6. 5.1.6각 명령에는 데이터와 스택과 제어에 대한 명시적인 계약이 있다.학습하기

제5.2절 · 레지스터 기계 시뮬레이터

수업 6개

  1. 5.2.1레지스터는 바뀌는 값을 모두 명시한다.학습하기
  2. 5.2.2프로그램 카운터는 제어를 데이터로 만든다.학습하기
  3. 5.2.3프로그램 카운터는 조립된 명령을 실제 기계 실행으로 만든다.학습하기
  4. 5.2.4레이블 표는 이름을 명령 위치로 바꾼다.학습하기
  5. 5.2.5조립 단계는 명령 디스패치를 실행 루프 밖으로 옮길 수 있다.학습하기
  6. 5.2.6기계는 컨트롤러가 수행한 일을 직접 보고할 수 있다.학습하기

제5.3절 · 저장 공간 할당과 가비지 컬렉션

수업 3개

  1. 5.3.1순서쌍은 나란한 car·cdr 벡터를 가리키는 주소가 될 수 있다.학습하기
  2. 5.3.2살아 있는 셀을 복사하고 되풀이된 참조는 전달하며 쓰레기는 남겨 둔다.학습하기
  3. 5.3.3루트 집합은 도달 가능한 객체와 쓰이지 않는 할당을 나눈다.학습하기

제5.4절 · 명시적 제어 평가기

수업 0개

    제5.5절 · 컴파일

    수업 8개

    1. 5.5.1문법으로 디스패치하고 target과 linkage를 지키며 명령열 계약을 합성한다.학습하기
    2. 5.5.2실행이 시작되기 전에 소스 형식은 명령 태그가 된다.학습하기
    3. 5.5.3연산자를 먼저 컴파일하고 인자 순서를 보존한 뒤 apply 경계를 한 번 건넌다.학습하기
    4. 5.5.4다음 명령열이 아직 필요로 하는 레지스터만 저장한다.학습하기
    5. 5.5.5컴파일된 재귀 코드는 모든 호출과 복귀 이동을 명시한다.학습하기
    6. 5.5.6어휘 주소는 이름 검색을 두 인덱스로 바꾼다.학습하기
    7. 5.5.7하나의 apply 경계가 서로 다른 두 프로시저 표현을 연결한다.학습하기
    8. 5.5.8컴파일러는 일의 표현을 바꾼다.학습하기

    장 점검

    다음으로 넘어가기 전에 장의 핵심을 다시 연결합니다.

    복습하기