3월 26일

Yullgiii·2024년 3월 26일
0
post-thumbnail

프로그램의 컴파일 및 실행 과정

프로그램이 컴파일되어 실행되는 과정은 다음 단계들로 구성된다:

  1. 소스 코드 작성: 개발자가 프로그램의 기능을 수행하기 위한 소스 코드를 작성한다.
  2. 컴파일: 컴파일러는 소스 코드를 기계어 코드로 변환하는 과정을 수행한다. 이 과정에는 구문 분석, 최적화 등 여러 단계가 포함된다.
  3. 링킹: 컴파일된 코드(오브젝트 파일)에 필요한 라이브러리나 다른 오브젝트 파일들을 결합하여 실행 가능한 파일을 만든다.
  4. 로딩: 로더는 디스크에 저장된 실행 파일을 메모리로 적재한다.
  5. 실행: 프로그램이 메모리에 적재되면, CPU는 실행 파일의 명령어를 수행한다.

링커와 로더의 차이

  • 링커(Linker)

    • 링커는 컴파일된 오브젝트 파일들을 결합하여 실행 가능한 프로그램을 만드는 역할을 한다.
    • 정적 링킹은 실행 파일 생성 시 모든 필요한 코드와 라이브러리를 하나의 파일로 결합한다.
    • 동적 링킹은 프로그램 실행 시 필요한 라이브러리를 연결한다.
  • 로더(Loader)

    • 로더는 실행 파일을 메모리로 적재하여 프로그램이 실행될 수 있게 하는 역할을 한다.
    • 프로그램 실행을 위해 디스크에서 메모리로 코드를 로드하는 과정을 담당한다.

컴파일 언어와 인터프리터 언어의 차이

  • 컴파일 언어

    • 소스 코드 전체를 컴파일러를 통해 미리 기계어로 변환한 후 실행하는 언어다.
    • 컴파일 과정을 거쳐 생성된 실행 파일로 인해 실행 속도가 빠르다.
    • 예: C, C++
  • 인터프리터 언어

    • 소스 코드를 한 줄씩 읽어가며 즉시 실행하는 언어다.
    • 별도의 컴파일 과정 없이 코드를 바로 실행할 수 있어 개발과 테스트가 유연하고 빠르다.
    • 실행 속도는 컴파일 언어에 비해 느릴 수 있다.
    • 예: Python, JavaScript
profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글