Computer Architecture + Operating System/Computer Architecture
Chapter 03-1 : 소스 코드와 명령어
시데브
2023. 7. 21. 14:56
학습 목표
- 프로그래밍 언어로 작성한 소스 코드가 컴퓨터 내부에서 명령어로 변환, 실행되는 과정을 학습
고급 언어와 저급 언어
- 고급 언어(high-level programming language): 컴퓨터가 이해하는 언어가 아닌 사람이 이해하고 작성하기 쉽게 만들어진 언어
- 저급 언어(low-level programming language): 컴퓨터가 직접 이해하고 실행할 수 있는 언어
- 고급 언어로 작성된 소스 코드가 실행되기 위해서는 저급 언어(명령어)로 변환되어야 한다.
저급 언어에는 기계어와 어셈블리어가 있다.
- 기계어: 0과 1의 명령어 비트로 이루어진 언어(가독성을 위해 십육진수로 표현하기도 함)
- 어셈블리어: 0과 1로 표현된 명령어를 읽기 편한 형태로 번역한 언어
기계어 | 어셈블리어 |
0101 0101 | push rbp |
0101 1101 | pop rbp |
1100 0011 | ret |
컴파일 언어와 인터프리터 언어
고급 언어가 저급 언어로 변환되는 방식에는 컴파일 방식과 인터프리트 방식이 있다.
컴파일 언어
- 컴파일 언어: 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어
- 컴파일러: 컴파일을 수행해주는 도구
- 컴파일러는 소스 코드를 처음부터 끝까지 한 번에 저급 언어로 컴파일하는데, 오류가 단 하나라도 있으면 컴파일 실패.
- 목적코드(object code): 컴파일러를 통해 저급 언어로 변환된 코드, 여러 목적 코드가 링킹 과정을 거쳐 실행 파일이 됨.
인터프리터 언어
- 인터프리터 언어: 인터프리터에 의해 소스 코드가 한 줄씩 실행되는 고급 언어
- 인터프리터: 소스 코드를 한 줄씩 저급 언어로 변환하여 실행해 주는 도구
- 한 줄씩 실행하기 때문에 어디서 오류가 발생했는지 찾기 쉬움, 컴파일 방식보다 시간이 오래 걸림.
출처 : 강민철, <혼자 공부하는 컴퓨터구조 + 운영체제>, 한빛미디어(주), 2022.08.16
728x90
반응형