# A Guide To Learning The Compiler's Source?

**URL:** <https://discourse.elm-lang.org/t/a-guide-to-learning-the-compilers-source/7403>\
**Category:** Learn\
**Created:** [May 28, 2021, 3:59pm UTC](https://discourse.elm-lang.org/t/a-guide-to-learning-the-compilers-source/7403 "2021-05-28T15:59:21Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![aullenverch](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/aullenverch/32/4089_2.png) [@aullenverch](https://discourse.elm-lang.org/u/aullenverch)\
**Post date:** [May 28, 2021, 3:59pm UTC](https://discourse.elm-lang.org/t/a-guide-to-learning-the-compilers-source/7403/1 "2021-05-28T15:59:21Z")

</div>

I’m wanting to understand the compiler’s source. The best guide I have found so far is this one [GitHub - elm-community/elm-compiler-docs: Repo where to write down documentation and guides for the elm-compiler](https://github.com/elm-community/elm-compiler-docs) But it is quite outdated at this point. I don’t have much experience with compilers. So if there isn’t any resources you know of that are specific to Elm’s compiler, I would appreciate general guides that could help me on my journey to understanding Elm.

---

<div class="post-metadata">

**Author:** ![asteroidb612](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/asteroidb612/32/1564_2.png) [@asteroidb612](https://discourse.elm-lang.org/u/asteroidb612)\
**Post date:** [May 31, 2021, 10:00pm UTC](https://discourse.elm-lang.org/t/a-guide-to-learning-the-compilers-source/7403/2 "2021-05-31T22:00:55Z")

</div>

I’ve hacked around the compiler a little bit, but I haven’t heard of any guides.

Have you heard of elm-in-elm? It’s an (unfinished) project writing an elm compiler in readable elm, and their documentation has some nice diagrams too.

If your goal is understanding elm (and not specifically the main compiler with all its performance constraints etc), maybe starting there would help with the big picture.

> **[elm-in-elm/compiler](https://github.com/elm-in-elm/compiler)**
>
> Elm compiler written in Elm. Contribute to elm-in-elm/compiler development by creating an account on GitHub.

(@Janiczek awesome work there by the way!)

---

<div class="post-metadata">

**Author:** ![aullenverch](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/aullenverch/32/4089_2.png) [@aullenverch](https://discourse.elm-lang.org/u/aullenverch)\
**Post date:** [June 1, 2021, 11:12pm UTC](https://discourse.elm-lang.org/t/a-guide-to-learning-the-compilers-source/7403/3 "2021-06-01T23:12:11Z")

</div>

Thank you this seems promising to me! Especially with this quote, I’ll check it out!

> **learning friendly:** so that folks can learn how to write a compiler in Elm (similarly to Richard Feldman’s [elm-spa-example](https://github.com/rtfeldman/elm-spa-example)). This means `elm-in-elm` is focused on readability, beauty, approachability, simplicity, great docs and great tests first, and only then completeness and speed.

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/1X/50a05e53677a2c3b47776d7abd0f113eb50193a1.png) [@system](https://discourse.elm-lang.org/u/system)\
**Post date:** [June 11, 2021, 11:12pm UTC](https://discourse.elm-lang.org/t/a-guide-to-learning-the-compilers-source/7403/4 "2021-06-11T23:12:46Z")

</div>

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
