6
votes

Does Elixir have a language specification document? If yes, where is it?

The Elixir website has library documentation, and I found some documentation on guards and operators, but I did not find a language spec that, for example, documents syntax or provides a list of Elixir keywords (Elixir language keywords, not Keyword lists).

2
I strongly suspect it's the same case as with ruby. "This is the reference implementation. What it does is elixir" - Sergio Tulentsev

2 Answers

13
votes

There's no formal specification. Here are some things to look at, that describe the language and might be useful:

  • Syntax Reference - available only in master docs.
  • Kernel.SpecialForms - these are the things that are provided "by the language" and cannot be changed - more or less like keywords in other languages. Everything else is macros/functions implemented in Elixir.
  • Kernel - this module is imported by default and can be viewed as the "base" of the language - everything from here can be locally changed by importing, though.
0
votes

Syntax Reference is the best place to get specification.

Actually I am looking for atom, but found in spec missing mention this:

These are atom too:

:/
:.