[CS:APP] 1-1) 비트와 컨텍스트

2023. 3. 6. 21:48Computer Science

728x90
반응형

정보는 비트와 컨텍스트로 이루어진다.

아래의 hello 프로그램이 실행되는 과정을 알아보자!

 

hello.c

#include <stdio.h>

int main()
{
    printf("hello, world\n");
    return 0;
}

hello 프로그램은 프로그래머가 에디터로 작성한 소스 프로그램(= 소스파일)로 생명을 시작하며, hello.c라는 텍스트 파일로 저장된다.

 

소스 프로그램 ( = 소스파일 )

hello.c 프로그램은 연속된 바이트들로 파일에 저장된다!

  • 소스 프로그램은 0 또는 1로 표시되는 비트들의 연속이며, 바이트라는 8비트 단위로 구성된다.
  • 바이트는 프로그램의 텍스트 문자를 나타낸다.
  • 대부분의 컴퓨터 시스템은 텍스트 문자를 아스키(ASCII) 표준을 사용하여 표시한다.

아스키(ASCII) 표준

    • 아스키 표준은 각 문자를 바이트 길이의 정수 값으로 나타낸다.
    • 각 바이트는 특정 문자에 대응되는 정수 값을 갖는다.
    • ex)
      바이트 35 👉🏻 문자 #
      바이트 105 👉🏻 문자 i
      바이트 10 👉🏻 문자 \n (newline 문자)
    • hello.c처럼 오로지 아스키 문자들로만 이루어진 파일들을 텍스트 파일이라고 부른다.
      (다른 모든 파일들은 바이너리 파일이라고 부른다.)

 

컨텍스트

  • 모든 시스템 내부의 정보는 비트들로 표시된다.
    (모든 시스템 내부의 정보: 디스크 파일, 메모리상의 프로그램, 데이터, 네트워크를 통해 전송되는 데이터)
  • 서로 다른 객체들을 구분하는 유일한 방법은, 이들을 바라보는 컨텍스트에 의해서다.
  • 일례로 다른 컨텍스트에서는 동일한 일련의 바이트가 정수, 부동소수, 문자열 또는 기계어 명령을 의미할 수 있다.

 

이런 것들을 알아야 하는 이유 🤔

  • 컴퓨터 내에서 숫자들의 표현이 우리가 알던 정수나 실수와 같지 않기 때문에 프로그래머로서 이들에 대해 이해할 필요가 있다.
  • 이들은 예상하지 못하는 방식으로 움직일 수 있는 유한한 근사값이다.
728x90
반응형