MuLang is a small, embeddable, statically checked language for expressions and imperative programs. Providers define the available global variables, functions, and structured types. The compiler produces portable IR, which a runtime-specific exporter turns into executable code.
MuLang currently targets .NET 10 and is under active development. Version suffixes communicate release maturity:
| Suffix | Maturity |
|---|---|
alpha.N |
Experimental |
beta.N |
Prerelease |
rc.N |
Preview |
N is a positive integer. Language behavior and public APIs may change before version 1.0.
Install the compiler and .NET exporter:
dotnet add package MuLang.Compiler --prerelease
dotnet add package MuLang.Exporters.DotNet --prerelease| Package | Purpose |
|---|---|
MuLang.Core |
Runtime-neutral types, environments, profiles, and diagnostics |
MuLang.IR |
Public portable IR and validation |
MuLang.Compiler |
Source-to-IR compilation |
MuLang.Exporters.DotNet |
IR-to-.NET export and runtime adapters |
MuLang.StandardLibrary |
Optional runtime-neutral standard-library declarations and composition |
MuLang.StandardLibrary.DotNet |
Optional .NET standard-library implementations and runtime composition |
The standard library is opt-in and modular. Hosts select declarations from
StandardLibraryCatalog, normalize them through StandardLibrarySelection,
and use the same selection for environment composition and .NET binding. The
compiler, exporter, and facade packages never import standard-library symbols
implicitly.
A MuLang host:
- Defines the global variables, functions, and structured types available to source code through an environment schema.
- Compiles an expression or program to portable IR through
MuLangCompiler. - Checks compilation diagnostics and exports the IR through
DotNetExporter. - Supplies runtime values and provider functions through
DotNetRuntimeContext.
See the examples for a complete compilation and execution flow.
- Documentation site
- Language specification
- Portable intermediate representation
- MuIR serialization format
- Examples
- Packages and architecture
- Standard library
- Stable changelog
- Detailed changelog
Report defects and propose changes through GitHub Issues.
dotnet build MuLang.slnxdotnet test MuLang.slnxMuLang is licensed under the Apache License 2.0.
