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
//

JLex 1.4.3 사용기JLex 1.4.3 사용기

Posted at 2010. 11. 8. 20:56 | Posted in Computer Science/프로그래밍언어론


프로그래밍언어론의 프로젝트는 인터프리터를 만드는 것이다. 그런게 이것을 아무리 생각해도 모르겠다. 내가 실제 프로그래밍언어론에서 배운것이 활용이 안되는 것 같다. 일단은 JFlex 1.4.3 버젼을 다운로드 받고 실행시켜 보았다. 내가 어떤 JFlex 문법으로 작성된 파일을 주면 Yylex.java 라는 파일이 실행된다.

javac Yylex.java 파일을 컴파일 하는 순간 Yytoken.java 파일이 없다는 오류 메시지가 출력되었다.

Yytoken.java 파일은 Yylex.java 파일과 관련되어 있는데 입력받은 문자열을 토큰 단위로 나누고, 해당하는 토큰의 함수를 호출할 때 Yytoken.java 파일이 필요하다는 것을 알았다.

뭔가 감이 오기 시작하였다. JFlex 문법에 맞게 작성을 하면 나만의 어휘분석기를 만들 수 있다.
//