컴파일러와 인터프리터

trevor1107·2021년 8월 11일
0

운영체제

목록 보기
1/1
post-thumbnail

요약

분류컴파일러인터프리터
번역 단위전체한줄
실행 속도빠름느림
번역 속도느림빠름
실행 파일 생성 여부OX
메모리 할당 여부OX

컴파일러(Compiler)

컴파일러는 고급 언어로 작성된 프로그램을 컴퓨터에서 즉시 실행될 수 있는 형태의 목적 프로그램으로 바꾸어주는 번역 프로그램이다.

컴파일 과정

컴파일 과정 내에서도 컴파일러가 존재하는데, 하드웨어에 종속적인 코드인 어셈블리어로 변환해주는 역할을 한다. 대표적으로 C언어의 컴파일 과정은 아래와 같다.

(출처 : https://blog.hexabrain.net/2)

컴파일 언어

컴파일 언어는 대표적으로 C, C++, C#, Java가 있다.

컴파일 언어의 특징

  • 컴파일하는 데 시간이 오래 걸리지만 실행되는 속도가 빠르다.
  • 프로그램의 일부를 수정하는 경우에도 전체 프로그램을 다시 컴파일해야 하는 단점이 있다.
  • 프로그램의 실행 파일 전체가 있어야 하므로 파일 용량이 크다.
  • OS 및 빌드 환경에 종속적이다.

컴파일 언어는 원시 프로그램의 수정 없이 계속 반복으로 수행하는 시스템에 효율적이다.

인터프리터(Interpreter)

인터프리터는 고급 언어로 작성된 원시 코드 명령어들을 한 번에 한 줄씩 읽어 들여서 실행하는 프로그램이다. 고급 명령어들을 중간 형태로 번역하고 그것을 바로 실행한다.

인터프리터 언어

인터프리터 언어는 대표적으로 JavaScript, Python, SQL, Ruby가 있다.

인터프리터 언어의 특징

  • 번역 속도는 빠르지만, 컴파일 언어보다 실행속도가 느리다.
  • 줄 단위로 번역과 실행을 진행하기 때문에 중간에 문제 있는 코드를 만난 경우 그 줄부터 아래는 실행되지 않는다.
  • 프로그램의 코드만 있다면 실행되므로 파일 용량이 적다.
  • OS 및 플랫폼에 종속되지 않는 프로그램 구동이 가능하다.

인터프리터 언어는 이미 실행 중인 동안 프로그램을 변경할 수 있는 대화식 프로그래밍에 효율적이다.



참고 자료 및 출처 (감사합니다 ^^)

https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC)
https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0
https://cbw1030.tistory.com/276
https://coding-factory.tistory.com/303
https://velog.io/@jaeyunn_15/OS-Compiler-vs-Interpreter

profile
프론트엔드 개발자

0개의 댓글