공부

컴파일 vs 인터프리터

항성 2022. 7. 17. 21:39
반응형
  • 컴파일 언어 vs 인터프리터 언어

    • 컴파일러 : 작성된 코드를 기계어로 ‘번역’하는 역할.

    • 인터프리터 : 작성된 코드를 한 줄씩 읽어가며 ‘번역’하고 ‘실행’하는 언어

    • 컴파일 언어

      작성된 모든 소스코드를 기계어로 ‘번역’한 뒤에, 번역된 코드를 ‘실행’. (번역 → 실행)

      컴파일과 프로그램 실행이 완전히 분리.

      (ex : JavaScript, HTML, ActionScript, SQL, Python, ruby 등)

      • 장점

        빌드가 완료된 실행 가능한 파일은 실행 속도가 빠르다.

        매번 번역할 필요 없이 실행 파일만 실행하면 되기 때문에 시간 단축.

      • 단점

        프로그램을 수정할 경우 처음부터 빌드 과정을 다시 거쳐야 한다. 대규모 프로그램에서 생산성 감소.

        플랫폼에 매우 의존적.

    • 인터프리터 언어

      컴파일을 진행하지 않고 인터프리터로 소스코드를 한 줄씩 읽어가며 ‘번역’하고 바로 ‘실행’. (번역 & 실행 동시. 컴파일 언어와 달리 ‘직접’ 기계어로 변환하는 과정이 없다.)

      (ex : C, C++, C#, Java 등)

      • 장점

        컴파일 과정 없이 바로 실행하기 때문에 수정, 디버깅에 유리. 개발 속도 빠름.

        각 플랫폼에 지원하는 인터프리터만 있다면 실행 가능하기 때문에 플랫폼에 독립적.

      • 단점

        빌드 되어있는 컴파일 언어 프로그램보다 실행 시간이 느림.

        코드를 열면 다 보이기 때문에 보안이 비교적 좋지 않음.

*응용 : Java는 print문을 작성해도 컴파일을 먼저 하기에 내용이 콘솔에 찍히지 않고, Javascript는 한 줄씩 읽어가며 번역하기에 오류가 나기 직전까지의 print문은 콘솔에 찍힌다.

반응형

'공부' 카테고리의 다른 글

HTTP란?  (0) 2022.08.09
WAS vs Web Server  (0) 2022.08.09
API란?  (0) 2022.08.09
JAVA 함수 정리  (0) 2022.07.15
URI(Uniform Resource Identifier) vs URL(Uniform Resource Locator)  (0) 2022.01.23