- 프로그래밍 언어 분류 [chapter 05 기본 미션]
1. 컴파일 언어, 인터프리터 언어
컴파일 언어 : 배포되기 전 코드를 기계어, 바이트 코드 등 다른 형태로 변환되는 언어 ex) C, Java 등
→ 실행속도가 빠르며, 자료형이 고정되어 있다. (정적 타입)
인터프리터 언어 : 작성된 그대로 한 줄 씩 실행되는 언어 ex) JavaScript, Python 등
→ 배포, 오류 수정이 수월하며, 자료형이 고정되어 있지 않다. (동적 타입)
- 컴파일 언어와 인터프리터 언어 비교
- 빌드속도(컴파일 < 인터프리터) : 컴파일은 프로그램 전체를 빌드하기에 시간이 더 걸린다.
- 실행속도(컴파일 > 인터프리터) : 빌드할 때 코드 전체를 빌드하기에 실행속도는 더 빠르다.
2. 절차지향, 객체지향, 함수형 프로그래밍
3. 매니지드 언어, 언매니지드 언어
프로그램의 메모리를 언어가 관리하면 '매니지드 언어', 개발자가 관리하면 '언매니지드 언어'
① 대표적인 '매니지드 언어'는 C. 포인터로 개발자가 메모리를 관리
② 대표적인 '언매니지드 언어'는 Java. JVM이 메모리를 관리 (Java Virtual Machine, 자바 가상 머신)
4. 확인 문제 풀기
- 1번 문제
정답 : ③
객체지향과 절차지향은 서로 다를 뿐, 상반된 개념이 아니다.
→ 객체지향(관계나 조직에 초점), 절차지향(순차적으로 실행하는 것에 초점)
- 2번 문제
함수형 프로그래밍을 사용하면 스레드가 많이 사용되는 환경에서 변수 문제로부터 안전한 코드를 작성할 수 있습니다.
객체지향 프로그래밍에서는 상속을 사용해서, 기본이 되는 부모 클래스로부터 추가 속성이나 기능이 있는 자식 클래스를 파생할 수 있습니다.
- 3번 문제
자바 → JVM
C 언어 → 포인터
스칼라 → 함수형 프로그래밍
자바스크립트 → 인터프리터 언어
- 4번 문제
C 언어 : 언매니지드 언어
C++ : 언매니지드 언어와 객체지향 언어의 사이
자바 : 객체지향 언어
자바스크립트 : 인터프리터 언어