인터프리트 언어 vs. 컴파일 언어
컴퓨터가 프로그래밍 언어를 어떻게 받아들일까?
컴퓨터는 프로그래밍 언어를 있는 그대로 받아들이지 못합니다.
컴퓨터는 멍청하기 때문에 0과 1만 받아들일 수 있습니다.
그래서 프로그래밍 언어는 반드시 0과 1로 해석해 주는 과정을 거쳐야 합니다.
번역하는 방법에는 2가지가 있습니다. 방법에 따라 속도가 결정되는 것입니다.
1. 인터프리트 언어 interpreted language : 파이썬, 자바스크립트
비유하자면 동시통역사처럼 해석한다고 생각하면 쉽습니다.
인터프리트 언어는 중간에 동시통역사 역할을 해주는 인터프리터라는게 0과 1을 사용해서 프로그래밍 언어를 실시간으로 번역해 줍니다.
파이썬으로 코드를 작성하면 중간에 인터프리터가 0과 1로 번역하여 컴퓨터에게 전달하는 방식으로 실행되는 것입니다.
2. 컴파일 언어 compiled language : C언어
비유하자면 통번역한다고 생각하면 됩니다.
프로그래밍 언어를 통으로 컴파일러를 통해 0과 1로 변환합니다.
파이썬과 C언어 속도 차이가 나는 이유!!
앞서 말했듯이 파이썬은 인터프리트 언어, C언어는 컴파일 언어
쉽게 말해 파이썬은 컴퓨터에게 실시간으로 0과 1로 이루어진 문장을 실시간으로 통역해 줄것임..
그래서 코드가 많아질수록 인터프리터가 작업해야 하는 횟수가 늘어나게 되어있다!
C언어는 반대입니다.
완성된 코드를 한꺼번에 묶어서 통번역하므로 작업 횟수가 한정되어있습니다.
그래서 C언어가 파이썬보다 빠른 것입니다. 중간과정이 더 단순하기 때문!!
---------------
한가지 더 이야기하자면 인터프리트 언어는 오류를 제때 알게 힘듭니다.
코드 200줄짜리 프로그램을 작성했는데 198번째 줄까지 잘 실행되다가 199번째 줄에서 오류가 발샐하면.. 198번째 줄까지 실행한 시간을 다 버린게 되어버림..