Kofi Gumbs

Elm Programmer (Twitter)

Kofi Gumbs writes software, both professionally and for pleasure in his leisure time. By day, he works at HubTran, using test-driven development wherever he can. By night, he theorizes how to make those tests unnecessary — using declarative systems with strong guarantees.

Past Activities

Kofi Gumbs
Code BEAM STO 2018
31 May 2018
16.25 - 17.10

Getting to the BEAM, without going through Erlang

Using Erlang to create a language for the BEAM is well-modeled, with projects like Elixir, LFE, and Alpaca growing in popularity and maturity. There are several benefits to leveraging the Erlang toolchain; however, one restriction screams out: your compiler has to be written in Erlang! (*Yes, technically your compiler could also be self-hosted).

But what if, despite conventional models, the BEAM itself is a friendly, open compilation target? Are there benefits to sidestepping the Erlang toolchain altogether?

In this talk, we'll discuss the making of a compile-to-BEAM language, from scratch. You will have a guided tour through codec-beam, a BEAM assembler written in Haskell, which provides an explicit model for the BEAM's semantics. Finally we'll compare that project to the Erlang compiler's assembler, and see if we can beat OTP at it's own game!


Introduce the audience to the BEAM file format and some of the decisions encoded into the Erlang compiler. Audience members should leave knowing why BEAM may or may not be a great candidate platform for their next language project.