더북(TheBook)

C파이썬은 어떤가? 파이썬 프로그램을 C파이썬으로 실행하면 코드가 파싱되고 내부 바이트코드 포맷으로 변환된 다음 VM 내부에서 실행된다. 사용자 입장에서는 소스를 주면 프로그램이 바로 실행되니 분명히 인터프리터처럼 보인다. 그러나 C파이썬의 내막을 들여다보면 어떤 식으로든 컴파일이 진행된다는 사실을 알 수 있다.

따라서 정답은 ‘둘 다’이다. C파이썬은 인터프리터이면서(is an interpreter) 컴파일러를 갖고 있다(has a compiler). 실제로 대부분의 스크립트 언어가 이런 식으로 동작한다.

고(Go) 도구는 더욱 호기심을 자극한다. go build 하면 고 소스 코드를 기계어로 컴파일한 다음 멈춘다. go run 하면 같은 작업을 한 다음 생성된 실행 파일을 바로 실행한다.

이런 점에서 고는 컴파일러이자(코드를 실행하지 않고 컴파일하는 도구로 사용) 인터프리터인(소스 코드를 읽어 즉시 프로그램을 실행) 동시에 컴파일러도 갖고 있다(고를 인터프리터로 사용하더라도 내부적으로는 여전히 컴파일을 한다).

 

이 책의 두 번째 인터프리터는 내부에서 바이트코드로 컴파일하기 때문에 이 그림의 가운데 겹치는 부분에 해당된다. 이 책의 공식적인 주제는 인터프리터지만, 컴파일에 관한 내용도 함께 다룰 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.