728x90
컴파일러와 인터프린터는 사람이 이해할 수 있는 고급언어로 작성된 소스 코드를,
기계가 이해할 수 있는 기계어로 번역 후 프로그램을 실행하는 것이다.
차이점에 대해 알아보자.
하드웨어 | 실행시간(비교) | 번역시간(비교) | 메모리 | 대표언어 | |
컴파일러 | 종속적O | 빠르다 | 느리다 | 많이사용 | JAVA, C, C++ |
인터프리터 | 종속적X | 느리다 | 빠르다 | 비교적 적게 사용 | Pyhon, JavaScript |
컴파일러 - 하드웨어에 종속적
- 고급언어를 한번에 번역을 한다.
- 줄 단위로 해석하는 인터프리터에 비해 번역시간이 오래걸린다.
- 컴파일러는 한번 실행하면 실행파일이 생성되어, 다음 실행을 할때는 기존에 생성되었던 실행파일을 실행하기 때문에,
인터프리터에 비해 실행 시간이 빠르다.
- 전체 코드를 검사한 후 실행하기 때문에, 실행 전에 오류 메세지를 확인할 수 있다. (컴파일 에러)
인터프리터 - 하드웨어에 종속적이지 않다
- 고급언어를 한줄씩 번역을 한다.
- 한번에 번역하는 컴파일러에 비해 번역시간이 빠르다.
- 실행파일을 생성하지 않기때문에 실행할 때마다 번역을 진행해야 한다. 때문에, 컴파일러에 비해 실행 시간이 느리다.
+JIT 컴파일러
- 컴파일러와 인터프리터 방식을 혼합
- 인터프리터 방식(한줄씩 번역) 으로 기계어 코드를 생성하면서 그 코드를 캐싱하기 때문에 재사용시 컴파일 할 필요가 없다
참고
https://cbw1030.tistory.com/276
728x90
'Knowledge > CS' 카테고리의 다른 글
여러 사이트 참고한 예상질문 정리 - 종합 (0) | 2022.08.17 |
---|---|
String, StringBuffer, StringBuilder (0) | 2022.08.17 |
해시(Hash)란 무엇인가? (0) | 2022.08.16 |
시간복잡도란 무엇인가? 다른방법은? (0) | 2022.08.13 |
block I/O VS non-block I/O 개념 (0) | 2022.08.11 |
댓글