본문 바로가기
공부/compiler

2. 형태소분석~~~~중간코드생성

by 사당동호랭이 2011. 6. 11.

 
 형태소 분석을 통해서 만든 토큰을 구문 중심 변환기(Syntax Directed Translation)을 통해서 중간코드로 만들어지게 된다.

 ★ 문장의 형식 
  - 'stmt->if( expr) stmt else stmt'  => 왼쪽 문법 기호는 오늘쪽 문자열을 생성한다. 생성규칙!!
  - Terminal(터미널) : 토큰 
  - Nonterminal(넌터미널) : 연속된 여러 개의 토큰표현.  
  - G = { Nonterminal, Terminal, Production rule,  Start symbol }

 ★ Parsing(파싱)
  - 주어진 토큰열에 대해서 적절한 파스트리를 찾는 과정. 어떤 토큰열이 그 문법에 의해서 생성될 수 있는지를 검사하는 과정.
  - 파싱 방법 : 하향식(top-down), 상향식(bottom-up) 
  - 하향식은 파서를 매우 쉽게 만들 수 있지만 더 넓은 범위의 문법과 번역 계획을 처리할 수 없다. 예측파싱을 많이 이용한다. 예측파서는 생성 규칙의 오른쪽에 의해서 생성되는 첫번째 기호가 무엇인가라는 정보를 파싱의 기반으로 한다.
  - 하향식은 모호성 제거하고 왼쪽 순환(자신이 생성규칙의 제일 왼쪽에 나오는 것)을 제거해야 한다.  최적화하려면 꼬리(tail)순환도 제거해야 한다.
  - 상향식은 넓은 범위의 문법과 번역 계획을 처리할 수 있지만 만들기 어렵다.