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¶
Language Guide
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
matchconstruct 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.