원래는 C#에서 Irony라는 라이브러리(lex&yacc와는 달리 생성기를 쓰지 않습니다.)를 사용해 만들려고 했는데 기초를 모르니 만들지를 못하겠네요..
인터넷에서 기초좀 다지고 하려해도 코드만 죽 써놓는 사람이나 중간에 연재하다 만사람도 있더라구요.
영문 사이트는 확실히 설명이 잘되있긴한데 영어를 잘못해서 이해가 안되더군요 ㅠㅠ
인터프리터 만들기전에 먼저 스택 계산기부터 직접 만들어보세요.
그 다음 완벽하게 이해가 되면, 간단한 언어를 선정해서 역시 직접 recursive descent parser를 만들어보세요.
만들면서 틈틈히 필요할때마다 automata 공부를 하게되면, 인터프리터 기본기는 익힐 수 있을겁니다.
인터프리터 만들기전에 먼저 스택 계산기부터 직접
인터프리터 만들기전에 먼저 스택 계산기부터 직접 만들어보세요.
그 다음 완벽하게 이해가 되면, 간단한 언어를 선정해서 역시 직접 recursive descent parser를 만들어보세요.
만들면서 틈틈히 필요할때마다 automata 공부를 하게되면, 인터프리터 기본기는 익힐 수 있을겁니다.
오토마타라...
난해하군요 +_+
http://norvig.com/lispy.html
http://norvig.com/lispy.html
http://www.cs.uky.edu/~lewis/essays/comp-index.html
오토마타 기초정도를 알고 있으면 이 자료가 어느정도 도움이 될듯 합니다.
한빛미디어에서 만들면서 배우는 인터프리터라는 책을
한빛미디어에서 만들면서 배우는 인터프리터라는 책을 출간했습니다.
http://www.hanb.co.kr/book/look.html?isbn=978-89-7914-904-3
이 책을 보시면 인터프리터를 만드시는 데 많은 도움이 될겁니다.
인터프리터......
인터프리터 자체가 어느정도의 이론을 필요로 합니다.
아무런 밑바탕 없이 만들수가 없습니다.
변수관리, 펑션 관리, 콜 관계, 연산자 우선순위, 문법의 모호성제거 등등.......언어 하나 만드는것과 동일한 과정이 필요합니다.
즉.......컴파일러 이론을 좀 공부해보세요...도움되실겁니다.
위의 한빛미디어 서적도 가지고있습니다만......책도 얇거니와, 기본적인 이론에 대해 깊게 설명해주지는 않습니다.
---------------------------------------------------------------
Opensource에 기여하는 것이 꿈입니다.
내가 만든 코드를 모두가 사용할 때 까지~
댓글 달기