Your inner compiler engineer wants out!
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.