Zettelkasten

프로그래밍

·수정 2026.04.23·수정 1

프로그램은 어떻게 돌아가는가?

프로그램의 본질은 명령이다.

프로그래머는 소스 코드를 작성하고 작성한 소스 코드는 일련의 과정을 거쳐, 컴퓨터가 알아들을 수 있는 명령어로 바뀌게 된다.

CPU는 2진수를 계산하는 어떤 기계 장치로 생각할 수 있다. 여기에는 다양한 질문이 있다.

  • 왜 2진수밖에 사용할 수 없는가?
  • 2진수는 어떻게 계산되는가?
  • 작성된 코드는 어떻게 명령어로 번역되는가?

컴파일러: 소스 파일을 실행 파일로 만드는 프로그램 소스 파일: 인간이 작성한 코드, 실해파일: 기계 명령어로 변환

  1. lexical analysis
  2. Parsing: 읽은 토큰을 트리로 만드는 단계
  3. semantic analysis
    • parsing으로 만든 트리가 문제 없는지 확인하는 단계
  4. 코드 생성
    • 중간 코드를 어셈블리어 코드로 변환하는 단계
    • 어셈블리어 코드를 다시 기계 명령어로 변환함
  • lexical analysis와 parsing 차이
    • lexical analysis는 토큰 자체를 찾아내는 것, parsing은 찾은 토큰을 바탕으로 트리를 만들어내는 것

링커: 컴파일러가 생성한 대상 파일 여러개를 하나로 묶어 하나의 최종 실행 파일을 만들어내는 프로그램

  • 심벌 해석
  • 실행 파일 생성
  • 재배치