Search
K
Comment on page
📗

Compiled Language & Interpreted Language

Translation
High-level Language는 크게 두 부류로 나눌 수 있습니다. 바로 Compiled Language와 Interpreted Language입니다.

1. 차이점

여러분은 한국어를 모국어로 말할 수 있습니다. 만약 여러분이 영어밖에 할 줄 모르는 친구가 있다고 생각해보세요. 그리고 여러분은 그 친구에게 편지를 쓰기 위해 한국어와 영어를 모두 할 줄 아는 누군가에게 번역을 요청합니다.
그 번역가는 두 가지 방식으로 번역 작업을 할 수 있습니다. 첫째로는, 여러분이 한국어로 쓴 편지를 그 친구에게 가져가서 한 문장, 한 문장 읽으며 동시에 한 문장, 한 문장 번역해서 읽어줄 수가 있습니다. 둘째로는 여러분이 한국어로 쓴 편지를 사전에 모두 영어로 번역을 하여 영어로 된 편지를 작성하고 이미 완전히 번역된 편지를 그 친구에게 전달해 줄 수 있습니다.
Interpreted Language는 편지를 가져가서 한 문장, 한 문장 읽으면서 동시에 번역하는 상황과 유사합니다. Compiled Language는 사전에 번역해놓은 편지를 친구에게 전달해주는 것과 유사합니다.

2. 특징 및 장단점

컴퓨터가 이해하기 위해서는 프로그램 또한 일종의 번역 작업을 반드시 거쳐야만 합니다.
여러분이 작성한 코드를 Machine Language로 변환한다면, 그 결과물은 특정 Machine Language를 사용하는 컴퓨터들만 이해할 수 있습니다. Mac은 PC와는 다른 Machine Language를 사용합니다. 그래서 만약 여러분이 다양한 플랫폼에서 실행될 수 있는 프로그램을 만들고 싶다면, 여러 가지 버전을 Compile해야만 합니다.
반면에 Interpreted Language는 Interpreter가 내장된 모든 컴퓨터에서 실행할 수 있습니다. 자바스크립트가 가장 좋은 예입니다. 사용자의 컴퓨터에 자바스크립트 코드가 전달된다면, 그것은 어디서든 통용 가능한 버전입니다. 브라우저에 내장된 Interpreter가 해당 코드를 필요한 순간에 번역하여 컴퓨터에게 전달하고 명령을 내리게 됩니다.
이것이 바로 Interpreted Language의 가장 큰 장점입니다. 단점은 프로그램이 실행됨과 거의 동시에 번역 작업이 이루어지기 때문에 성능 상의 약점이 있을 수 있습니다.
최신 컴퓨터들은 너무나도 빨라서 이런 성능상의 약점은 사실 인간이 느끼기엔 굉장히 미미합니다. 하지만 CPU를 많이 사용하는 3D 게임이나 복잡도가 높은 프로그램을 실행하게 되면 느끼게 될 수도 있습니다.