• LF몰 이벤트
  • 파일시티 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

SPL Parser

*익*
개인인증판매자스토어
최초 등록일
2010.11.24
최종 저작일
2009.08
22페이지/ 한컴오피스
가격 2,000원 할인쿠폰받기
다운로드
장바구니

소개글

컴파일러 - 오세만 교수님 수업시간에 과제로 출제된 SPL Parser
프로그램 소스 및 보고서 입니다.

목차

1.과제에 대한 설명

Execute Result

프로그램의 실행에 대한 평가

Program Source

본문내용

1.과제에 대한 설명
SPL로 구현된 최대, 최소값을 구하는 프로그램을 parser로 분석하여 좌파스 결과를 출력한다.(C++로 구현)

컴파일러 입문시간에 구현했던 Mini C scanner을 응용하여 scanner를 제작하였다.(Scanner에 대한 프로그래밍 설명은 생략). 제작한 Scanner의 getNextSymbol()함수를 호출하게 되면, MinMax.spl 파일에서 한 개의 토큰을 가져와 토큰에 해당하는 토큰 번호를 리턴하게 된다. 리턴 받은 토큰 넘버를 가지고 SPL Recursive-descent Parser는 SPL Grammar로 구현된 parser 함수들을 거치면서 좌파스 데이터를 출력하게 된다.
Grammar 번호 5번에서 [ <id> : ] <statement> 가 [] 때문에 결정적인 구문이 되질 못한다. <statement>에서 <id>가 나올 수도 있고, []안의 <id>가 올 수도 있기 때문이다. 따라서 다음에 오는 ‘:’를 보기 위해서 getNextSymbol() 함수를 한 번 더 호출하게 되는데 scanner에는 전단계의 tokenNumber를 보는 함수가 존재하지 않는다. 따라서, parser는 scanner에서 전해오는 tokenNumber를 Grammar 번호 5번에 올 경우에, vector로 구현된 buffer에 저장하고 <statement>인지 <id> : 인지 판단한 후 <id> : 아닐 경우에 버퍼에 있는 데이터로 복원시켜서 <statement> Function으로 입력되게 된다.
그 외에는 parser내부에 구현된 함수들을 돌면서 파싱하게 된다.
대부분의 Grammer는 해당 문법의 First와 같다. 그러나 6, 14번 문법은 여러 개의 문법으로 쪼개져서 함수를 구현할 수 있다. 6,7번 문법은 쪼개어질 수 있는 문법순서대로 {} 분류하였다. 하지만, 프로그램에서 Function을 각각이 따로 구현하지 않고 한 Function에 구현하였다

참고 자료

없음

이 자료와 함께 구매한 자료

자료후기(3)

*익*
판매자 유형Bronze개인인증

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

이런 노하우도 있어요!더보기

최근 본 자료더보기
탑툰 이벤트
SPL Parser 무료자료보기
  • 레이어 팝업
  • 프레시홍 - 특가
  • 프레시홍 - 특가
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
AI 챗봇
2024년 07월 18일 목요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
10:32 오전
New

24시간 응대가능한
AI 챗봇이 런칭되었습니다. 닫기