1. |
|
Part 1-1: 컴파일러 개요
|
컴파일러의 구축 단계 및 컴파일러 구성 기법을 활용한 예 등을 소개한다. |
|
2. |
|
Part 1-2: 구문 정의 및 구문 중심 컴파일
|
프로그램언어의 구문 정의 방법, 파싱 방법, 구문 중심 컴파일 기법 등을 배운다. |
|
3. |
|
Part 1-3: 예측 파싱
|
하향식 파싱 방법인 예측 파싱 방법을 알아보고 간단한 파서를 설계하고 구현하며, 왼쪽 순환 문법을 처리하는 방법을 배운다. |
|
4. |
|
Part 1-4: 어휘 분석
|
컴파일러용 어휘 분석기 구축 방법을 배우고, 그에 필요한 정규 표현 및 전이 다이어그램에 대해 배운다. |
|
5. |
|
Part 1-5: 코드생성
|
컴파일 단계의 하나인 코드 생성을, 가상 스택기계와 8086 기계어에 대한 생성 예를 통해 배운다. |
|
6. |
|
Part 1-6: 자동 어휘분석기 생성기 (Lex)
|
정규표현을 사용하여 어휘분석기를 자동생성하는 Lex 및 Lex의 소스 작성 방법을 간단한 예를 통해 배운다. |
|
7. |
|
Part 1-7: 자동 파서 생성기 (Yacc)
|
문법을 사용하여 파서를 자동생성하는 Yacc 및 Yacc의 소스 작성 방법을 간단한 예를 통해 배운다. |
|
8. |
|
컴파일러 구현 실습 – 강의자료 없음 |
Part 1에서 학습한 내용 및 Lex와 Yacc을 활용하는 실습으로 간단한 예제 컴파일러를 구현한다. |
|
9. |
|
Part 2-1: 형식언어
|
형식언어 정의 방법, 형식 문법 정의 방법, 언어 및 문법 계층 구조를 배운다. |
|
10. |
|
Part 2-2: 정규언어
|
어휘분석기 모형을 위한 정규문법 이론과 정규 표현, 정규 표현식을 배운다. |
|
11. |
|
Part 2-3: 오토마타
|
결정적 유한 오토마타(DFA), 비결정적 유한 오토마타(NFA)의 이론을 배우고, 정규표현에서 NFA로, NFA에서 DFA로 바꾸는 방법을 배운다. |
|
12. |
|
Part 2-4: LR 파서
|
상향식 파서의 기본 개념을 배우고, LR 파서의 종류와 그 작동예를 배운다. |
|
13. |
|
Part 2-5: SLR 파싱테이블
|
SLR 파싱의 핵심인 파싱 테이블을 문법으로부터 차례로 작성하는 방법을 배운다. |
|
14. |
|
Part 2-6: CLR 및 LALR 파싱테이블
|
SLR 파싱의 문제점을 분석하고, 예측기호를 이용하는 CLR 파싱 테이블 구축 방법과, CLR과 SLR의 장점을 이용하는 LALR 파싱 테이블 구축 방법을 배운다. |
|
15. |
|
개별 프로젝트 발표 - 발표자료 없음 |
이 교과 과정를 통해 배운 내용을 이용하여 컴파일러를 구축하고 이를 발표한다. |
|