# What Erlang/BEAM related stuff are you doing?

**URL:** <https://erlangforums.com/t/what-erlang-beam-related-stuff-are-you-doing/198>\
**Category:** Chat / Discussions\
**Tags:** community\
**Created:** [October 16, 2021, 8:05pm UTC](https://erlangforums.com/t/what-erlang-beam-related-stuff-are-you-doing/198 "2021-10-16T20:05:36Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![LincolnBryant](https://erlangforums.com/user_avatar/erlangforums.com/lincolnbryant/32/328_2.png) [@LincolnBryant](https://erlangforums.com/u/LincolnBryant)\
**Post date:** [October 27, 2021, 4:53pm UTC](https://erlangforums.com/t/what-erlang-beam-related-stuff-are-you-doing/198/6 "2021-10-27T16:53:02Z")

</div>

over the summer I wrote a tree-walking interpreter that implements a subset of [Godot](https://www.godotengine.org)’s built-in scripting language, [GDScript](https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html). It’s a whitespace-significant imperative language, so implementing that in Erlang was challenging but also really fun!

I have never implemented a programming language before, so I spent a lot of time staring at the [Luerl](https://github.com/rvirding/luerl)  
source code, the documentation for [leex](https://erlang.org/doc/man/leex.html) and [yecc](https://erlang.org/doc/man/yecc.html), and the book [Crafting Interpreters](https://craftinginterpreters.com/).

overall I’m pretty happy with it, but the interface is rather bad. this partially stems from cheating a bit and using the process dictionary to hold state for the interpreter rather than threading it through all of the functions. 🤭

---

_[View the full topic](https://erlangforums.com/t/what-erlang-beam-related-stuff-are-you-doing/198)._
