일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 호이스팅
- js
- 프로그래머스 JS
- 나라사랑카드
- Flex Container
- 프로그래머스 lv0
- 코딩테스트 js
- DOM
- 패스트캠퍼스
- CSS
- flex
- API
- flex item
- udemy
- 변수 선언
- react강의
- K디지털기초역량훈련
- js split
- 국비지원
- 바이트디그리
- 노드
- html
- 리액트
- javascript
- React
- 내일배움카드
- 코딩테스트 lv0
- 자바스크립트
- SVG
- margin-left
- Today
- Total
꺾이지 않는 마음
[CS] 인터프리터 언어 vs 컴파일 언어 본문
기계어
컴퓨터는 0과 1만을 구분할 수 있다는 말을 들어봤을 것이다.
전력이 들어오고 나감에 따라 0과 1만을 출력한다.
그래서 컴퓨터 내에서 이루어지는 모든 동작은
내부적으로 0101011101010110110101010과 같이 무수히 많은 0과 1로 이루어진다.
이것이 바로 기계어다.
근데 저 0과 1만을 가지고 인간이 프로그래밍을 할 수 있을까?
세상에서 제일 가는 천재가 와도 불가능하다.
무수히 많은 저 0과 1을 언제 다 치고 앉아있을까.
그래서 나온게 C언어, Java, JavaScript 등의 프로그래밍 언어다.
물론 기계어와 비슷한 어셈블리어도 있다. 하지만 이것 또한 인간이 사용하기엔 너무 어렵다.
기계어와 어셈블리어처럼 0과 1에 가까운 원시적인 언어일 수록 저급 언어(low-level language)라고 부르고,
인간이 사용하기 쉽도록 만들어진 언어를 고급 언어(high-level language)라고 부른다.
우리가 현재 코딩할 때 사용하는 대부분의 언어가 이 고급 언어에 포함된다고 보면 된다.
고급 언어 중에서 이제 인터프리터 언어와 컴파일 언어로 나뉘게 된다.
인터프리터 언어
대표적인 인터프리터 언어로는 Ruby, Python, Javascript 등이 있다.
인터프리터 언어는 코드를 한줄 씩 읽고 실행한다.
컴파일 하지 않고 인터프리터가 있는 환경에서 즉시, 바로 한줄씩 읽고 해석하고 실행하는 것이다.
한줄 씩 실행되다 보니 코드를 더 유연하고 효율적으로 짤 수 있다.
코딩을 하는데 걸리는 시간이 비교적 짧다는 의미다.
대신 한줄 씩 실행하기 때문에 명령 자체의 속도는 느리다.
또한 실행하기 전에는 오류를 알 수 없다는 단점이 있다.
컴파일 언어
대표적인 컴파일 언어로는 C, C++, Java, Go 등이 있다.
컴파일 언어는 코드가 있는 파일 전체를 한꺼번에 번역한 후, 실행한다.
그래서 컴파일 하는데 시간이 소요되지만,
컴파일 하고 나면 프로그램을 실행하는 속도는 비교적 빨라진다.
컴파일 할 때 오류가 발견되기 때문에 실행 전에 오류를 발견할 수 있다.
하지만 코드를 수정하려면 파일 전체를 다시 컴파일 해야하는 번거로움이 있으며,
운영체제가 달라지면 컴파일을 다시 해야한다는 단점이 있다.
'CS 전공지식' 카테고리의 다른 글
[CS] API가 뭐죠? - 아주 쉽게 설명하기 (0) | 2022.10.22 |
---|---|
[CS] 동기, 비동기 처리란? (0) | 2022.10.20 |