Fri Sep 11 12:30:28 CEST 2009

Algebra of Programs

Let's focus on the basic idea: a create a collection of combinators
that satisfy some mathematical laws.  Make it almost trivial: no power
in the language, easy manipulation.  Play with the manipulation and
try to grow some context to understand current literature about this.

The basic one is the interaction between `map' and fuction compositon.

  (f) map (g) map = (f g) map

Now, construct a bunch of meaningful programs that use just this, and
then construct all possible rewritings.

Then, try to associate a _cost_ and _feasibility_ to the different
versions, i.e. register pressure, cache pressure, ...

[1] entry://../staapl-blog/20090911-110748