본문 바로가기

B1:기초 Basement

컴파일러의 논리적 구조 6단계

반응형
컴파일러의 논리적 구조 6단계
1. 어휘분석(Lexical Analysis)
  원시프로그램을 읽어 들여 문법적 단위(토큰,token)으로 분리하여 출력하는 기능
2. 구문분석
  토큰들이 주어진 문법에 맞는지 검사하여, 맞는 문장은 구문구조(파스 트리,parse tree)를 만들어 출력하고, 틀린 문장은 오류 메시지를 작성함. 생성된 파스 트리를 바탕으로 구문트리(syntax tree)를 생성함
3. 의미분석(Syntax Analysis)
  구문트리를 검사하여 산술식,연산자,피연산자,형(type)에 대한 검사를 수행
4. 중간코드 생성
  구문지시적 변환(Syntax-directed translation)을 수행함
5. 코드최적화
  코드 실행시 기억공간이나 실행시간을 절약하기 위해 지역최적화 또는 전역최적화를 수행함.
  - 지역최적화 : 중복명령 제거, 불필요한 코드 제거, 제어흐름 최적화, 대수학적 식 간소화, 연산 세기 경감(Strength reduction), 상수 전파, 복사전파, 공통부분식 제거, 결합변형 등
  - 전역최적화 : 코드이동, 귀납변수 최적화, 루프 융합, 루프 전개 등
6. 목적코드생성
  중간코드 생성물을 기계명령어로 바꿔주는 역할
반응형