addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwchatcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgoogleimageimagesinstagramlinklocation-pinmagnifying-glassmailminusmoremuplabelShape 3 + Rectangle 1outlookpersonplusprice-ribbonImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruseryahoo

Evolving Domain Specific languages in Ruby

Surya Gaddipati from Groupon will be discussing three progressively intrusive techniques for evolving a Domain Specific Language in Ruby

  1. Metaprogramming: This is what frameworks like Rails mainly use to provide its dsl. ( Wont discuss this much)
  2. 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
  3. 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.

Join or login to comment.

13 went

Our Sponsors

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy