The executable graph of symbolic computation
Symbolprose also defines the semantics of a frame.
Symbolprose returns result of executing directed symbolic graphs.
This is where meaning is being represented as a result of stateful actions.
<start> := <graph>
<graph> := (GRAPH <element>+)
<element> := (EDGE (SOURCE <ATOMIC>) (INSTR <instruction>+)? (TARGET <ATOMIC>))
| (COMPUTE (NAME <ATOMIC>) <graph>)
<instruction> := (TEST <ANY> <ANY>)
| (ASGN <ATOMIC> <ANY>)
<compute-call> := (RUN <ATOMIC> <ANY>)
A simple multiplication program:
(APPLY
symbolprose
(SEXPR
(GRAPH
(EDGE
(SOURCE BEGIN)
(INSTR
(ASGN RESULT (RUN stdlib (mul 6 7))))
(TARGET END)))))
Output:
42
ASGN
assigns symbolic values; TEST
enables flow control.(RUN name input)
.