이론

컴파일러와 인터프리터 차이

월러비 2024. 3. 24. 09:45

컴파일러

  • 컴파일러는 프로그래밍 언어로 쓰여있는 문서를 컴퓨터가 이해할 수 있는 기계어로 번역한다음 Control Unit에 전달합니다.
    • 이때, 전해받은 내용이 어떤 역할을 하는 코드인지는 모르고 단순히 전해받은 형태로 실행합니다.
  • 컴파일 과정
    1. 특정 목적을 위한 코드 작성(원시코드 Source Code)
    2. 컴파일 실행
    3. 기계어 번역(목적코드 Object Code) ⇒ 실행파일
    4. 기억장치에 저장
    5. 메인 메모리에 올라간 후 실행
  • 컴파일 대표 언어
    • 이 언어들은 위의 과정을 거치지 않고 번역한 다음 바로 실행합니다.
    • C
    • C++
  • 장점
    • 한번에 미리 번역합니다.
    • 오류가 생기면 실행이 불가능하기 때문에 배포시 구문 오류가 존재할 수 없습니다.
    • 기계어를 직접 만들어 내기 때문에 실행만 하면 되어 수행성능이 좋습니다.
    • 별도의 실행환경이 존재하지 않아 메모리 관리도 직접 해야합니다.(단점이 될 수 있다.)

인터프리터

  • 인터프리터는 코드를 바로 기억장치에 저장하고 실행시킬때, 기계어의 번역을 도와주는 역할을 합니다.
  • 인터프리터 과정
    1. 특정 목적을 위한 코드 작성
    2. 기억장치에 저장
    3. 실행(한 줄씩 실행된다.)
    4. 인터프리터 번역
  • 인터프리터 대표 언어
    • 자바 (컴파일 형식으로도 반은 실행할 수 있다.)
    • 파이
    • 자바스크립트
  • 장점
    • 실행기(가상머신)기 있으면 어디서든 실행이 가능하다.
    • 코드를 해석하는데 한 줄씩 해석하기 떄문에 적은 시간이 걸린다.
  • 단점
    • 코드를 한 줄씩 실행시키기 때문에 수행성능이 낮아진다.
    • 코드가 노출될 위험이 있다.

'이론' 카테고리의 다른 글

원형 큐  (0) 2024.03.27
Queue  (0) 2024.03.26
컴파일링의 각 과정과 결과물  (0) 2024.03.23
데드락 예방조건 4가지  (0) 2024.03.20
데드락(deadlock) 발생조건 4가지  (0) 2024.03.19