Program Processing Method

Apr 15, 2019


  • 고급 언어로 작성된 프로그램이 실행되도록 처리하는 방법
    • 컴파일 기법, 해석 기법, 하이브리드 기법
  • 컴파일 기법
    • 고급 언어로 작성된 프로그램을 컴퓨터가 바로 실행할 수 있는 프로그램으로 변환하는 방식
    • 컴파일러(Compiler) : 컴파일 하는 프로그램
    • 번역이 완료되면 빠르게 프로그램을 실행시킬 수 있는 장점이 있다.
    • 원시 프로그램
    • -> 컴파일러(컴파일 단계 : 어휘 분석 -> 구문 분석 -> 중간 코드 생성 -> 최적화 -> 코드 생성)
      • 어휘 분석 단계 : 원시 프로그램을 토큰 단위로 자르고, 토큰과 관련된 관련 정보를 구문 분석 단계로 전달
        • 어휘 분석
      • 구문 분석 단계 : 어휘 분석 단계에서 전달받은 토큰들이 문법적으로 옳은지를 검사하고, 오류가 없으면 파스 트리라 불리는 구조를 생성
        • 파스 트리
        • Parse Tree
      • 중간 코드 생성 단계
        • 기계어는 아니지만 어느 기계에도 의존적이지 않으면서도 기계어에 가까운 중간 코드로 된 프로그램을 생성
        • 문법적인 오류가 아닌 의미적인 오류를 검사
        • 중간 코드
      • 최적화 단계 : 중간 코드에서 불필요한 코드를 제거하거나 더 효율적인 코드로 개선하여 중간 코드의 크기를 줄이고 실행 속도를 빠르게 한다.
        • 최적화
      • 코드 생성 단계 : 최적화된 중간 코드로부터 해당 컴퓨터가 인식할 수 있는 목적 프로그램을 생성한다.
    • -> 목적 프로그램 -> 컴퓨터 + 입력 -> 결과
  • 해석 기법
    • 고급 언어로 작성된 프로그램을 바로 실행
      • 인터프리터(Interpreter) : 해석하는 프로그램
        • 고급 언어를 자신의 기계어로 취급하는 컴퓨터를 시뮬레이션한 것
        • Scheme Interpreter
          • Scheme Interpreter
      • 원시 프로그램 + 입력 -> 인터프리터 -> 결과
  • 하이브리드 기법
    • 컴파일 기법과 해석 기법을 혼합한 형태
      • 고급 언어로 작성된 프로그램을 쉽게 해석할 수 있도록 중간 코드 형태로 번역 -> 번역된 중간 코드 형태의 프로그램을 해석하여 실행
      • 원시 프로그램 -> 어휘 분석 -> 구문 분석 -> 중간 코드 생성 + 입력 -> 인터프리터 -> 결과
      • 예 : Java
        • Byte Code라고 하는 중간 코드로 번역
        • 운영체제마다 별도로 존재하는 자바 가상 기계(JVM)가 바이트 코드를 실행