📌 컴파일 언어, 그리고 스크립트/인터프리터 언어
주제: 컴파일 언어, 그리고 스크립트/인터프리터 언어
컴파일 언어, 그리고 스크립트/인터프리터 언어에 알아보고자 한다.
먼저, 우리가 아는 대부분의 프로그래밍 언어 자체로는 컴퓨터가 이해할 수 없다.
컴퓨터는 오직 기계어만 이해할 수 있다. 간접적으로 비유하자면 0, 1만 이해할 수 있다.
이 부분을 인터프리터와 컴파일러로 해결할 수 있는데 그 차이에 대해 알아보자.
컴파일 언어
컴파일 언어: 소스코드를 컴파일러를 통해 기계어로 변환하는 과정을 거치는 프로그래밍 언어.
특징
- 소스코드를 컴파일하는 과정을 통해 기계어로 번역한다.
- 실행 파일이 만들어지고 그 파일을 실행한다.
- 실행 속도가 빠르다
- 컴파일 과정에서 오류가 발생하면 실행되지 않는다.
- 소스코드가 컴파일된 후에는 소스코드를 변조하거나 유출하기 어렵다.
예시
- 코볼
- C
- Go
- Rust
- Java, C#
※ 빌드랑 컴파일의 차이점은?
빌드는 소스코드 파일을 실행가능한 독립적인 소프트웨어로 변환하는 과정이다.
컴파일은 소스코드를 컴퓨터가 이해할 수 있는 언어로 변환하는 과정을 의미한다.
빌드 과정에 컴파일이 포함되어 있다.
즉, 컴파일된 코드를 실제 실행할 수 있는 독립된 상태로 만드는 것이 빌드.
인터프리터 언어와 스크립트 언어
인터프리터(해석기): 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경
인터프리터 언어: 실행 즉시 인터프리터를 거쳐서 실행되는 프로그래밍 언어
스크립트 언어: 응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어, 응용 프로그램과 독립하여 사용되고 일반적으로 응용 프로그램의 언어와 다른 언어로 사용되어 최종사용자가 응용 프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 함.
특징
- 소스코드를 컴파일 과정없이 바로 직접 실행한다.
- 한 줄 단위로 읽어들여서 번역, 실행된다.
- 속도가 컴파일에 비해 느리다.
- 문법적인 오류가 존재해도 실행된다.
- 명확한 엔트리 포인트(진입점)가 없다.
예시
- Javascript
- Python
- R
- Ruby
- Java, C#
Java와 C#은 인터프리터 언어? 컴파일언어?
둘 다 구현되어 있다.
보통은 컴파일 언어에 가깝지만, 일부 기능에 인터프리터를 사용한다.
예를 들어,
- 가상 머신이 이해할 수 있는 바이트코드로 컴파일된 후, 가상 머신의 인터프리터가 이를 처리한다.
- 인터프리터를 사용하여 코드를 먼저 컴파일하는 대신 한 줄씩 실행하여 더 많은 유연성과 오류가 발생할 때 오류를 catch할 수 있다.
출처
https://velog.io/@jkijki12/%EC%BB%B4%ED%8C%8C%EC%9D%BC-%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8
https://choseongho93.tistory.com/296
https://nyangnyangworld.tistory.com/23
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%96%B8%EC%96%B4
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%96%B8%EC%96%B4
https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%8A%B8_%EC%96%B8%EC%96%B4