.Open Algebraic System Theory
. Tse Algebra
.See [Tse91]
Tse_algebra::=$ $TSE.
TSE::=$STRUCTURED_SYSTEM.
STRUCTURED_SYSTEM::=Net{
task:: Types,
procname:: Types, process names.
struct:: Types, structures,
event:: Types,
dataname::Types.
task::procname> task.
P::@procname.
null::procname
sequ::task>struct. sequence.
seln::task>struct. selection.
para::task>struct. parallel composition.
iter::task->struct. Iteration.
elem::@struct. Elementary structured tasks.
indata::dataname->event,
inflag::dataname->event,
infile::dataname->event,
source::dataname->event,
outdata::dataname->event,
outflag::dataname->event,
outfile::dataname->event,
sink::dataname->event.
E::@dataname.
(+) ::infix(event).
nil::event.
commute::={f:$task><$task->$struct || for all $task u,v ( f(u,v)=f(v,u) )}.
|-(comm): $seln and $para in $commute.
associative::={f:$task><$task->$struct || for all $task u,v,w ( f($task($null, f(u,v)),w) = f(u, $task($null,f(v,w)) )}.
|- (assoc): $seqn and $seln and $para in $associative.
}=::STRUCTURED_SYSTEM.
$STRUCTURED_SYSTEM defines a \Sigma_algebra
.See http://www/dick/maths/maths_43_algebras.html
and so a "term_algebra" is the free algebra:
term_algebra::initial_algebra($STRUCTURED_SYSTEM).
term_algebra.carriers::= \sigma ("(" L($term_algebra.carriers, ";") ")"|).
The various structured methods of the 1970s and 1980s can all be
mapped into algebras that fit Tse's model:
Yourdon_Algebra::$ $STRUCTURED_SYSTEM.
DeMarco_algebra::$ $STRUCTURED_SYSTEM.
Jackson_Algebra::$ $STRUCTURED_SYSTEM.
.Close Algebraic System Theory