Note: This page covers the architecture of the (BEAM-based) Elixir implementation. So, it may not accurately describe some aspects of other variants. Basically, YMMV (:-).


Elixir is basically a Lisp implementation, 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 bytecode.

The bytecode is loaded and run by the Erlang Virtual Machine. 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.

Data Flow

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!

Topic revision: r7 - 05 Mar 2013, RichMorin
This site is powered by Foswiki Copyright © by the contributing authors. All material on this wiki is the property of the contributing authors.
Foswiki version v2.1.6, Release Foswiki-2.1.6, Plugin API version 2.4
Ideas, requests, problems regarding CFCL Wiki? Send us email