1 컴파일러 언어와 인터프리터 언어
컴파일러 언어와 인터프리터 언어의 차이를 명확하게 이해하기란 생각보다 쉽지 않습니다.
다음 코드를 볼까요?
>>> s = '5 + 3'
>>> code = compile(s, '<string>', 'eval')
>>> eval(code)
8
파이썬에는 compile()이라는 함수가 있어 문자열을 컴파일할 수 있습니다. 여기서 중요한 점은 파이썬에 소스 코드를 컴파일할 수 있는 컴파일러가 있다는 점입니다. 파이썬은 인터프리터 언어인데 컴파일러라니 어찌된 일일까요?
컴파일러 언어와 인터프리터 언어는 컴파일 타임이 있느냐 없느냐 즉, 소스 코드를 분석하는 시점과 입력 데이터를 받는 시점이 언제이냐에 따라 나뉩니다. 이 문장만으로는 아직 명확히 이해되지 않습니다. 컴파일러 언어인 C와 인터프리터 언어인 파이썬을 예로 들어 보겠습니다.