본문 바로가기
프로그래밍언어

프로그래밍언어를 번역하다 컴파일러 vs 인터프리터

by J코딩 2021. 8. 9.
반응형

앞서 프로그래밍언어는 컴퓨터와의 소통을 위해 만들어진 언어라고 하였습니다.

https://jcoding7.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%96%B8%EC%96%B4-%EC%99%9C-%EB%B0%B0%EC%9B%8C%EC%95%BC-%ED%95%98%EB%82%98

 

프로그래밍언어 왜 배워야 하나?

프로그래밍언어를 왜 배워야 하나? 이 질문에 대한 답을 하기 위해서는 먼저 프로그래맹 언어가 무엇인지 알아보겠습니다. 프로그래밍언어의 종류로는 C, C++, Java, Python, Javascript 등 굉장히 많은

jcoding7.tistory.com

소통이라함은 뜻이 서로 통하여 오해가 없음.이라는 뜻인데, 사람과 컴퓨터가 어떻게 뜻이 서로 통하여 오해가 없게 할 수 있었을까요?

또 인간은 다른 언어로 서로 통 할 수 있었을까요? 만약 국어 vs 국어라면 문제가 없겠지만, 인간조차도 국어 vs 영어, 국어 vs 프랑스어 처럼 서로 다른 언어를 사용하고 있음에도 서로 통할 수 있었을까? 

서로 다른 언어는 소통할 수 없다

위 그림처럼 서로 다른나라의 언어를 모른다고 가정한다면, 서로 서통할 수가 없을 것이다.

그러면 중간에 서로 다른 나라의 언어를 잘 아는 번역가가 있다면 어떨까?

번역가가 있다면 소통할 수 있다.

번역가가 있기에 소통이 가능한 것입니다.

마찬가지로 인간과 컴퓨터 사이에도 번역가가 있는데, 그것을 컴파일라고 합니다.

인간과 컴퓨터간의 번역가 컴파일

그럼 제목에서처럼 인터프리터는 무엇인가? 

프로그래밍 언어에는 두가지 종류로 나눠진다. 1. C, C++, Java, C#와 같은 컴파일 언어가 있고,

2. 자바스크립트, 파이썬과 같은 스크립트 언어가 있다.

1번이 컴파일러이며, 2번이 인터프리터라고 생각하면 됩니다.

인터프리터 vs 컴파일러

이는 번역하는데 있어 차이점이 있다.

 

전체를 해석하여 한번에 번역

위와 같이 안녕하세요. 저는 프로그래밍언어입니다. 저에게도 관심을 가져주세요.와 같이 전체를 먼저 해석한 후 번역을 하는 방식이 컴파일러이며, 아래와 같이 안녕하세요 해석 Hello 번역과 같이 한 줄씩 해석하여 번역하는 방식이 인터프리터라고 합니다.

한 줄씩 해석하여 번역

그래서 C, C++, java(자바)는 변수 선언시 타입을 지정해 주어야 하며, 자바스크립트, 파이썬는 변수 선언시 타입을 지정해 주지 않아도 되는 차이점으로 이어지게 됩니다.

 

C, C++, java(자바), C#

변수 선언시

int a=10;

String s="안녕하세요";

 

자바스크립트, 파이썬

변수 선언시

a=10;

s="안녕하세요";

 

위 코드에서 int, String이 타입이며, 컴파일러 방식은 반드시 타입을 지정해 줘야만 합니다.

 

결국 컴파일러와 인터프리터는 번역가이며, 번역의 방식에 따라 나눠진다고 생각하시면 됩니다.

 

ps. 궁금하신 점은 아래 답글에 남겨주세요. 최대한 빨리 답변할 수 있도록 최선을 다하겠습니다.

반응형

'프로그래밍언어' 카테고리의 다른 글

프로그래밍언어 왜 배워야 하나?  (2) 2021.08.08

댓글