빌드(Build)방식에 따른 언어 분류
1. 컴파일(Compile) 언어
- (고급언어로 작성된)소스코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 방식이다.
- 전체를 번역하므로 시간이 오래 걸리지만, 한번 번역을 해 두면 다시 번역하지 않아도 되므로, 실행 속도가 빠르다.
- C, C++ 등
2. 인터프리터(Interpreter) 언어
- (고급언어로 작성된)소스코드를 컴퓨터가 이해할 수 있는 언어로 한줄씩 읽어들여 통역하는 방식이다.
- 번역과 실행이 동시에 한줄씩 이루어지므로, 별도의 실행 파일이 없다. 기록이 남지 않아 매번 한줄씩 읽어들이기 때문에 전체적인 시간은 오래 걸릴 수 있다.
- Basic 등
3. 바이트 코드(Byte Code) 언어
- 컴파일로 가상머신(JVM)이 번역할 수 있는 Byte Code언어로 변환되고, 가상머신(JVM)이 기계어로 번역하는 방식이다.
- Java언어를 번역한다고 가정했을 때, JVM이 없다면 운영체제마다 각각 다르게 컴파일 되기 때문에 운영체제별로 만들어야하지만, JVM을 운영체제에 설치하면 운영체제별로 따로 만들 필요가 없어진다.
- Java, Scala 등
선언형 언어
- 선언형 언어는 동작하는 과정을 쓰는 것이 아닌, 원하는 결과를 쓰는 것이다.
(목표를 명시하고 알고리즘은 명시하지 않음)
- 가독성이나 재사용성이 좋고 오류가 적지만, 뒷단에서 처리해야 하는 것들이 많아진다.
- HTML, SQL 등이 있다.
C언어
- 논리적이며 구조적인 시스템 프로그래밍 언어이다.
시스템 프로그래밍 언어라는 이유는 하드웨어를 제어할 수 있기 때문이다.
포인터를 이용해서 메모리에 직접 엑세스 할 수 있다. 그리하여 운영체제를 만들 수 있게 되는 것이다.
- 저급 언어(기계어) 특성을 가진 고급언어이다.