Features
This numbered inventory covers the intended language, execution, visualization and physics design. Section 0 is authoritative wherever later direction conflicts. Inclusion means design scope, not implemented or verified support. The examples and syntax reference supply compiler correction targets.
- Mathematical source. Express values, relationships and transformations in a compact, keyword-free language.
- Demand-driven execution. Compute only values needed by observations or dependencies.
- Partial demand. Evaluate selected regions when dependency analysis permits it.
- Fusion and materialization. Avoid unnecessary intermediates; choose streaming, caching, recomputation and storage from observable semantics.
- Compiler-managed compute. Select SIMD, parallel CPU or GPU execution without source-level kernel launches or memory transfers.
- Semantic optimization contracts. Substitute equivalent BLAS, sparse, physics or rendering implementations using semantic traits rather than function names alone.
- One semantic graph. Represent ordinary, symbolic, lazy, transform and optimizer expressions with common types, shapes, dimensions, domains, effects and provenance.
- Compile-time evaluation. Partially evaluate known graph regions without introducing a separate expression language.
- Numerical correctness contracts. Preserve evaluation order, domains and serial observations; reassociate reductions only when permitted.
- Orthogonal meaning. Keep properties, structural dimensions, numerical domains, physical dimensions, units, quantity kinds, functions, Laws, Embeddings and execution strategy distinct.
- Bindings and updates. Declare with
name:; update an existing binding with.name:; support lexical shadowing without accidental redeclaration. - Expression-valued scopes. Use indentation or parentheses for scopes, final expressions for results and bare
:for scope records. - Tuple structure. Distinguish tuples, singleton tuples and named tuples from vector dimensions.
- Vector structure. Square brackets add rank; support nested, fixed and dynamic vector values.
- Lazy vectors. Use ordinary vectors for large and infinite values, without a separate generator/yield construct.
- Inclusive ranges. Support finite, descending and unbounded ranges; distinguish iteration positions from coordinate values.
- Typed repetition and emptiness. Repetition preserves element type and rank at zero length; empty demand performs no element work.
- Anonymous dimensions. Give unnamed axes positional identity, separate from named axes.
- Named dimensions. Attach single-letter structural dimensions to values; numbers remain coordinates or values.
- Complete rank naming. Require a suffix to name the entire rank unless an explicit structural ellipsis is present.
- Structural ellipsis. Allow one ASCII
...to retain the required anonymous dimensions, including zero dimensions. - Named alignment. Align dimensions by identity and require compatible sizes; never silently resize aligned values.
- Anonymous alignment. Align anonymous axes only with compatible anonymous positions; never silently map them onto named axes.
- Diagonal selection. Repeated value-selection names identify equal coordinates, as in
A_ii, according to Section 0. - Elementwise arithmetic. Align/lift
+ - * / // % ^; multiplication does not imply contraction. - Two comparison levels. Distinguish elementwise comparisons/logical operations from whole-value
==and!=. - Concatenation. Join values along an explicit dimension or a uniquely inferable dimension.
- Composition and function arithmetic. Compose first-class functions and apply compatible pointwise operators to them.
- Callable operators. Use operators as function values, including indexed collections and specialization.
- Ordinary lifting. Lift compatible function calls by argument structure; preserve tuple/record atomicity and exact container-overload priority.
- Structural calls. Pass selected dimensions intact to a function and lift over the remainder; result structure determines which axes survive.
- Ordered folds. Reduce one indexed collection with one binary reducer and one initial accumulator.
- Multidimensional reductions. Remove exactly the selected dimensions; reject repeated reduction selectors.
- Named reductions and identities. Provide sum, product and function-chain reductions with their defined empty identities.
- Recurrence. Express state evolution through ordered folds or specialized function chains, including multiple varying inputs.
- Explicit specialization. Distinguish
f(...)evaluation fromf[...]binding, including zero-argument bound callables. - Indexed specialization. Lift argument binding to form dimensioned collections of specialized functions.
- Ordinary argument binding. Declare parameters in parentheses and specialize ordinary named arguments with square brackets at the call site.
- Alphabetic structural selectors. Select named value dimensions with alphabetic suffixes; the former bracketed compile-time parameter declarations are removed.
- Ordinary underscore identifiers. Resolve exact names before interpreting structural suffixes where appropriate.
- Ordinary call arguments. Support positional, named, typed and default arguments using one call model.
- Runtime spilling. Spill ordinary vectors, tuples or named tuples with prefix
:; do not use call-site...for runtime spreading. - Runtime variadics. Capture remaining positional/named arguments using the core declaration grammar; process forwarding reuses that grammar.
- Generic types and shapes. Infer compile-time type/extent parameters consistently across parameter and result structures.
- Overloads and type dispatch. Select compatible ordinary functions, operators and dotted-access overloads.
- Closures and declarations. Support lambdas, captured values, recursion, higher-order functions and forward declarations with source-order effects preserved.
- Nominal values. Construct uppercase nominal types with spill-backed structure; reconstruct compatible operations without losing nominal identity.
- Type and member reflection. Expose actual types, ordered record keys, member selection and structural type spilling.
- Modules and lexical qualification. Import module handles, alias or spill exports, and preserve captured qualified meanings under shadowing.
- Symbolic numerical domains. Declare real, complex, continuous or discrete domains authoritatively rather than guessing from variable names.
- Assumption-preserving simplification. Retain domains, singularities and principal complex behavior during symbolic inspection and numerical lowering.
- Exact differentiation. Use function-variable transforms and ordinary calculus; keep finite differences separate.
- Integration and bound specialization. Select formal variables, introduce absent variables, bind general bounds and override them with variable-specific bounds.
- Physical-domain qualification. Use
Domain[Dimension], including vector and complex domains, without conflating it with multiplication or display units. - SI physical dimensions. Represent seven base dimensions with rational compile-time exponents and algebraically derived dimensions.
- Unit definitions and canonical SI. Define scale, physical dimension, symbols and quantity kind once; resolve conversion statically where possible.
- Whole-value units. Give a scalar, vector or matrix one quantity representation rather than per-element unit metadata.
- Dimensional compatibility. Require compatible dimensions for addition, subtraction and comparison.
- Left-operand representation. Preserve the left operand's preferred unit in compatible addition and subtraction.
- Multiplicative dimensions. Derive dimensions through multiplication/division and recognize named derived units without new base dimensions.
- Explicit conversion views. Use
.to(unit)to change preferred representation while preserving the physical quantity, canonical SI backing and aliases. - Dimensionless quantities and angles. Separate ordinary dimensionless values from angle-kind quantities; radians/degrees share physical dimension one.
- Unit-aware trigonometry. Accept dimensionless numbers and canonical-radian angle magnitudes; reject dimensional arguments.
- Exponential and logarithmic domains. Require dimensionless inputs; preserve Euler's relation for angle quantities and return ordinary dimensionless exponential output.
- Dimensional powers. Require dimensionless exponents and normally compile-time-known powers for dimensional bases; support rational resulting dimensions.
- Units through reductions. Preserve dimensions through sum/mean/min/max, square them for variance and restore them for standard deviation.
- Units through calculus. Derive derivative dimensions by division and integral dimensions by multiplication with the variable's dimension.
- Symbolic dimensional validation. Reject physically inconsistent symbolic expressions before numerical evaluation.
- Quantity output and display policy. Print units automatically; support automatic SI prefixes, configured precision/preferences and explicit conversion priority.
- Semantic LaTeX. Render numerical domains, physical dimensions, concrete units, derived units and angles from the same definitions used by printing and plots.
- Strings and templates. Support immediate/deferred interpolation, member selection, static/dynamic formats and vectorized
.formatwith ordinary spilling. - Conditions and matching. Use expression-valued conditionals, value/type matching, implication and an unlabelled fallback arm.
- Pipes and coordinates. Expose current/outer values and named coordinates; distinguish progressive pipes from explicitly nested scopes.
- Loops and early control. Support conditional/matching loops, numbered read-only loop indices, continue, break and early return with scope-correct behavior.
- Typed errors and assertions. Construct, raise, match and propagate typed errors; retain source locations through compiler lowering.
- Multisets. Support counted values, exact element types, count-combining operations and multiset type values.
- Connected topology. Use
u,v,wfor curves/surfaces/volumes,cfor components andtfor time in the later integration direction, without overriding Section 0's ordinary dimension rules. - Generic groups and coordinate labels. Give ordinary grouping dimensions no object-specific meaning; associated coordinates/labels align with their own dimension.
- Explicit topology and references. Describe edges, faces and volume elements with reference values and
mmember slots connecting independent entity groups. - Subsets and sparse properties. Attach properties to referenced selections rather than filling parent collections with null entries.
- Compositional plot lifecycle. Define persistent defaults, one-layer add, composed-state push, append, show and plot through their ordinary operations.
- Frame and world layers. Separate render/data layers from simulation-capable layers while consuming the same ordinary values.
- Positions, components and Embeddings. Map Cartesian/polar/spherical, complex and higher-component data into perception without making rendering dictate physical state.
- Styling, colormaps and interpolation. Use ordinary per-property/per-primitive functions, structures and dimension-aware suffixes rather than parallel plot-type/color-by systems.
- Limits and modes. Support combined/side-specific limits, dimensional configuration and extend/clamp/repeat/mirror/discard behavior where meaningful.
- Cameras and shared multi-view geometry. Represent camera position/target/projection as ordinary structures; let views vary while invariant geometry remains shared.
- Compositional axes and labels. Generate axes, grids, ticks and text as ordinary layers; propagate quantity units into default labels.
- Symbolic plots, relations and roots. Use the ordinary plotting API for expressions, equations and inequalities; infer geometric dimension and map complex roots through components.
- Adaptive symbolic rendering. Refine with zoom, curvature, discontinuities, singularities, cusps, asymptotes and domain boundaries while retaining true nonsmoothness.
- Motion and kinematic constraints. Distinguish initial from time-prescribed
p/v/a; apply position > velocity > acceleration > Laws, including deterministic collision interaction. - Unified physical Laws and solver choice. Evolve ordinary properties with ordinary functions; permit rigid/continuum and hybrid APIC/FLIP/MLS-MPM/sparse-grid backends, adaptive resolution, sleeping, splitting/merging and GPU fusion.
- Lighting and derived views. Use emissive layers and derived camera views for lighting, mirrors, screens, portals and camera feeds.
- Processes. Start ordinary functions in isolated event/I/O contexts; return their results from
joinand permit forcedkillwithout a separate argument-packing language. - Queues and event loops. Deliver each FIFO item to one receiver; suspend efficiently and re-evaluate matching-loop receives each iteration.
- Broadcast. Deliver publications to every active subscriber, preserve per-producer order and clean up subscriptions with lifetime where possible.
- Shared ordinary storage. Share one arbitrary ordinary value; preserve type, shape and dimensions across CPU/GPU/shared/mapped/lazy backing and bulk-data handles/views.
- Immutable published generations. Support one logical writer and multiple readers with unobservable buffer reuse, swaps or copy-on-write; the public generation-update API remains unresolved.
- Semantic highlighting. Color nested vector depth and resolved dimension identities; keep anonymous axes neutral and distinguish compile-time literal suffixes from ordinary underscore identifiers.
- Unresolved surface design. Track deterministic external-resource cleanup, complete UI binding/control syntax, unit/suffix precedence and final process variadic spelling explicitly; invent none of them in implementation-facing examples.
- End-to-end language acceptance. Require coherent original-source behavior across compilers and targets, including Section 0's Mandelbrot, finite complex power-tower and infinite convergence visual integration cases; example counts alone do not establish completion.
All implementation and verification statuses remain separate from this inventory. No benchmarks, downloads, build results or platform-support claims are implied.