Term Project 수행 안내 2011년 2학기 컴파일러
Outline Term Project 수행 목적과 설계 대상 Term Project 설계 제한 요소
Term Project 수행 목적과 설계 대상 수업 시간에 배운 관련 지식을 활용하여 컴파일러를 설계하고 구현할 수 있는 능력을 배양한다. 설계 대상 간단한 소스 프로그램을 컴파일 할 수 있는 프로그램 C, C++, Yacc, Lex 등을 통합적으로 이용
Term Project 설계 제한 요소 형선언, 사칙연산, if문, for문은 포함함 부프로그램이나 기타 기능 추가 시 이를 평가하여 가점을 줌 소스 프로그램에 대한 명시적인 중간 코드 생성 중간 코드를 향상시켜 더 빠른 실행 코드를 생성시키는 코드 최적화 단계가 있어야 함 최종적으로 일반적으로 재배치 가능한 기계 코드나 어셈블리 코드로 이루어진 목적 코드를 생성하여야 함 가상어셈블리어 코드를 만들고, 인터프리터를 만들어도 됨 Pentium용 어셈블리어나 Byte-code로 결과를 출력하여 수행되면 이를 인정하여 가점을 줌 언어 선택이나 문법 선택, 언어정의 따위는 각자 알아서 함 Lex나 Yacc을 사용해도 됨 단, 이를 이용하지 않으면 이를 인정하여 가점을 줌, Parse table은 Yacc의 것을 이용할 수 있음
Term Project 평가 평가비중 평가물 평가 주의점 과제물, 보고서, 발표(개인점수)를 포함하여 총 50% 컴파일러 및 구현 설명 보고서 평가 주의점 Automata 이론에 대한 이해도 컴파일 단계에 대한 이해도 심벌 테이블 운용과 오류 제어에 대한 이해도 실제로 수행 가능한 시스템 구현 능력 보유 설계 문서의 명확성 발표 태도 및 내용
Term Project 수행 일정 11월 8일 11월 21일 ~ 26일 (13주차) 12월 5일 ~ 9일 (15주차) 제안서 제출 11월 21일 ~ 26일 (13주차) 중간보고서 제출 12월 5일 ~ 9일 (15주차) 최종보고서 제출
Term Project 제안서 11월 8일까지 과제 제출 게시판에 upload 제안서에 포함할 사항 기한에 따른 감점 있음 소스 프로그램 제시 소스 프로그램을 바탕으로 예상되는 결과 중간코드, 코드 최적화 단계, 목적 코드 컴파일러 구현을 위한 요소 기술 개발 팀 구성 (팀원의 역할) 가정 및 제약 사항 세부 수행 일정
Term Project 중간 보고서 11월 24일까지 과제 제출 게시판에 upload 중간 보고서에 포함할 사항 기한에 따른 감점 있음 중간 보고서에 포함할 사항 수행 일정에 따른 개발 진행 상황 평가 (목표 달성도) 제안서로부터 변경된 사항(소스코드, 목적코드 등) 현재까지 진행된 상황 Lexical Analyzer 개발 (Lex 또는 C, C++로 개발) Grammar 작성 (Parsing Part) 수행 시 발견된 애로점
Term Project 최종 보고서 서론 본론 결론 시스템 소개 일정 및 역할 분담 기능 설명 구현 설명 계획 대비 목표 달성도 앞으로 개선할 점