[TIL] CS - 컴퓨터가 프로그래밍 언어를 이해하는 과정

이지예·2022년 4월 18일
0

CS

목록 보기
2/4

우리가 작성한 소스코드는 컴파일러가 2진수로 된 머신 코드로 변환해준다.

#include <stdio.h>

  • stdio.h 라이브러리를 추가해서 printf를 쓸 수 있게 해줌.io는 inputoutput이라는 뜻

RAM

컴퓨터는 RAM(Random Access Memory)라는 물리적 저장장치를 포함하고 있다. 우리가 작성한 프로그램은 RAM에 저장되고, 유한한 크기의 비트만 저장 가능하다. 나눗셈을 하거나 곱셈을 할 때, 저장 가능한 비트의 수가 유한하기 때문에 부정확한 결과를 내거나 에러가 뜰 수도 있다.

나눗셈의 경우, 2의 -n승으로 나누기를 하는데, 2로 나누어떨어지지 않는 나눗셈의 경우 실제 계산결과와는 다른 결과를 낼 수 있고, 곱셈의 경우 변수에 곱한 수를 저장한다면, 해당 타입이 저장할 수 있는 수를 넘은 이후에는 0이 출력된다.

프로그램 실행 단계

프로그램을 실행할 때 네 단계를 거친다.

  • 전처리
  • 컴파일링
  • 어셈블링
  • 링킹
  1. 전처리
    전처리기에 의해 수행. #으로 시작되는 코드는 전처리기에게 컴파일링이 이루어지기 전 실행할 일을 알려준다.
    여전히 c코드의 형태

  2. 컴파일
    컴파일러가 c코드를 어셈블리어라는 저수준 프로그래밍 언어로 컴파일한다. 그로 인해 컴퓨터가 이해할 수 있는 언어와 가까운 프로그램으로 만들어준다.

  3. 어셈블링
    어셈블리 코드를 오브젝트 코드로 변환시켜준다. 컴퓨터의 중앙처리장치가
    프로그램을 수행할 수 있게 0과 1로 바꿔주는 작업이다. 어셈블러라는 프로그램이 수행한다.

  4. 링크
    프로그램이 여러개의 파일로 이루어져 있어 하나의 오브젝트 파일로 합쳐져야 할 때 필요한 단계이다.
    컴파일 하는 동안 라이브러리를 링크해서 함수를 실행할 수 있게 한다.

참고 사이트 : https://www.boostcourse.org/cs112/lecture/119011?isDesc=false

0개의 댓글