CS (Computer Science)

[개발 공부 115일차] 컴퓨터 구조 | 컴파일, 인터프리트

MOLLY_ 2024. 10. 10. 23:50
728x90

< 목차 >

0. 들어가며

1. 저급 언어의 두 종류

2. 고급 언어 → 저급 언어로 변환되는 대표적인 방식

3. 컴파일과 인터프리트의 차이

4. 명령어 관찰하기

 

 

0. 들어가며

컴퓨터는 명령어를 이해한다.

소스코드는 실행되기 전, 명령어(+ 데이터)로 변환되어 실행된다.

 

  • 소스코드: 사람(개발자)가 이해하기 편한 언어 [고급 언어]
  • 명령어 & 데이터: 컴퓨터가 이해하기 편한 언어 [저급 언어]

 

즉, 고급 언어로 작성된 소스코드는 내부적으로 저급 언어로 구성된 명령어와 데이터로 변환된다.

 

 

1. 저급 언어의 두 종류

  1. 기계어: 컴퓨터(CPU)가 이해하는 언어
  2. 어셈블리어: 기계어를 사람이 이해하기 편하게 변환시킨 언어

 

CPU 혹은 컴파일러의 종류에 따라서, 변환되는 명령어의 종류(생김새)가 달라질 수 있다.

 

 

2. 고급 언어 → 저급 언어로 변환되는 대표적인 방식

가장 대표적인 방식일 뿐, 모든 언어가 이 2가지 언어로 변환되는 것은 아니다.

 

  1. 컴파일
  2. 인터프리트

 

참고로, 컴파일 언어의 특성과 인터프리트 언어의 특성을 모두 갖춘 언어도 있다. 대표적으로는 Java가 있다.

 

그럼 위 2가지 방식에 대해 좀 더 알아보도록 하자

 

 

3. 컴파일과 인터프리트의 차이

컴파일

: 소스코드 ‘전체’가 컴파일러*에 의해 검사 및 목적코드(object code)로 변환

 

  • 대표적인 예: C, C++, Rust

 

👾 컴파일러(compiler)

: 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램

e.g. gcc, clang, Visual Studio

 

 

인터프리트

: 소스코드를 ‘1줄씩인터프리터에 의해 검사 및 목적코드로 변환

 

  • 대표적인 예: Python, JavaScript

 

그렇다면, 컴파일과 인터프리트 방식 중 어떤 게 더 성능이 좋을까?

컴파일 방식이 더 좋다. 한 줄씩 실행해야 하는 인터프리트 방식보다 한 번에 전부 실행해버리는 컴파일이 더 좋다고 알려져 있다고 한다.

 

 

4. 명령어 관찰하기

왼쪽: C언어 / 오른쪽: 인터프리터

 

인터프리터의 (왼쪽)파란색 글자는 명령어, (오른쪽)초록색 글자는 명령어의 대상

 

위 2개의 비교와 같이, 같은 프로그래밍 언어라도 CPU의 종류에 따라서 달라질 수 있다.

 

 

 

728x90