Skip to content
FstTeslaPublic

About

MuLang is a small, embeddable, statically checked language for expressions and imperative programs.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

MuLang

MuLang logo

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.

Status

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.

Getting started

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:

  1. Defines the global variables, functions, and structured types available to source code through an environment schema.
  2. Compiles an expression or program to portable IR through MuLangCompiler.
  3. Checks compilation diagnostics and exports the IR through DotNetExporter.
  4. Supplies runtime values and provider functions through DotNetRuntimeContext.

See the examples for a complete compilation and execution flow.

Documentation

Feedback

Report defects and propose changes through GitHub Issues.

Build

dotnet build MuLang.slnx

Test

dotnet test MuLang.slnx

License

MuLang is licensed under the Apache License 2.0.

About

MuLang is a small, embeddable, statically checked language for expressions and imperative programs.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages