250x250
Notice
Recent Posts
Recent Comments
«   2024/10   »
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 31
Archives
Today
Total
관리 메뉴

SYDev

Chapter 03-1 : 소스 코드와 명령어 본문

Computer Architecture + Operating System/Computer Architecture

Chapter 03-1 : 소스 코드와 명령어

시데브 2023. 7. 21. 14:56
728x90

학습 목표

  • 프로그래밍 언어로 작성한 소스 코드가 컴퓨터 내부에서 명령어로 변환, 실행되는 과정을 학습

 

고급 언어와 저급 언어

  • 고급 언어(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