기술 동향
인터프리터 언어와 컴파일러 언어 차이점
ggulgood
2022. 4. 15. 04:39
컴파일(compile)
고급 프로그래밍언어에 쓰여진 프로그램으로 소스코드에서의 오브젝트로 변환 되는것
오브젝트코드
컴파일러에 의해 생성된 코드
명령어 실행을 위해서는 기계어(machine language)로, 저레벨(low-level) 언어로 쓰여져여만 하드웨어 제어가 가능
저레벨언어 (low-level language)
기계어(machine language)또는 어셈블리어(assembly language)를 의미한다. 저레벨언어는 고레벨언어(high-level programming languages)보다 하드웨어와 더 밀접한 언어
고레벨언어(high-level programming language)
고레벨 언어는 기계어보다 좀 더 인간의 언어에 가까워 저레벨언어보다 읽기 쉬우며 읽기 뿐만아니라 쓰기, 유지보수에도 용이함
프로그램을 생산하기 수월하지만 이를 기계어로 변환하기 위해 인터프리터나 컴파일러가 필수적으로 요구됨
컴파일러
즉, 컴파일러는 고레벨 언어를 저레벨언어로 변경하기 위해 필요한 장치또는 도구
컴파일러 언어 | 인터프리터 언어 | |
공통점 | 사람이 이해할 수 있는 고급언어로 작성된 소스 코드를 기계가 이해할 수 있는 기계어로 번역한 후 프로그램을 실행함 | |
차이점 | 사람이 고급 언어 작성을 하면 해당 고급 언어를 한번에 번역함 줄 단위로 번역을 하는 인터프리터에 비해 번역 시간이 오래 걸림 반면, 한 번 번역을 하면 실행 파일이 생성이 되어 다음에 실행을 할 때 기존에 생성되었던 실행 파일을 실행하기 때문에 인터프리터에 비해 실행 시간이 빠른 편 플랫폼(하드웨어)에 종속적인 특징 |
줄 단위로 번역을 진행하기 때문에 한 번에 번역하는 컴파일러에 비해 번역 시간이 빠르다. 번역 시 실행 파일을 생성하지 않기 때문에 매번 실행할 시마다 같은 번역을 진행해야 한다. 컴파일러 사용 언어들에 비해 실행 속도가 느린 편 모든 플랫폼(하드웨어)에 종속되지 않는 특징 각 하드웨어의 환경에 맞게 변환을 하기 때문에 다른 하드웨어에서도 작동이 가능 |
종류 | JAVA, C, C++, C# 등 | Javascript, Python, Ruby 등 |
자바는 컴파일러와 인터프리터 모두 사용한다.