컴파일러와 인터프리터

2023. 3. 9. 14:58카테고리 없음

 

컴퓨터는 1과 0으로 이루어진 기계어만 알아들을 수 있습니다.

하지만 사람이 1과 0으로 이루어진 데이터를 모두 해석하는 것은 무리가 있습니다.

이러한 이유로 조금 더 쉽게 사람이 알아들을 수 있도록 설계한 언어가 어셈블리어입니다.

 

어셈블리어는 기계어와 1대 1 대응이 되는 저급 언어입니다.

 

하지만 저희는 사람이 사용하기 편한 고급언어인 C언어를 주로 사용합니다.

 

컴퓨터는 1과 0만 구분할 수 있는데 어떻게 c언어를 해석하는지 궁금하지 않나요?

아래를 보면 조금 이해가 가실 것 같습니다.

 

c언어 같은 고급 언어들은 컴파일러나 인터프리터가 고급언어를 기계어로 해석해 줍니다.

 

컴파일러와 인터프리터 둘 다 고급 언어를 해석해 주는데요 둘의 차이점은 무엇인지 설명드리겠습니다.

 

<컴파일러>

컴파일러는 고급언어를 처음부터 끝까지 다 해석해 줍니다.

 

<인터프리터>

한 줄씩 번역하고 에러를 한눈에 파악합니다.

 

매우 간단하지만 둘의 차이를 명확하게 파악할 수 있습니다.!!

 

보통 (x64 디버깅 기준) 디버깅을 할 땐 컴퓨터 언어로 변형하여 넣어야 하기 때문에 컴파일을 해야 합니다.

c언어로 작성한 코드를 그냥 저장해 올리면 실행이 되지 않기 때문입니다.

 

기초가 되는 문제지만 이 이론이 매우 중요하다고 생각합니다.