This page covers the architecture of the (BEAM-based) Elixir implementation.
So, it may not accurately describe some aspects of other variants.
Elixir is basically a Lisp
based on a compiler
and a virtual machine
The compiler turns incoming code into Elixir data structures, handles expansion
of syntactic macros
and generates Erlang
The bytecode is loaded and run by the Erlang
This is an unusual choice for a Lisp,
but it allows Elixir to take advantage of the entire Erlang ecosystem:
community, libraries, tooling, etc.
This capability is further supported by Elixir's
interoperability support, use of Erlang data types, etc.
To be continued...
This wiki page is maintained by Rich Morin
an independent consultant specializing in software design, development, and documentation.
Please feel free to email
comments, inquiries, suggestions, etc!