Developer_Neo
[python] 컴파일러 VS 인터프리터 본문
반응형
파이썬은 인터프리터가 필요한 언어이다.
이외의 인터프리터가 필요한 언어는 자바스크립트, 파이썬, 루비, sql,...
컴파일러는 C, C++, C#, Go,...에 쓰인다.
자바는 컴파일러와 인터프리터 모두 사용
컴퓨터는 모든 명령을 0과 1로 이해하여 CPU가 처리하고 실행한다. 그래서 우리의 언어인 한글이나 영어는 이진코드로 해석하고 명령을 처리한다 따라서 우리의 언어로 친 코드들을 컴퓨터가 이해할 수 있게 번역해주는 번역기가 필요한데 이 번역기가 인터프리터, 컴파일러이다.
즉 둘 다 고레벨 언어로 작성된 프로그래밍 언어를 기계어로 번역하는 것은 공통점이다.
컴파일러는 전체 소스코드를 보고 명령어를 수집하고 재구성하지만
인터프리터는 소스코드의 각 행을 연속적으로 분석하며 실행한다.( 명령을 한 줄 씩 입력하면 인터프리터가 그때그때 답을 돌려주는 방법 )
인터프리터는 고레벨 언어를 바로 기계어로 번역하지 않고 중간 형태로 변환(Intermediate code)시킨 후 실행한다.
반면 컴파일러는 고레벨 언어를 바로 기계어로 변환한다.
컴파일러
- 코드를 수정하고 실행하려면 컴파일을 다시 해야한다.
- 실행속도가 빠르다
- 프로그램의 코드가 유출되지 않는다
- 기계어로 번역이 되어버렸기 때문에 소스코드의 원본이 노출될 우려가 매우 적어 거의 없다.
- 프로그램의 실행파일 전체를 전송해야하므로, 용량이 크다.
- 오류가 나면 컴파일러는 컴파일 하는 도중에 오류가 난다
인터프리터
- 코드를 수정하고 즉시 실행할 수 있다
- 실행속도가 느리다.
- why? 소스 코드를 한줄씩 가져와서 기계코드로 번역해야 하므로 입력 대기 시간이 아주 길어집니다.
- 번역과 실행이 동시에 이루어진다.
- 프로그램의 코드가 유출될 수 있다.
- 소스코드를 바로 번역해서 실행하기 때문에 원본 소스코드가 그대로 노출된다
- 프로그램의 코드만 전송하면 실행되므로 용량이 적다.
- 컴파일과정 없이 바로 실행하기 때문에 수정, 디버깅에 유리하다. 즉 개발속도에 유리하다.
- 런타임에 실시간 디버깅 및 코드 수정이 가능
- 분석 도중 어느 행에 오류가 발생하면 그것을 알려주고 그 이후의 분석을 멈춘다.
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[python] 리스트 만들기, 연산자, 함수, 메소드 (0) | 2022.01.16 |
---|---|
[python] 문자열 연산자 및 함수, 메소드 (0) | 2022.01.16 |
[python] 빈 문자열, 리스트, 사전, 튜플, 집합 만들기 (0) | 2022.01.16 |
[python] print 함수 (+ 주석처리) (0) | 2022.01.16 |
[python] 파이썬의 아홉 가지 자료형, mutable vs immutable, 객체, 변수 (0) | 2022.01.16 |
Comments