반응형
오늘은 컴파일, 어셈블, 링킹, 인터프리터에 대해 알아보겠습니다.
컴파일 : 흔히 우리가 사용하는 프로그래밍 언어인 고수준언어(C, C++, JAVA 등)를 컴퓨터가 이해하는 저수준의 언어(기계어, 어셈블리어 등)로 번역하는 작업입니다.
쉽게 말하면 컴파일러는 번역기, 해석기라고 할 수 있습니다. 언어를 변환하는 것이죠.
번역하기 전의 문서를 소스코드 혹은 원시코드라 부르고, 번역된 문서를 목적코드라고 합니다.
컴파일을 다르게 말하면 소스코드를 목적모드로 변환하는 것이라고 볼 수 있습니다.
컴파일을 하는 목적은 우리가 짠 소스코드를 컴퓨터가 이해할 수 있도록 하여 그것을 실행하기 위해서 입니다.
어셈블 : 어셈블리어를 기계어로 번역하는 것입니다.
기본 컴퓨터 명령어들을 컴퓨터 프로세스가 기본 연산을 수행하는데 사용할 수 있는 비트 패턴으로 변환합니다.
어셈블리언느 기계어와 1:1 매칭입니다.
링킹 : 목적코드와 목적코드에서 사용하는 라이브러리들을 묶어주는 것입니다.
인터프리터 : 원시코드를 런타임 중에 한번에 한 줄씩 읽고, 바로 실행하는 프로그램입니다.
컴파일러와는 대비가 됩니다.
인터프리터는 아래의 3가지 중 한가지 기능을 가집니다.
1. 소스코드 직접 실행
2. 소스코드를 다른 중간코드로 변환하고, 변환한 것을 실행
3. 미리 컴파일된 저장 코드의 실행을 호출
오늘 포스팅은 여기까지 하겠습니다.
반응형