Symbolic Computing Pipeline โ form and meaning
Symp organizes symbolic subsystems into a single programmable pipeline:
input โ syntax โ semantics โ output
Each stage is explicit, modular, and represented by its own symbolic language. Together, they make up the Symp framework โ a computing substrate for defining, composing, and interacting with frames.
A frame is the fundamental computing unit in Symp. It combines form and meaning into one executable definition:
(FRAME
(SYNTAX (APPLY symbolmatch (SEXPR (RULES ...))))
(SEMANTICS (APPLY symbolverse (SEXPR (REWRITE ...)))))
A frame becomes alive when applied to an input:
(APPLY myFrame (SEXPR myInput))
During execution:
Each pipeline stage may choose to be constructed from the three symbolic subsystems:
A small end-to-end demonstration:
(APPLY
(FRAME
(SYNTAX
(APPLY symbolmatch
(SEXPR
(RULES
(FLAT <start> <expr>)
(FLAT <expr> ("eq" <expr> <expr>)
(FLAT <expr> ("mul" <expr> <expr>)
(FLAT <expr> ("pow" <expr> <expr>)
(FLAT <expr> ATOMIC)))))
(SEMANTICS
(APPLY symbolverse
(SEXPR
(REWRITE
(RULE
(READ ("mul" x x))
(WRITE ("pow" x "2"))))))))
(SEXPR (eq (mul x x) (pow x 2))))
๐งฉ Step-by-step:
(eq (mul x x) (pow x 2))
Symbolmatch
checks that the top-level input is a valid S-expression.Symbolverse
rewrites (mul x x)
into (pow x 2)
.(eq (pow x 2) (pow x 2))
.Frames can reference other frames, or even generate new frames. For example, a higher-order โbuilderโ frame may output a new (FRAME โฆ)
definition. This allows metaprogramming within a consistent symbolic model โ without uncontrolled self-reference.
In conventional languages, types check shape and functions produce values. In Symp, syntax checks shape and semantics produces structure โ itโs a symbolic mirror of the same idea.
Symp can run as:
You can define your own frames, store them as files, and apply them dynamically.
In Symp, computation is a conversation between form and meaning.
Syntax defines what is allowed.
Semantics decides what it means.
Execution is simply the dialogue between them.