컴파일(Compile)과 런타임(Runtime)

2023. 10. 3. 23:18·프로그래밍 언어/C#
컴파일과 런타임은 프로그램의 생명주기에서 중요한 두가지 단계이다.
컴파일은 실행파일을 만들고, 런타임에서 실행파일을 실행한다.

컴파일

개념

  • 개발자의 소스코드를 기계가 이해할 수 있는 2진수 바이너리 코드로 바꿔주는 과정

과정

  1. 프로그래머가 고수준 언어(C, C++, C#, Java...)로 소스 코드를 작성한다.
  2. 컴파일러가 해당 코드를 컴퓨터가 이해하고 실행할 수 있는 기계어 코드로 변환한다.
  3. 컴파일 과정을 마치면 실행 파일이 생성된다. (아직 실행되지는 않는다)
❓ 컴파일 언어와 스크립트 언어
컴파일 언어(C,C++,C#,Java)는 실행전 소스 코드를 컴파일해서 기계어로 바꾼 후 해당 파일을 실행한다. 스크립트 언어(Python, JavaScript)는 코드 작성과 동시에 인터프리터가 기계어로 번역하고 실행한다. 그렇기 때문에 보통 컴파일언어는 스크립트 언어보다 빠른 경향이 있고, 대신 컴파일 과정에서 문법 오류를 발견하기 때문에 문법적 제약이 더 크다. 스크립트 언어는 실행과정에서 번역이 진행되므로 비교적 느리고, 문법적 제약이 적으나 문법 오류를 발견하기 어려운 특징이 있다.

컴파일 에러

  • 컴파일 과정에서 컴파일러가 이해하지 못한 문법적 오류가 있으면 발생한다
  • ex) 문법 오류, 오타, 잘못된 변수나 함수 사용, 타입 불일치 등

런타임

개념

  • 프로그램이 실제로 실행 및 동작하는 단계

과정

  1. 컴파일된 실행 파일은 런타임 환경에서 실행된다.
  2. 사용자의 입력, 데이터 처리, 로직을 수행한다.
  3. 메모리를 할당하고 해체하거나 파일을 읽고 쓰는 등의 작업을 수행한다.

런타임 에러

  • 프로그램 실행중에 발생하는 에러
  • 예상치 못한 조건이나 실행시간에 발생한 오류로 발생한다.
  • ex) 0으로 나누었을 경우, null 참조 오류, 배열 인덱스 참조 오류 등

 

'프로그래밍 언어 > C#' 카테고리의 다른 글

비동기 프로그래밍  (0) 2023.12.25
람다식 () =>  (0) 2023.11.01
C#과 .NET Framework  (0) 2023.10.08
스택 프레임(Stact Frame)과 스택 오버 플로우(Stack Overflow)  (0) 2023.10.03
메모리 구조  (0) 2023.10.02
'프로그래밍 언어/C#' 카테고리의 다른 글
  • 람다식 () =>
  • C#과 .NET Framework
  • 스택 프레임(Stact Frame)과 스택 오버 플로우(Stack Overflow)
  • 메모리 구조
가든_
가든_
  • 가든_
    Code Garden
    가든_
  • 전체
    오늘
    어제
    • 글 목록 (60)
      • 프로그래밍 언어 (11)
        • JAVA (0)
        • C++ (2)
        • C# (9)
      • 개발툴 (24)
        • Visual Studio (0)
        • Visual Studio Code (1)
        • Eclipse (1)
        • Unity (19)
        • Unreal (0)
        • Spring (1)
        • SpringBoot (0)
        • Vue (2)
      • 디자인 패턴 (6)
      • 백엔드 (4)
        • MySQL (1)
        • Servlet (3)
      • 프론트엔드 (4)
        • HTML (3)
        • CSS (0)
        • Javascript (1)
      • 알고리즘 (10)
        • 공식 (3)
        • 백준 (6)
        • SW Expert Academy (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Reflex
    구조패턴
    swea2112
    Unity
    chatGPT
    SetTile
    구조적 UML 다이어그램
    Adaptee
    RDBM
    c#
    오브젝터 어댑터
    DI
    12738
    클래스 어댑터
    Adapter 패턴
    상태공간트리
    Abstract Factory 패턴
    스택
    컴파일 상수
    런타임 상수
    Proxy 패턴
    Java
    UniRX
    MVC
    FixedUpdate
    HTML
    ()=>
    행동 UML 다이어그램
    다이어그램 그리기
    Factory 패턴
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
가든_
컴파일(Compile)과 런타임(Runtime)
상단으로

티스토리툴바