정의
소스코드는 빌드라는 과정을 통해 실행파일(기계어)로 전환되는데 이러한 과정을
Build
라 함
: C, C++, Go
컴파일 언어의 장점
: 필드가 완료된 실행가능한 파일은 실행속도가 빠름
컴파일 언어의 단점
: 프로그램 수정해야할 경우, 처음부터 빌드를 다시 거쳐야 하기 때문에 대규모 프로그램에서 생산성이 떨어짐
: 플랫폼(OS)에 매우 의존적
: Object 파일 생성 없이 바로 실행
: Javascript, Python, Ruby
: 언어마다 번역해주는 프로그램(환경)을 interpreter라고 함
인터프리트 타입 장점
: 컴파일 없이 바로 실행하므로, 디버깅에 유리, 개발속도 유리
: 플롯폼에서 지원하는 인터프리터만 설치하면 플랫폼에 독립적인터프리트 타입 단점
: 빌드 되어 있는 컴파일 언어 프로그램보다 실행 속도 느림 => 최근에는 하드웨어 속도 빨라져 단점이 많이 없어짐
: 코드 열면 다 보이므로 보안에 좋지 않음
: 소스코드를 바이트코드(bytecode, 일종의 중간언어로서 가상머신 전용 기계어)로 변환하고, VM이라는 프로그램에 의해 기계어로 바꿔줌
: 가장대표적인 VM이 바로 JVM임
: Java
하이브리드언어 장점
: 각 플랫폼에서 지원하는 가상머신만 있으면 플랫폼에 독립적
하이브리드 언어 단점
: 컴파일 언어처럼 하드웨어를 직접 제어하는 작업은 불가능
예를들어, C언어도 전용 인터프리터를 사용하여 인터프리트 타입으로 사용가능