Open · MIT

Genesis

A compiler workbench for building languages — and for verifying what they describe before it exists.

Status: published on NuGet

EBNF ASDL Parsercombinators · AST C# · SQL LLVM IR TLA+ · algebra

What it is

A .NET meta-language workbench. Grammars become executable parsers; schemas become typed syntax trees; specifications become model-checked properties. It is the foundation the Aleph compiler, Turing and MLambda’s own domain languages are built on.

What is built

Eleven packages, MIT-licensed: a monadic parser-combinator library with full LINQ support; an EBNF grammar compiler that emits executable combinators; an ASDL schema parser that generates C# syntax-tree types; a generator tool (mlambda-gen) that turns EBNF plus ASDL into a language front-end; Shin, a stratified forward-chaining rule language and runtime; a TLA+ checker and prover with LTL evaluation; a mathematical expression language; a symbolic algebra system that differentiates, integrates, expands and solves; a CAS rule DSL; and a SQL front-end with analyser and code generator. Front-ends exist for C#, CSS, JavaScript, HTML, Guimel, SQL, LLVM IR and Aleph.

How to get it

dotnet add package MLambda.Genesis.Parser
dotnet add package MLambda.Genesis.Algebra

Documentation, architecture and the twelve-chapter method book are at genesis.mlambda.net.