A small language for deliberate systems work.
EDL is an experimental, statically typed language and toolchain under active development. The project is building a clear frontend, diagnostics-first workflow, and a migration path from its Nim bootstrap.
Project status
Compiler pipeline
Lexing, parsing, name resolution, type checking, IR lowering, and a transitional Nim backend are implemented in edl/src.
Language evolution
The syntax and toolchain contract are evolving. Examples and tests are the best guide to the current dialect.
Direct native backend
The current EDL → Nim → C path is explicitly transitional; a direct backend and broader tooling remain future work.
Why EDL
Simple
A small, readable surface that is easier to inspect while the language is taking shape.
Statically typed
Types, resolution and diagnostics are part of the compiler pipeline rather than afterthoughts.
Compiled
The current backend produces native programs through a documented transitional path.
Systems-oriented
EDL is being built for predictable, efficient programs—not as a web-only framework.
First program
Save this as hello.edl and run it with the compiler built from this repository.
// The smallest EDL program.
//
// edl run edl/examples/hello.edl
fn main() {
print("Hello World")
}
Follow the getting started guide →Ecosystem and community
Compiler and toolchain
Follow the frontend, IR and bootstrap backend in the repository.
Explore the toolchain →