[TIL] 컴파일러와 인터프리터

hello__0·2025년 5월 14일
0

TIL

목록 보기
13/13

컴파일러와 인터프리터

프로그래밍 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정에 관여하는 프로그램

기계어
: 컴퓨터(CPU)가 별다른 해석(컴파일) 없이 읽을 수 있는 프로그래밍 언어
0과 1 (이진수)로 표현된다.

컴파일러

  • 전체 변환 : 소스 코드의 전체를 읽어서 한번에 기계어로 변환
    변환 과정을 거친 후, 생성된 기계어 코드를 실행
  • 속도 : 컴파일 과정은 시간이 걸리지만, 변환된 코드는 직접 실행되기 때문에 시간은 빠르다.
  • Ex) C, C++, Go, Rust 등
  • 단점 : 수정이 용이하지 않다.
    수정 사항이 발생하면 다시 컴파일을 해야 되는데, 작은 프로그램일 경우에는 문제가 되지 않지만 컴파일이 몇 시간씩 걸리는 덩치 큰 프로그램에서는 문제가 된다.
    특히 수정 사항이 빈번하게 발생할 경우에는 큰 문제가 된다.
    이 때문에 수정 사항이 빈번하게 발생할 것 같은 부분은 인터프리터를 쓰는 방법으로 따로 빼 두는 기법을 많이 사용한다.

인터프리터

  • 한 줄씩 변환 : 소스 코드를 한 줄 씩 읽어가며 바로 기계어로 변환하고 실행
  • 속도 : 컴파일 단계가 없어 초기 시작은 빠르지만, 전체 코드 실행 시간은 컴파일러를 사용할 때보다 느릴 수 있다.
    왜냐하면 코드를 실행할 때마다 변환 과정을 거치기 때문
  • Ex) Python

공통점

고수준의 언어를 기계어로 변환한다.

참고자료 : https://namu.wiki/w/%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0
https://namu.wiki/w/%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC
https://jhyonhyon.tistory.com/18

profile
자라나라 나무나무

0개의 댓글