Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Implementation Notes

Alpha-7 uses a different compiler implementation from the earlier experimental versions of Sydrogen.

Earlier versions used:

Alpha 1.x and 2.x used:

Python
ANTLR
LLVM

Alpha-7 uses:

Rust
pest
Direct x86-64 code path
Cranelift typed path

The current compiler pipeline is:

flowchart LR
    A(Sydrogen source) --> B(pest)
    B --> C(AST)
    C --> D(Semantic analysis)
    D --> E(Direct native path or Cranelift path)
    E --> F(Executable)

The compiler is written in Rust and produces native executables through the two paths described above.

Alpha-7 should not be treated as a finished language specification.

Some syntax exists before its backend implementation.

Some AST structures exist before their code generation.

Some planned language features are already represented in the parser even though the compiler cannot execute them yet.

That is normal for a compiler under active development.

For now, Furnace can compile a growing subset of Sydrogen to native code while the rest of the language catches up.


← Previous