컴파일 언어와 인터프리터 언어에 대해 소개하기 전 프로그래밍 언어에 대해서 먼저 알아보겠다
우선 프로그래밍 언어에는 고급언어(High level language) 와 저급언어(Low level language) 가 있다
두 언어의 주된 차이점으로는 고급언어는 사람이 쉽게 이해할 수 있고 저급언어는 컴퓨터가 쉽게 이해할 수 있다는 것에서 출발한다
고급언어는 개발자 입장에서 이해하고 쉽고 가까운 관계이다
하지만 머신코드로 해석하고 난 뒤에서야 실행시킬 수 있다
고급언어로 작성된 프로그램 코드는 컴퓨터가 해석하지 못한다
이에 고급언어로 작성된 프로그램은 저급언어로 작성된 것보다 컴퓨터가 이해하고 실행하는 데 속도가 느리다
고급언어는 컴퓨터가 이해할 수 있는 머신코드로 변경을 하여 저급언어로 바꾼 후 링커를 통해서 컴퓨터가 처리 가능한 파일로 변형시켜야 한다
(Assembly Language = 기계어와 일대일 대응이 되는 언어, 고급언어를 기계어로 바꿔주는 프로그램밍 언어
Linker = 하나 또는 그 이상의 어셈블한 파일을 가져와 단일 실행 프로그램으로 병합시켜준다)
저급언어 : 기계어/어셈블리 언어 , 보다 메모리 효율적
고급언어 : 보다 쉽게 프로그램 작성 가능, 인터프리터/컴파일러 필수, 이해하기 쉬움, 디버깅 쉬움
EX) C C++
EX) Python, Javascript, Ruby
Compiler 와 Interpreter 의 차이점 쉽게 이해하기
외국어로 된 요리책을 보고 따라한다고 생각해보자
compiler 는 이미 모국어로 번역이 된 책을 보면서 따라하는 것이라고 생각하면 된다
반면 Interpreter 는 외국인 친구가 한 줄씩 해석하여 알려주는 것이라고 생각할 수 있다
출처 : Investopedia (Assembly Language)