Compiler / Interpreter

Yerin·2020년 3월 6일
0

컴파일러( Compiler )

컴파일러는 사람이 소스코드를 작성하면 그 소스코드를 '한번에' 번역을 한다.
때문에 줄 단위로 번역을 진행하는 인터프리터에 비해 당연히 번역 시간이 오래 걸리고 그 과정이 복잡하다.

하지만 한 번 번역을 하면 실행파일(목적파일)이 생성 되어 메모리를 사용하지만 다음에 실행할 때는 이 파일만 실행하면 되기 때문에 실행 시간은 인터프리터에 비해 빠르다.

인터프리터 ( Interpreter )

인터프리터는 한줄 한줄 줄단위로 번역과 실행을 진행하기 때문에 번역시간은 빠르지만 실행시간은 느리고 직접 실행하기 때문에 실행파일을 생성하지 않아 메모리는 사용하지 않는다.

줄 단위로 번역과 실행을 진행하기 때문에 중간에 문제 있는 코드를 만난 경우 그 줄부터 아래는 실행되지 않는다. 그에 비해 컴파일러는 한번에 번역을 하고 실행을 하기 때문에

프로그래머가 코딩을 하다가 오류를 작성 했을 때 전부 작성을 하고 실행파일을 만들어서 실행을 해봐야 알 수 있다. 개발자 입장에서는 인터프리터가 조금 더 유리하다고 할 수 있다.

그럼 개발자는 인터프리터를 쓰는게 좋은가?

당연히 아니다..!

인터프리터의 경우 웹에서 많이 사용되는데 그 이유는 내 생각에는 컴파일러로 웹을 작성할 경우 만약 중간에 오류를 유발하는 코드를 작성 했거나 유지보수 하는 도중에 치명적인 오류를 발생하는 코드를 집어넣었다면 그 웹은 아예 작동이 되지 않고 사용자가 볼 수 없게 된다.

하지만 인터프리터를 사용하면 일정 부분이 오류를 내도 그 전 까지는 작동이 되기 때문에 컴파일러에 비해서 손실을 줄일 수 있다고 생각한다. 그리고 오류가 어디서 났는지 바로 확인할 수 있기 때문에 유지보수가 유리하다고 생각이 된다. 그렇다고 인터프리터가 항상 좋은것은 아니고 위에서 언급했다시피 실행속도가 느리기 때문에 퍼포먼스를 중요시한다면 컴파일러를 적용하는것이 좋다.

참조: https://steady-snail.tistory.com/1

profile
졸꾸 !!!

0개의 댓글