Symbolic Language¶

Symbolic is a high-level programming language designed for mathematical expressiveness, symbolic computation, and domain-specific abstraction. It provides first-class support for algebraic manipulation, pattern matching, multi-tier execution, and an extensible domain plug-in architecture.

# Define a recursive algebraic function
factorial(n) = n <= 1 ? 1 : n * factorial(n - 1)

# Symbolic computation with domain blocks
domain math {
    @equ x^2 - x - 2 == 0
    @d/dx sin(x)
}

# Pattern-driven control flow
match value {
    Number(n) if n > 0 => f"positive: {n}";
    Number(0)          => "zero";
    _                  => "other"
}

Getting Started¶

Getting Started

Language Reference¶

Advanced Topics¶

API Reference¶

Examples¶

Development Tools¶

Community¶


Design Principles¶

Mathematical notation as first-class syntax.

Symbolic expressions, algebraic function definitions, and domain-specific constructs are part of the core language grammar, not library add-ons.

Gradual typing with inference.

Type annotations are optional. The type system operates silently when not needed and provides precise enforcement when annotations are present.

Pattern matching over branching.

The match construct is the idiomatic way to handle conditional logic and data destructuring throughout the language.

Extensible by design.

Domain plug-ins integrate at the parser, type-system, and runtime levels, allowing mathematics, physics, finance, and custom domains to expose native syntax without modifying the language core.


Indices¶