공부/JUN STUDY

컴파일 VS 인터프리터 (Compile VS Interpreter)

JUNFUTURE 2021. 9. 14. 01:13

프로그램을 해독하는 방식 (소스코드를 기계어로 변환하는 방식)에는

컴파일과 인터프리터 방식 두가지가 있다.

 

대부분의 프로그래밍 언어가 컴파일 방식을 택하기 때문에

프로그램의 해독(소스코드 => 기계어)을 컴파일이라고 이야기하는 것이다.

 

컴파일은 소스코드 => 기계어로의 해독 과정을 뜻하는 단어가 아니다!!!

(기계어로의 변환 방식 중 하나가 컴파일)

 

오브젝트를 생성하고 저장하는 방식 ⇒ 컴파일
(번역본 제작 - 한번 해독 해두고 계속 실행)
그때그때 실행코드를 생성하는 방식 ⇒ 인터프리터
(옆에서 통역 - 실행시 마다 해독)

 

우리가 한글(=기계어) 밖에 모르는 사람을 위해 영어(=하이레벨언어) 책을 읽어줘야하는 상황에 놓여있을때

(기계어 밖에 모르는 컴퓨터를 위해 하이레벨언어를 해독해줘야하는 상황에 놓여있을때)

 

파일러는 영어책이 있으면 번역본 책 한권을 만드는 개념

한번에 날 잡고 영어 책을 통째로 번역해서 번역본을 만들고 계속 읽으면 되는 방식

(한번 exe파일 만들어두고 계속 실행파일만 실행시키면 되는 방식)

 

인터프리터는 방식은 매순간 통역. 책을 번역하는게 아니라 옆에서 읽어주는 개념

영어 책을 읽고 싶을때마다 옆에서 통역을 해주는 방식

(소스코드 한줄한줄 매순간 기계어로 변환하는 방식. 프로그램 실행을 위해 매순간 해독을 해야한다.)

 

파이썬은 대표적인 인터프리터 방식을 채택하는 언어. 과연 파이썬에는 컴파일 에러가 있을까요??? 

=> 없습니다.

  • 파이썬에는 컴파일이라는 개념 자체가 없기 때문에 컴파일 에러가 없습니다.
  • 다만 신택스 에러는 존재하고, 우리가 파이썬으로 프로그래밍을 할때 잘못된 문법을 입력하면 실행이 안되고(≠컴파일이 안되고) 신택스 에러가 위치한 곳을 보여줍니다.
  • 파이썬에서 오류를 찾아주는 프로그램은 컴파일러 입니다 ⇒ X (개념 자체가 없다. 그냥 오류를 찾아주는 프로그램이 찾아주는거다.)