728x90
< 목차 >
0. 들어가며
1. 저급 언어의 두 종류
2. 고급 언어 → 저급 언어로 변환되는 대표적인 방식
3. 컴파일과 인터프리트의 차이
4. 명령어 관찰하기
0. 들어가며
컴퓨터는 명령어를 이해한다.
소스코드는 실행되기 전, 명령어(+ 데이터)로 변환되어 실행된다.
- 소스코드: 사람(개발자)가 이해하기 편한 언어 [고급 언어]
- 명령어 & 데이터: 컴퓨터가 이해하기 편한 언어 [저급 언어]
즉, 고급 언어로 작성된 소스코드는 내부적으로 저급 언어로 구성된 명령어와 데이터로 변환된다.
1. 저급 언어의 두 종류
- 기계어: 컴퓨터(CPU)가 이해하는 언어
- 어셈블리어: 기계어를 사람이 이해하기 편하게 변환시킨 언어
CPU 혹은 컴파일러의 종류에 따라서, 변환되는 명령어의 종류(생김새)가 달라질 수 있다.
2. 고급 언어 → 저급 언어로 변환되는 대표적인 방식
- 컴파일
- 인터프리트
참고로, 컴파일 언어의 특성과 인터프리트 언어의 특성을 모두 갖춘 언어도 있다. 대표적으로는 Java가 있다.
그럼 위 2가지 방식에 대해 좀 더 알아보도록 하자
3. 컴파일과 인터프리트의 차이
컴파일
: 소스코드 ‘전체’가 컴파일러*에 의해 검사 및 목적코드(object code)로 변환
- 대표적인 예: C, C++, Rust
👾 컴파일러(compiler)
: 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램
e.g. gcc, clang, Visual Studio
인터프리트
: 소스코드를 ‘1줄씩’ 인터프리터에 의해 검사 및 목적코드로 변환
- 대표적인 예: Python, JavaScript
그렇다면, 컴파일과 인터프리트 방식 중 어떤 게 더 성능이 좋을까?
컴파일 방식이 더 좋다. 한 줄씩 실행해야 하는 인터프리트 방식보다 한 번에 전부 실행해버리는 컴파일이 더 좋다고 알려져 있다고 한다.
4. 명령어 관찰하기
위 2개의 비교와 같이, 같은 프로그래밍 언어라도 CPU의 종류에 따라서 달라질 수 있다.
728x90
'CS (Computer Science)' 카테고리의 다른 글
[개발 공부 117일차] 컴퓨터 구조 | 2진법, 16진법, 문자 인코딩/디코딩 (8) | 2024.10.12 |
---|---|
[개발 공부 116일차] 컴퓨터 구조 | 명령어 구조와 주소 지정 (4) | 2024.10.11 |
[개발 공부 114일차] 컴퓨터 구조 | 컴퓨터의 4가지 핵심 부품 (0) | 2024.10.09 |
[개발 공부 112일차] DB 개론 | 성능을 고려한 데이터 모델링 (2) | 2024.10.03 |
[개발 공부 111일차] DB 개론 | 데이터 모델링 문제 및 해소 (10) | 2024.10.02 |