본문바로가기

Technology

  • Technology
  • Compile
Compile이란?

컴파일이란 인간이 이해할 수 있는 고급 언어로 작성한 프로그램(소스 코드)을
컴퓨터가 실행(execute) 가능한 형식인 기계어의 프로그램으로 변환하는 작업을 말합니다.

이미지
Compile 개념

컴퓨터는 0과 1로 된 기계어만 이해할 수 있기 때문에 소스코드를 기계어로 변환하는
컴파일 과정이 필요하며, 이 과정을 통해 컴퓨터가 프로그램을 수행할 수 있게 됩니다.

  • 프로그래머 Programmer

    고급 언어(high level language)
    : 인간이 구분하기 쉬운 언어

    C C++­Java 등 소스 코드
    아이콘 아이콘
  • 컴파일러 Compiler

    컴퓨터가 실행 가능한 기계어로
    변환하는 소프트웨어

    C, C++, Java 01
    아이콘 아이콘
  • 컴퓨터 CPU

    기계어(machine language)
    : 기계가 이해할 수 있는 언어

    0 1
    아이콘 아이콘
컴파일 과정

컴파일은 컴파일러(compiler)라고 불리는 소프트웨어를 사용해 수행되며,
컴파일 과정은 일반적으로 4가지의 순서를 통해 이루어집니다.

  • Step 01 Source Code Writing

    특정 프로그래밍 언어로 소스 코드 작성

    인간이 이해하기 쉽도록 작성, 컴퓨터가 직접 실행할 수 없음

    아이콘
  • Step 02 Compilation

    작성된 소스 코드 컴파일러 처리

    소스 코드 분석, 문법 오류 확인, 중간
    코드 또는 기계어 번역

    아이콘
  • Step 03 Linking

    일부 프로그래밍 언어 컴파일 후
    링크 과정 필요

    소스 파일을 하나의 실행 파일로 결합
    (모듈화된 코드 통합/라이브러리 연결)

    아이콘
  • Step 04 Execution

    최종 컴파일된 코드

    기계어로 변환되어 컴퓨터
    CPU에서 실행

    아이콘
컴파일 상세 프로세스

컴파일러가 소스코드를 분석·변환하고 실행가능한 프로그램을 생성하는 과정은 다음과 같습니다.
컴파일러는 단계별 오류를 검출하고 최적화를 수행해, 최종 실행 코드 품질을 향상시킵니다.

이미지
Source Program (원시 프로그램)

프로그래머가 작성한 소스 코드

Lexical Analysis (렉시컬 분석)

소스 코드를 토큰(Token) 스트림으로 분해

공백/주석 제거 및 식별자/연산자/상수 등 추출

Syntax Analysis (구문 분석)

소스 코드의 구조/구문(문법) 검사

토큰 스트림을 구문 트리(Parse Tree) 또는 추상구문 트리(Abstract Syntax Tree, AST)로 변환

문법 오류 발견 시 오류 메시지 생성

Semantic Analysis (시맨틱스 분석)

코드 의미와 의도 검사

변수의 정의와 사용, 데이터 형식 일치, 함수 호출 등 확인

코드 논리 오류나 무결성 문제 식별, 해당 오류 보고

Symbol Table Management (테이블 관리)

소스 코드에서 정의된 변수/함수/상수/데이터 형식 등의 정보 저장 및 해당 식별자들을 추적/관리하기 위해 테이블 생성/관리

Error Handling (오류 관리)

시맨틱스 분석 중 발생할 수 있는 오류를 처리/보고하는 프로세스

오류 식별, 디버그 및 수정할 수 있도록 관리

Code Optimization (코드 효율화)

코드 성능 최적화 과정

중복 코드 제거, 상수 접기, 불필요한 연산제거 등 최적화 기법 적용

코드 실행 속도 향상, 메모리 사용 최적화

Code Generation (목적 코드 생산)

최종 실행 코드 생성

컴파일러는 중간 코드 또는 AST를 기반으로 목적 코드 생성

특정 하드웨어 아키텍처나 운영 체제에 맞게 생성

Object Program (목적 프로그램)

실행 가능한 최종 출력물 (프로그램 파일, 라이브러리)

Product
Inquiry

제품 문의를 남겨주시면
빠르게 답변 드리겠습니다.

*표시는 필수 입력 항목입니다.

  • 유형 선택 *
    Insurance Solution
    Enterprise Solution