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