Surya Gaddipati from Groupon will be discussing three progressively intrusive techniques for evolving a Domain Specific Language in Ruby
- Metaprogramming: This is what frameworks like Rails mainly use to provide its dsl. ( Wont discuss this much)
- Code - As - Data using Ripper : Ripper is a ruby 1.9 library which provides AST(abstract syntax tree) of the code you feed it. This AST can then be translated into desired code. I plan to demo this technique I used in my library LINQR ( A .net linq implementation in ruby)https://github.com/suryagaddipati/linqr
- Modifying Ruby Interpreter: Modifying Ruby Interpreter to natively support your syntax. I plan to walkthrough modifying parse.y ruby’s yacc grammar file to support our DSL natively. Also a brief overview of yacc/lex parser generator and lexer.
Note: our September meeting will not follow the usual pattern of the third Tuesday of the month. Instead, we will meet on the fourth Tuesday in September.