컴파일러란?
어떤 언어(source language)로 쓰여진 프로그램을 입력으로 받아들여서 대등한 다른 언어(target language)의 프로그램으로 바꿔 주는 프로그램
분석 단계를 수행하는 도구들
- 구조편집기 : 문서작성과 편집 기능, 프로그램 문서 분석하여 적당한 형태의 계층적 구조 출력.
- Pretty 프린터 : 프로그램의 구조가 명확하게 보이도록 출력
- 정적 검사기(Static checkers) : 프로그램을 읽어서 분석한 다음 프로그램을 실행하지않고 내재된 결함을 발견해줌.
- 인터프리터(Interpreter) : 소스프로그램을 한번에 기계어로 변환시키는 컴파일러와 달리 프로그램을 한 단계씩 기계어로 해석하여 실행하는 '언어처리 프로그램'
★ Lexical analyzer(형태소 분석)
- 토큰별로 쪼갬.
★ Syntax analyzer(구문 분석)
- 파싱..토큰을 문법적인 표현으로 바꿈
★ Semantic analyzer(의미 분석)
- 의미 오류를 검사하고 다음에 이어질 코드 생성 단계를 위해 타입 정보를 모아서 정리.
★ Intermediate code generator(중간코드 생성)
- 명시적인 중간 단계를 생성. 생성하기 쉽고 목적 프로그램으로 변환하기 쉬워야한다.
★ Code Optimizer(코드 최적화)
- 중간코드를 향상시켜서 더 빠른 실행 코드를 생성시키게 해 줌.
★ Code generator(코드 생성)
- 목적 코드를 생성.
어떤 언어(source language)로 쓰여진 프로그램을 입력으로 받아들여서 대등한 다른 언어(target language)의 프로그램으로 바꿔 주는 프로그램
분석 단계를 수행하는 도구들
- 구조편집기 : 문서작성과 편집 기능, 프로그램 문서 분석하여 적당한 형태의 계층적 구조 출력.
- Pretty 프린터 : 프로그램의 구조가 명확하게 보이도록 출력
- 정적 검사기(Static checkers) : 프로그램을 읽어서 분석한 다음 프로그램을 실행하지않고 내재된 결함을 발견해줌.
- 인터프리터(Interpreter) : 소스프로그램을 한번에 기계어로 변환시키는 컴파일러와 달리 프로그램을 한 단계씩 기계어로 해석하여 실행하는 '언어처리 프로그램'
- 토큰별로 쪼갬.
★ Syntax analyzer(구문 분석)
- 파싱..토큰을 문법적인 표현으로 바꿈
★ Semantic analyzer(의미 분석)
- 의미 오류를 검사하고 다음에 이어질 코드 생성 단계를 위해 타입 정보를 모아서 정리.
★ Intermediate code generator(중간코드 생성)
- 명시적인 중간 단계를 생성. 생성하기 쉽고 목적 프로그램으로 변환하기 쉬워야한다.
★ Code Optimizer(코드 최적화)
- 중간코드를 향상시켜서 더 빠른 실행 코드를 생성시키게 해 줌.
★ Code generator(코드 생성)
- 목적 코드를 생성.
★ 심벌테이블
- 각 식별자에 해당하는 레코드를 포함하는 데이터 구조
'공부 > compiler' 카테고리의 다른 글
6. 중간코드 생성(Intermediate code generation) (0) | 2011.06.14 |
---|---|
5. 구문 중심 번역 (Syntax-Directed Translation) (0) | 2011.06.14 |
4. 구문 분석 (Syntax Analysis) (0) | 2011.06.11 |
3. 형태소 분석 (0) | 2011.06.11 |
2. 형태소분석~~~~중간코드생성 (0) | 2011.06.11 |