컴파일 vs 런타임

chaemin·2024년 7월 18일

CS지식

목록 보기
1/4

참고 1
참고 2

1. 컴파일

개발자가 작성한 소스코드를 기계어로 변환하는 작업.

  • 스택, 힙은 동적 할당이 되며 런타임 단계에서 메모리를 할당받는 것

📌컴파일 에러

컴파일 시점에 생기는 에러

  • syntax 에러
  • 타입 에러

2. 런타임

컴파일 과정을 마친 프로그램이 실행되어 지는 때

실행버튼을 눌렀을 때

  • 데이터 영역, 코드영역은 컴파일 단계에서 메모리를 할당한다.

📌런타임 에러

실행되어야만 확인 가능한 에러를 말한다. (컴파일 중에는 감지 못하는 것)

  • 0 나누기 오류
  • 널 참조

3. 컴파일러 언어 vs 인터프리터 언어

🚨컴파일수행 여부 기준 분류

  • 컴파일러 언어: C, C++, Java
  • 인터프리터 언어: Python, JavaScript

컴파일러 언어: 컴파일 단계와 실행 단계 분리됨

  • 인터프리터 언어에 비해 코드 실행속도 빠름
  • 다만 코드 수정 후 리컴파일을 해야하는 번거로움

인터프리터 언어: 컴파일 없이 소스코드를 바로 실행하는 언어

  • 컴파일 자체에 시간이 소요되지 않음.
  • 매 번 실행 시 코드를 해석하는 인터프리트 과정이 반복 수행되어 속도가 느림

0개의 댓글