Elixir Transmutation
In this tiny tutorial, we'll see how to implement your own custom DSL for running it under the famous BEAM virtual machine. DSL means Domain-Specific Language, so here we focus on a special case: the language for generative metaprogramming and manipulating source code of any other (target) languages such as Python, Java,..
metalang
ponyatov/metaLang
DSL: Domain-Specific Language
metaL manifest
generative metaprogramming
Why Elixir ?
BEAM virtual machine
Object graph
Object
: base node type
Primitive
: scalar types
Pattern Matching over object graph
Attributed Graph in Elixir
Pratt parser
Parsing: yecc
& leex
Parser Combinators
Semantic Transformations
Self-Adjusting Computation
Erlang Abstract Format