본문 바로가기
카테고리 없음

컴파일러와 인터프리터의 차이점(ft.고급언어란?)

by uno랜드 2022. 6. 7.
반응형

High level language(고급언어)란?

 

Low level language는 어디 저장되어있는지를 나타내고 변수가 무엇을 의미하는지는 생각하지 않습니다.

 

하지만 High level language는 의미있는 name을 통해 변수가 무엇을 나타내는지 나타나죠.(예를들면 온도에 관한 변수의 이름을 temperature라고 짓는 식입니다)

 

따라서 High level langauge는 사람이 다루기 편하다는 특징(Human-friendly expression)을 가지고 있습니다.

 

 

왜 Higl level lanuage를 사용하는가?

 

1. 하드웨어가 달라도 동일한 인터페이스를 가져 어느 하드웨어를 사용해도 같은 방식으로 코딩이 가능합니다.

이를 Portability가 높다고 합니다. 

 

2. 코딩이 간단한 영어식으로 표현되기 때문에 low level language에 비해 읽거나 수정하기 쉽습니다.(Better maintainablity)

 

3. 버그에 대해 안전한 편입니다. 프로그래머들에게 준수해야할 규칙을 정해주고, 어떠한 룰을 어겼을 경우, 에러 메세지가 바로 제공됩니다. 


이러한 고급언어로 작성된 프로그램이 실행되려면 인터프리터나 컴파일러를 통해 기계어로 번역되어져야 합니다. 

고급언어는 앞에서 설명했다시피 인간 친화적인 언어이기 때문이죠.

 

과연 인터프리터와 컴파일러, 이 두 번역하는 방식의 차이는 무엇인지,

그리고 각각 어떤 언어가 인터프리터와 컴파일러에 속하는지 알아보도록 하겠습니다.

 

반응형

인터프리터

 

파이썬은 인터프리터입니다.

 

인터프리터는 한 번에 한 문장씩 번역과 실행을 동시에 합니다. 

 

따라서 인터프리터의 장점은 디버깅과 메모리 효율이 좋다는 것입니다.

 

대신 한 문장씩 번역과 실행을 반복하기 때문에 컴파일러에 비해 느리다는 단점이 있습니다.

 

인터프리터는 파이썬 말고도 루비, 자바스크립트 등이 있습니다.


 

컴파일러

 

C는 컴파일러입니다.

 

컴파일러는 코드 전체를 한꺼번에 번역해서 아래와같은 exe 파일을 만드는데요, 아직 실행은 하지 않은 상태입니다.

 

즉 인터프리터와 다르게 번역을 하돼 실행은 하지 않는 것이죠.

 

따라서 빠르고 반복가능하며 메모리 효율적인 장점이 있습니다.

 

대신 디버깅하기 어려우며, 컴파일된 프로그램이 다른 하드웨어에서 작동하지 않을 수 있습니다.

즉 인터프리터에 비해  portable하지 않습니다.

 

C++, JAVA도 컴파일러에 속합니다.

반응형

댓글