요즘 Ruby의 DSL를 궁금해서 보고 있다.
DSL이란 Domain specific Language약자로서 ,
일종의 특화된 언어를 만드는 것이다.
칼도 보면 고기잡는 칼, 종이 자르는 칼,
과일깎는 칼등등 용도에 따라서 있는데, 우리는 왜 항상 맥가이버 칼을 들고 다닐까 에서
나오는 관심사들이 DSL이다.
전용칼을 만든 것이다. 물론 맥가이버 칼로,
맥가이버 칼에는 여러종류가 있는데
전통적으로 쇳덩이를 던져주고 만드는 C계열의 회사제품이 있고
--> 여러 파생상품이 있음, 사과깎는 칼로도 쓰임(Object-C)
기성부품을 쓰는 Java계 맥가이버칼이 있는 가하면,
--> Android행성 및 잘보면 대부분의 커피샵에서 쓰고 있음
요즘 잘나가는 Python계 - 이건 쇳덩이를 던져주는 C계열에
여러가지를 추가해서 좀더 편리하게 되어있는것,
--> 구글신도 추천
그리고 칼을 깎을 수 있게 해주는 Ruby계가 있다.
이중에서 관심있게 보는 것이 Ruby계의 DSL인데,
파이썬에도 물론 DSL이 있는데 이것은 EDSL(embeded DSL)이라서
기본적으로 파이썬 문법을 알고 시작해야 사람들이 접근하기가 쉽다.
그래서 결국 알아본것이 Ruby계 , 물론 전통적인 Yacc/Lex도 있지만,
이건 너무 배보다 배꼽이 더커지는게 문제,
나는 그냥 간단히 과일깎는 칼을 만들고 싶을뿐인데,
Yacc/Lex까지 들어가면 뭐 거의 금속을 제련하는 수준이니,
적당한 선에서 끊는 것도 중요
No comments:
Post a Comment