[CS] Chapter 3-1. 소스코드와 프로그래밍 언어
📚 참고: 강민철 지음, 혼자 공부하는 컴퓨터구조 + 운영체제
🧠 용어 정리
- 소스코드: 사람이 읽고 쓰는 고급 언어로 표현된 프로그램 코드
- 기계어(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 비트열로 표현된 실행 코드
- 어셈블리어: 기계 명령을 기호로 표현한 인간 친화적 표기
✅ 핵심 요약
- 코드는 결국 기계가 이해하는 비트열로 변환되어 실행된다.
- 컴파일은 사전 변환, 인터프리트는 실행 중 변환이다.
- 상황과 요구사항에 따라 두 방식을 혼합하여 사용한다.
📝 학습 노트 스캔
원본 필기 이미지
Leave a comment