📚 참고: 강민철 지음, 혼자 공부하는 컴퓨터구조 + 운영체제

🧠 용어 정리

  • 소스코드: 사람이 읽고 쓰는 고급 언어로 표현된 프로그램 코드
  • 기계어(machine code): 0과 1의 비트로 구성된 명령어 집합
  • 어셈블리어(assembly): 기계어를 사람이 읽기 쉽게 기호로 표현한 언어

🏷️ 고급언어 vs 저급언어

  • 고급언어(High-level language): 사람이 이해하고 작성하기 쉬운 언어
    예) C, C++, Java, Python, Swift …

  • 저급언어(Low-level language): 컴퓨터가 곧바로 실행하기 쉬운 언어
    예) 어셈블리, 기계어

고급언어로 작성한 코드는 결국 “변환” 과정을 거쳐 저급언어(기계어)로 실행됩니다.

🔁 두 가지 변환 방식

1) 컴파일(compile) 방식

  • 전체 소스코드를 한 번에 분석·검사해 실행 파일(기계어)로 변환
  • 도구: 컴파일러(compiler)
  • 특징: 사전 검증이 가능해 실행 속도가 빠른 편

2) 인터프리트(interpret) 방식

  • 소스코드를 한 줄씩 읽어 즉시 변환하고 곧바로 실행
  • 도구: 인터프리터(interpreter)
  • 특징: 즉각 실행·디버깅이 쉬움, 반복 실행 시 오버헤드 존재

실제로는 언어·런타임마다 혼합형(바이트코드+JIT 등)도 다양하게 사용됩니다.

🧩 전체 흐름 한눈에 보기

고급언어 소스 ──(컴파일/인터프리트)──> 저급언어(기계어) ──> CPU 실행

변환 산출물

  • 기계어: 0과 1 비트열로 표현된 실행 코드
  • 어셈블리어: 기계 명령을 기호로 표현한 인간 친화적 표기

✅ 핵심 요약

  • 코드는 결국 기계가 이해하는 비트열로 변환되어 실행된다.
  • 컴파일은 사전 변환, 인터프리트는 실행 중 변환이다.
  • 상황과 요구사항에 따라 두 방식을 혼합하여 사용한다.

📝 학습 노트 스캔

원본 필기 이미지

Ch3-1 필기

Tags:

Categories:

Updated:

Leave a comment