컴퓨터에서 소스 코드가 명령어로 변환되는 과정
1. 소스 코드와 명령어
- 소스 코드는 개발자가 작성한 코드로, 컴퓨터가 직접 이해할 수 없습니다.
- 컴퓨터가 이해하는 명령어는 0과 1로 이루어진 저급 언어로 변환되어야 합니다.

2. 고급 언어와 저급 언어
-
고급 언어 (High-level Language)
- 사람이 이해하기 쉽게 작성된 프로그래밍 언어입니다.
- 예시: C, C++, Python, Java
-
저급 언어 (Low-level Language)
- 컴퓨터가 직접 이해할 수 있는 언어로, 크게 두 가지로 나뉩니다:
- 기계어 (Machine Language): 0과 1로 이루어진 명령어.
- 어셈블리어 (Assembly Language): 사람이 읽기 쉽게 변환된 기계어.

3. 저급 언어의 종류
-
기계어 (Machine Language)
- 컴퓨터가 직접 이해하는 0과 1로 이루어진 명령어.
- 사람이 읽고 쓰기 어려움.
-
어셈블리어 (Assembly Language)
- 기계어를 사람이 읽고 쓰기 쉽게 변환한 언어.
- 예시:
MOV, ADD, SUB와 같은 명령어.

4. 고급 언어의 변환 과정
1) 컴파일 언어 (Compile Language)

2) 인터프리터 언어 (Interpreter Language)
-
소스 코드가 한 줄씩 인터프리터에 의해 해석되고 실행됩니다.
-
즉각적인 실행이 가능하지만, 전체 코드가 저급 언어로 완전히 변환되지 않습니다.
-
예시 언어: Python, JavaScript
-
인터프리터 과정:
- 소스 코드 작성.
- 인터프리터가 한 줄씩 소스 코드를 해석하고 즉시 실행.

5. 차이점 비교
| 구분 | 컴파일 언어 | 인터프리터 언어 |
|---|
| 변환 방식 | 한 번에 전체 코드 변환 | 한 줄씩 해석 및 실행 |
| 실행 속도 | 빠름 | 느림 |
| 오류 처리 | 코드 전체 검사 후 변환 중단 | 오류가 발생한 지점까지만 실행 |
| 예시 언어 | C, C++, Java | Python, JavaScript |

- 일부 언어(예: Java, Python)는 컴파일 언어와 인터프리터 언어의 특징을 모두 가집니다.
- 소스 코드를 바이트 코드(Byte Code)라는 중간 코드로 변환한 후, 인터프리터가 이를 실행합니다.
- Java: JVM(Java Virtual Machine)이 바이트 코드를 실행.
- Python: Python Interpreter가 바이트 코드를 실행.
7. 예시로 살펴보기
-
컴파일 언어 예시 (C)
- 작성된 C 코드가 컴파일러에 의해 어셈블리어로 변환되고, 최종적으로 기계어로 변환되어 실행.
-
인터프리터 언어 예시 (Python)
- Python 코드가 바이트 코드로 변환되고, 인터프리터가 이를 읽어 실행.
8. 고급 언어의 두 가지 방식은 절대적이지 않음
- 모든 언어가 컴파일 언어나 인터프리터 언어로 명확히 구분되지 않습니다.
- 일부 언어는 두 가지 방식 모두 지원.
- 예: Python은 인터프리터 언어지만, 컴파일 과정을 통해 바이트 코드로 변환하기도 합니다.
9. 요약
- 고급 언어는 컴퓨터가 직접 이해하지 못하기 때문에 저급 언어로 변환되어야 합니다.
- 변환 방식은 컴파일과 인터프리터 두 가지가 있으며, 각 방식은 장단점을 가집니다.
- 개발자는 언어의 특성과 변환 방식을 이해하여 적절한 언어를 선택해야 합니다.
👉 이제 컴퓨터가 소스 코드를 어떻게 명령어로 변환하는지 이해하셨다면, 더 깊은 프로그래밍 학습으로 나아갈 수 있습니다! 😊