티스토리 뷰
코드를 컴퓨터가 바로 읽을 수 있을까요?

개발자가 작성한 코드를 컴퓨터가 바로 읽을 수 있을까요?
사람들이 작성하는 코드의 경우에는 컴퓨터가 바로 알아볼 수 없습니다.

기계가 읽을 수 있는 기계어로 번역을 해주는 과정이 필요합니다.
사람들이 쓰는 개발언어 (C, C++, Java, Python 등)을 기계어로 번역을 해주는 것이
바로 컴파일러와 인터프리터입니다.
두 가지는 목적은 같지만 기계어로 번역되기까지 작동하는 방식과 개발 언어의 특성에 따라 차이점이 있습니다.
컴파일러, 인터프리터 차이

컴파일러
컴파일러는 프로그램 전체를 스캔하여 이를 모두 기계어로 한번에 번역합니다.
단점:
- 프로그램을 실행하는데 필요한 모든 파일을 스캔하기 때문에 초기 스캔시간이 오래걸립니다.
- 컴파일러는 기계어로 번역시 오브젝트 코드라는 파일을 만드는데 이 오브젝트 파일을 다시 묶어서 하나의 실행 파일로 다시 만드는 링킹 작성을 해야합니다. 따라서 통상적으로 인터프리터보다 메모리를 많이 사용합니다.
장점:
- 초기 스캔은 오래걸리지만, 한번 스캔을 마치면 실행파일을 만들어 놓고 게속 사용하기 때문에 실행 속도를 인터프리터보다 빠릅니다.
- 컴파일러는 오류 메시지를 생성할 때 전체 코드를 검사한 후에 오류 메시지를 생성합니다. 따라서 프로그램 실행 전에 오류를 발견할 수 있습니다.
인터프리터
프로그램 실행시 한번에 한 문장씩만 기계어로 번역합니다.
단점:
- 컴파일러와 다르게 한번에 한 문장씩 읽고 번역하여 실행시키는 과정을 반복하다보니 실행이 조금 더 느립니다.
- 한번에 한 문장씩 읽기때문에 프로그램을 실행해봐야지만 오류 발견이 가능합니다.
장점:
- 컴파일러처럼 목적코드를 만들지 않고, 링킹 과정도 거치지 않기 때문에 메모리 효율이 좋습니다.
- 코드 변경시 빌드 과정없이 바로 실행이 가능합니다. 따라서 개발 속도에 장점이 있습니다.
'CS > JAVA' 카테고리의 다른 글
| 배열 [JAVA] (0) | 2024.10.20 |
|---|---|
| 클래스(Class)와 객체(Object) (0) | 2024.08.02 |
| JAVA 메모리 영역(Stack, Heap, Method) (0) | 2024.06.04 |
| [JAVA] JVM이란? (JDK, JRE, 가비지 콜렉터 ) (0) | 2024.05.23 |
| 자바의 특징 (0) | 2024.05.23 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 그린대학교
- 국비지원
- docker
- git 베포
- 롯데
- 인텔리제이
- JWT
- CSS
- java
- 해시
- static
- 공공데이터포탈
- wsl
- form
- 프로그래머스
- JPA
- 오류
- 국비
- Queue
- 자료구조
- 정보처리기사
- MySQL
- 국비교육
- 덱
- 김영한
- 백준
- (롯데)기업맞춤형 프로젝트
- deque
- Git
- 스택
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함