Skip to content

External Language Authoring ​

The Language Authoring SDK is the generic framework surface for building a language that does not depend on Wist. A language author provides typed artifact kinds, package-owned features and contributions, runtime component factories, enabled backends and a runtime policy. The SDK resolves them into an immutable executable LanguagePlan.

What is implemented ​

  • LanguagePackageBuilder derives descriptor metadata and runtime component registrations from one typed source;
  • LanguageDefinitionBuilder selects features, backends, entry artifacts, providers, overrides and policy;
  • LanguageCompiler resolves dependencies, conflicts, slots, capabilities and artifact routes;
  • LanguageRuntime validates provider identity and policy, creates a runtime session and executes the selected backend route;
  • LanguageContractSuite provides a backend-parity test helper;
  • dotnet new ut-language creates a standalone non-Wist project;
  • samples/Acme.PricingLanguage demonstrates a parser, interpreter backend and compiled backend without a Wist reference.

Read in this order ​

  1. Quickstart
  2. Package and contribution model
  3. Planning and diagnostics
  4. Typed artifact routing
  5. Runtime lifecycle and policy
  6. Testing, template and release boundary
  7. Package versioning and migrations
  8. Deep architecture reference

Current boundary ​

This is a low-level alpha framework API, not yet a complete language workbench. The author still owns syntax representation, parsing, binding, semantic model, transformations and backend execution logic. The SDK composes and structurally validates these components; it does not generate them from a grammar or semantic specification. A valid plan is not proof that arbitrary transformations preserve semantics or that third-party packages are safe to run in-process. If a fixed pipeline with typed interfaces already solves the problem, that simpler design is often preferable.

Public developer manual. Internal reviews, proposals and maintainer material live under internal-docs/.