serversim
학습시뮬레이터템플릿가격
…
…
메뉴 열기
학습↗시뮬레이터↗템플릿↗가격↗
내 Documents문서
전체 목차/1장/1.11 / 40

1.1 · 언어와 번역

프로그래밍 언어를 직접 발명해 본다면?

CPU가 0과 1만 안다면 우리는 어떻게 이름과 함수를 쓸 수 있을까요?

CPU는 영리한 독자가 아니라, 정해진 번호의 심부름만 아주 빠르게 반복하는 일꾼입니다.

먼저 생활 비유

리모컨 약속 만들기

1번은 전원, 2번은 소리 키우기처럼 번호와 행동을 약속하면 작은 명령 집합이 됩니다. 사람이 기억하기 쉬운 이름을 붙이면 어셈블리어가 됩니다.

컴퓨터 예제로 바꾸기

두 수를 더해 저장하기

total = price + tax

사람에게는 한 문장이지만 CPU에게는 꺼내기, 더하기, 저장하기 같은 여러 명령으로 풀어야 합니다.

직접 움직여 보기1 / 5

지금 일어나는 변화

켜짐·꺼짐

전기 신호 두 상태를 0과 1로 약속합니다.

번역 파이프라인켜짐·꺼짐단계 1기계 명령단계 2어셈블리어단계 3고급 언어단계 4실행단계 5코드의 뜻현재: 켜짐·꺼짐

이 그림에서 기억할 한 문장

언어가 높아질수록 CPU가 달라지는 것이 아니라, 사람이 세부 명령을 덜 직접 써도 됩니다.

현재 상태

이동하는 것
코드의 뜻
현재 위치
켜짐·꺼짐
다음 위치
기계 명령

30초 확인 문제

고급 언어를 쓰면 CPU가 소스 코드를 직접 이해할까요?

처음 보는 용어 두 개

기계어
CPU가 직접 실행하도록 번호로 약속된 명령
추상화
아래의 복잡한 세부 사항을 이름 하나 뒤에 감추는 것

이 절을 다 읽었다면

언어가 높아질수록 CPU가 달라지는 것이 아니라, 사람이 세부 명령을 덜 직접 써도 됩니다.

다음 절 →

1.2 컴파일러는 어떻게 코드를 번역할까?