Alder is an embeddable C# expression engine: parser, binder, interpreter, optional compiled backend, Dynamic LINQ, expression-tree export, AOT-friendly generated dispatch, security policy, and execution constraints, all in one library. These docs describe the engineering surface: what Alder does, how it behaves, and where its boundaries lie.
Concepts establish the mental model. Guides walk through concrete integration tasks. Reference documents exact contracts. Operations covers production behavior, security, and reuse.
- Architecture: parse-bind-execute pipeline, backend split, integration surfaces.
- Binding system: where Alder resolves operations statically and where it defers to runtime dispatch.
- Compiled backend: synchronous delegate compilation and LINQ expression export.
- Async execution: interpreter-backed asynchronous evaluation, await semantics, cancellation.
- Dynamic LINQ: runtime query composition over
IEnumerable<T>,IQueryable<T>, and async streams. - Extended language mode: scripting forms and expression ergonomics layered over C# syntax.
- Register types and extension methods: assemblies, namespaces, and extension-method containers.
- Expose functions and modules: host-owned APIs as global functions or named modules.
- Choose variables and child engines: variable scopes, per-call values, and isolated child contexts.
- Use Dynamic LINQ: predicates, selectors, joins, projections, plans, and provider export.
- Deploy with NativeAOT: generated contexts, type rooting, and the AOT publish checklist.
- Configuration:
AlderOptions,AlderConfig, registration entry points, precedence rules. - Execution model: evaluation lifecycle, cache boundaries, control flow, error propagation.
- Standard mode language support: the C# syntax Alder accepts in
LanguageMode.Standard. - FAQ: direct answers about evaluation, Dynamic LINQ, NativeAOT, security, and integration boundaries.
- Execution and reuse: engine lifetime, parsed-expression reuse, compiled artifacts, query plans.
- Security model: security policy, trust and deny rules, execution limits, reflection boundary.
- AOT and generated dispatch: typed dispatch, generated contexts, reflection fallback.
- Diagnostics and debugging: parse, bind, validation, compilation, export, and runtime diagnostics.
Readers evaluating Alder should start with Architecture and Execution and reuse. Hosts integrating Alder should read Configuration, then the guide that matches the integration target. Hosts shipping AOT or trimmed binaries should read Deploy with NativeAOT alongside AOT and generated dispatch. Hosts evaluating untrusted expressions should read Security model before exposing any registration surface.