Program Transformations in the Polca Project Jan Kuper April 6, 2016
partially funded by the European Comission under FP7-ICT-2014.3.4 contract number 610686 Polca Program Transformations in the Polca Project 1/11
Program Transformations in the Polca Project Jan Kuper April 6, - - PowerPoint PPT Presentation
Program Transformations in the Polca Project Jan Kuper April 6, 2016 partially funded by the European Comission under FP7-ICT-2014.3.4 contract number 610686 Polca Program Transformations in the Polca Project 1/11 Partners POLCA: Programming
partially funded by the European Comission under FP7-ICT-2014.3.4 contract number 610686 Polca Program Transformations in the Polca Project 1/11
Polca Program Transformations in the Polca Project 2/11
Polca Program Transformations in the Polca Project 3/11
Polca Program Transformations in the Polca Project 3/11
Polca Program Transformations in the Polca Project 3/11
Polca Program Transformations in the Polca Project 4/11
x0 f z0 x1 f z1 x2 f z2 x3 f z3 x4 f z4
⋆ x0 ⋆ x1 ⋆ x2 ⋆ x3 ⋆ x4 a w
Polca Program Transformations in the Polca Project 4/11
x0 f z0 x1 f z1 x2 f z2 x3 f z3 x4 f z4
⋆ x0 ⋆ x1 ⋆ x2 ⋆ x3 ⋆ x4 a w
Polca Program Transformations in the Polca Project 4/11
x0 f z0 x1 f z1 x2 f z2 x3 f z3 x4 f z4
⋆ x0 ⋆ x1 ⋆ x2 ⋆ x3 ⋆ x4 a w
Polca Program Transformations in the Polca Project 4/11
itn
f f f f f a z
f a ⇒ a′ z = itn f a n itnscan
f z1 f z2 f z3 f z4 f z5 a z0
f a ⇒ z zs = itnscan f a n map
x0 f z0 x1 f z1 x2 f z2 x3 f z3 x4 f z4
f x ⇒ z zs = map f xs zipWith
⋆ x0y0 z0 ⋆ x1y1 z1 ⋆ x2y2 z2 ⋆ x3y3 z3 ⋆ x4y4 z4
x ⋆ y ⇒ z zs = zipWith (⋆) xs ys foldl
⋆ x0 ⋆ x1 ⋆ x2 ⋆ x3 ⋆ x4 a w
a ⋆ x ⇒ a′ w = foldl (⋆) a xs scanl
⋆ x0 z1 ⋆ x1 z2 ⋆ x2 z3 ⋆ x3 z4 ⋆ x4 z5 a z0
a ⋆ x ⇒ z zs = scanl (⋆) a xs mapAccumL
f x0 z0 f x1 z1 f x2 z2 f x3 z3 f x4 z4 a w
f a x ⇒ (a′, z) (w, zs) = mapAccumL f a xs
Polca Program Transformations in the Polca Project 5/11
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
Polca Program Transformations in the Polca Project 6/11
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
Polca Program Transformations in the Polca Project 6/11
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
Polca Program Transformations in the Polca Project 6/11
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
Polca Program Transformations in the Polca Project 7/11
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
+ x0 + x1 + x2 + + x3 + x4 + x5 + + x6 + x7 + x8 + + x9 + x10 + x11 +
total
Polca Program Transformations in the Polca Project 7/11
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
+ x0 + x1 + x2 + + x3 + x4 + x5 + + x6 + x7 + x8 + + x9 + x10 + x11 +
total
Polca Program Transformations in the Polca Project 7/11
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
Polca Program Transformations in the Polca Project 8/11
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 + + +
total
Polca Program Transformations in the Polca Project 8/11
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 total
+ x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 + + +
total
Polca Program Transformations in the Polca Project 8/11
Polca Program Transformations in the Polca Project 9/11
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
Polca Program Transformations in the Polca Project 9/11
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
Polca Program Transformations in the Polca Project 9/11
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
Polca Program Transformations in the Polca Project 9/11
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
Polca Program Transformations in the Polca Project 9/11
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
Polca Program Transformations in the Polca Project 9/11
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
Polca Program Transformations in the Polca Project 9/11
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
Polca Program Transformations in the Polca Project 9/11
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
x0 x1 · · · xn−1 y0 y1 yn−1 ∗ ∗ · · · ∗ + + · · · + z
w0 w1 wn−1
Polca Program Transformations in the Polca Project 9/11
Polca Program Transformations in the Polca Project 10/11
Polca Program Transformations in the Polca Project 11/11