Engineering Definition Language

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

Available

Compiler pipeline

Lexing, parsing, name resolution, type checking, IR lowering, and a transitional Nim backend are implemented in edl/src.

Experimental

Language evolution

The syntax and toolchain contract are evolving. Examples and tests are the best guide to the current dialect.

Planned

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 →

VS Code

Use the official extension for syntax highlighting and snippets today.

View editor support →

Contribute

Implementation and specification work are developed in the open.

Join on GitHub →