ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴파일 언어(Compile Language) VS 인터프리터 언어(Interpreter Language)
    Computer Science 2022. 11. 5. 12:07

    컴파일(Compile) 언어

    -  소스 코드를 기계어로 한 번에 컴파일(Compile time) 한 후에 실행파일 만들고 실행(Runtime)

    -  ex) C, C++, C#, Java

    컴파일(Compile)과정

    cf.빌드(build) 

    - 컴퓨터에서 이해할 수 있는, 즉 실행 가능한 파일로 만드는 과정

    - 우리가 만든 소스코드를 '빌드'하면 실행 파일을 얻는다

    - 실행파일은 CPU가 읽을 수 있는 이진코드인 기계어(Machine Code)로 이루어져 있다

     

    장점  단점
    - 이미 기계어로 번역된 파일을 컴퓨터가 실행하므로 스크립트 언어에 비해 실생 속도가 빠르다 

    - 소스코드에 문법적 오류가 있으면 컴파일 에러를 발생시켜 디버깅이 수월(실행전)



     - 규모가 큰 프로그램은 컴파일 시 오래걸린다 


    - 일반적으로 문법적 제약이 많아 작성이 비교적 어렵다 

    - 운영체제마다 컴파일을 실행시키는 방식이 다르기 때문에 운영체제마다 다른 컴파일 실행 파일을 빌드해야 한다






     

    인터프리터(Interpreter)언어

    -  소스 코드를 한번에 컴파일 하지 않고, 인퍼트리터로 소스코드를 한줄씩 기계로어로 번역하면서 실행(Runtime)

    - ex) R, Python, Ruby

     

     

    인터프리터(Interpreter)과정

     

    장점  단점
    -  문법 적 제약이 비교적 적어 작성이 비교적 쉽다
    -  컴파일과정 없이 바로 실행하기 때문에 수정, 디버깅에 유리
    (즉, 개발속도가 빠르다)
    - 각 플랫폼에 지원하는 인터프리터만 있다면 실행 가능하기 때문에 플랫폼에 독립적

    - 실행하는 과정에서 소스 코드를 기계어로 번역하는 과정이 포함되어 있으므로 컴파일 언어에 비해 느리다
    - 문법적 오류가 있든 없든 일단 실행되기 때문에 디버깅이 비교적 어렵다(실행을 하고 나서야 오류를 알 수 있다) 

    Summary

    # 컴파일 언어

    - 실행 전 소스코드를 컴파일하여 기계어로 변환 후 해당 파일을 실행
    - 이미 기계어로 변환된 것을 실행하므로 비교적 빠름
    - 문법적 제약이 일반적으로 많음
    - 운영체제에 따라 다르게 작업해야 함

     

    # 인터프리터(스크립트)언어 

    - 코드를 작성함과 동시에 인터프리터가 기계어로 번역하고 실행함
    - 실행 과정 상에 번역 과정이 있어 비교적 느림
    - 문법적 제약이 일반적으로 적음
    - 운영체제를 신경 쓸 필요 없이 한 번만 작성하면 됨

     

     

    출처

    https://aeroej.tistory.com/138

     https://ikcoo.tistory.com/129

     https://ryusm.tistory.com/105

     

    'Computer Science' 카테고리의 다른 글

    CMD명령어모음  (0) 2022.12.11
    컴파일러(Compiler)  (1) 2022.11.05
    Bit & Bite  (0) 2022.10.24
    인터페이스(Interface)  (0) 2022.10.23
    하드웨어 VS 소프트웨어  (0) 2022.10.23

    댓글

Designed by Tistory.