2010학년도 2학기 프로그래밍언어론 프로젝트2010학년도 2학기 프로그래밍언어론 프로젝트

Posted at 2010. 12. 14. 15:11 | Posted in Computer Science/프로그래밍언어론


  이번 학기 프로그래밍언어론 프로젝트는 Pascal 언어에 대한 인터프리터를 만드는 것이였다. 2010년 12월 14일 화요일 오후 2시부터 제2공학관 4층 실습실에서 DEMO를 진행하였다. DEMO를 진행하는 중 이찬근 선생님이 오셔서 잘 되냐고 물어보셨지만 선뜻 대답할 수 없었다. 참 부끄러웠다.

  Lex를 통해 어휘 분석과 토큰에 대한 Linked List를 구성하고 RDP 방식으로 Non-terminal에 대한 함수 호출을 통해 파싱을 진행하게 된다. 여기까지는 잘 구현하였다. 하지만 문제는 변수에 대한 처리 및 연산이였다. 특히 변수처리가 너무 어려웠다. -1 이라는 숫자가 있을 때 -는 기호로 1은 숫자로 인식하여 음수 기호 다음에 나오는 숫자가 진짜 음수라는 것을 알려줘야 되지만 막상 그것이 쉽지가 않았다. 이것뿐만 아니라 여러가지 어려움이 많았다.

  소위 드래곤북이라 불리는 책 표지를 보면 기사와 용에 대한 그림이 나온다. 이 책 표지를 자세히 보면 재미있다. 용의 그림에는 컴파일의 복잡도라 적혀 있고 기사의 검에는 LR파서가 적혀 있다. 물론 이번 프로젝트는 LL파서 기법을 사용하였다.

  아무튼 이번 겨울 방학의 과제가 하나 더 생겼다. 이번 겨울 방학때는 프로그래밍언어 3종 세트에 대해 Review를 하고 새로운 언어에 대한 파서를 만드는 것이다.

'Computer Science > 프로그래밍언어론' 카테고리의 다른 글

JLex 1.4.3 사용기  (0) 2010.11.08
//