Title: Rudolf Mak r.h.mak@tue.nl
1Periodic-Drop-Take Calculus forStream
Transformers(based on CS-Report 05-02)
- Rudolf Mak
- January 21, 2005
2Motivation for a calculus
- For stream processing systems build in a
LEGOr-like - fashion from a fixed set of building blocks we
want to - specify
- verify
- analyze
- their functional behavior. Moreover we want to
- design
- systems of specified functionality.
3Periodic Stream samplers
4Periodic Stream samplers
5PDT-calculus
- Operators
- Unit
- Drop operators
- Take operators
- Equational rules
- Unit rule
- Drop expansion/contraction
- Drop exchange
- Complement
- Drop elimination/introduction
- Take composition
6Drop operator
X
7Canonical forms
- Period-consecutive
- Rank-increasing
- Primitive (no repetitive rank-pattern)
8Transform to period-consecutive
9Drop expansion/contraction rule
10Transform to rank-increasing
11Drop exchange rule
12Completeness
13Rewriting to canonical form
14Take operator
15Complement rule
16Rules involving take operators
- Drop elimination/introduction
- Take composition
17Split component
18Merge component
19Block reverser design
20Split-merge systems
21The set of equations Esv
22Solving a single equation 1
- Arbitrary shape
- Canonical shape
- Period-aligned, pseudo-canonical shape
23Solving a single equation 2
24Example
25Esv theorem for SISO systems
26Split component
27Emv theorem for SISO systems
28Analysis problem (cyclic system)
What does this system compute for various values
of k?
29Solution
- k 0, junk, irreparable deadlock
- k 1, 2-place buffer
- k 2, block reverser with block size 2
suffers from reparable deadlock
30Summary
- PDT-calculus is a simple calculus to reason about
periodically sampled streams. - PDT-calculus is sound and complete.
- Semantic model in the form of a monoid.
- Algorithm to determine canonical forms (solves
the word problem in the monoid). - Algorithm to solve linear equations in a single
variable (solves the division problem in the
monoid). - Functionality of arbitrary SISO-systems
consisting of split and merge components can be
analyzed. - Only partial correctness is addressed.