Your inner compiler engineer wants out! Language-oriented programming is a problem-solving approach where one embraces the idea of making custom languages for solving problems that arise in computing. The language one designs need not be full-on, Turing-complete languages. In most cases, one designs a small language suitable for doing what needs to be done in a specificdomain. Language-oriented programming encourages one to be on thelookout for DSLs that don’t exist, but should, and to take the opportunity to make it. That all sounds good, but does it really play out in industry? From an economic point of view, it may not always pay off to make your ownDSL. One may need to be rest content with building libraries and programs, written in the common language of your team, that do the heavy lifting and serve as a stand-in for a DSL. And isn’t the infrastructure of a new language—the lexer, parser, and evaluator/compiler—really hard? In this talk I present how Racket, a Lisp that facilities language-oriented programming, can be used to make your own languages and turn you into a language designer ninja.
I’m a Racket hacker with an academic background (Ph.D. in mathematical logic from Stanford, worked in a number of universities as a post-doc) who now has a day job working at an ecommerce shop in DE. I try to translate some big ideas from computer science to industry (not always successfully, but one ought to try).