Languages, and about languages, on the BEAM
Switch branches/tags
Nothing to show
Clone or download
Failed to load latest commit information.
.gitignore add introduction and call Nov 3, 2015 updates about the BEAM, talks Jun 8, 2018

Languages, and about languages, on the BEAM



This document is intended to list (a) languages implemented to run on the BEAM, the Erlang virtual machine, and (b) documents (articles & presentations) about the hows and whys of writing languages to run on the BEAM.

For the moment, and for want of a better name, I call such languages “BEAM languages” (although I have heard that there are other Erlang VMs, …).

I would like the document to be comprehensive, or at least “representative”. If I have missed a BEAM language, some noteworthy discussion about a BEAM language, or documentation about implementing languages targetting the BEAM, please let me know through the usual channels (issues, forks, PRs, tweets, emails, etc.).

Thank you.


Erlang itself, then the Lisp-influenced languages, then the rest in alphabetical order.



lfe (2008+)

joxa (2011+)

Differences Between Joxa and LFE
Joxa: A Full Featured Lisp on the Erlang VM

‘the concurrent schemer’ (2013+)

clojerl (2015+)

clojerl - Clojure for the Erlang VM


alpaca (2016+)

cuneiform (2013+)

efene (2009+)

elchemy (2017+)

An Elm syntax front-end for Elixir (i.e., converts Elm-style input language into Elixir source code).

elixir (2011+)

eml (2012)

“eml - Erlang flavored by Some ML”

ephp (2013+)

An erlang interpreter for PHP

Presumably as used by Bragful — “A resilient and scalable PHP”.

erl2 (2012)

Announcement and ensuing discussion on erlang-questions
“A Few Improvements to Erlang” (EUC 2012)
A blog post about the above presentation in Chinese

erlog (2008+)

Backtracking in Erlang, part 1 - control

erlyjs (2008-2013?)

The original repo (on Google Code) no longer exists, but there are several forks, e.g.:

A couple of blog posts from 2008 (the second is by the original developer of erlyjs):

ErlyJS: JavaScript on Erlang
ErlyJS - translating Javascript to Erlang

fez (2017+)

fez - fsharp to core erlang compiler experiment

haskerl et al. (1993-2014?)

The Haskerl Index
Yhc/Erlang/Proof of concept

idris-erlang (2014-15)

This is an Idris package (therefore requiring Haskell and Idris) which compiles Idris source code into erlang source code.

interfix (2015)

kapok (2015+)

luerl (2012+)

purerl (2016+)

Erlang backend for PureScript

Introducing PureScript Erlang

reia (-2011)

xerl (2013)

Five web articles in 2013 starting with:

About Languages

Implementing languages on the BEAM (4)


Implementing languages on the BEAM (3)


Efene and the BEAM Community

(slides & video)

How BEAMs are made

Slides with link to github repo

Eric Merritt, Erlang and distributed systems expert, gives his views on BEAM languages, Hindley–Milner type systems and new technologies

(article/interview, with links to podcast & video)

Create Your Own Language: How to implement a language on top of Erlang Virtual Machine (BEAM)


Implementing Languages on the BEAM (2)

(slides & video)

Implementing Languages on the BEAM (1)


Erlang, LFE, Joxa and Elixir: Established and Emerging Languages in the Erlang Ecosystem


About the BEAM

The BEAM Book

A description of the Erlang Runtime System ERTS and the virtual Machine BEAM

The BEAM Toolbox

A list of tools and libraries that are useful for BEAM languages like efene, erlang, LFE and Elixir projects.

Erlang and Types

These first two papers are linked from Philip Wadler’s erlang page:

A practical subtyping system for Erlang


The great type hope


Om: Erlang System F-Omega (Erlang with Types Proposal)