Sun Aug 15 20:46:39 CEST 2010
PF impressions: what's still there after a couple of months?
It helps to not work on something for a while -- weeds out the fringe
Looking at pf.c now, one of the most remarkable points is that partial
continuations become code words constructed at run time, using linear
CONS instead of non-linear CONS. Continuations are code that is
transformed (binary tree rotations) and _consumed_ while hard-coded
instructions are code that is constant. This "consumption of code" is
an important one (aka. one-shot continuations).
Code itself is still non-linear, allowing for non-linear
metaprogramming. Metaprogramming lives completely in the "unreal"
domain, while the linear core operates in the real (hardware) world.
What strikes me is that it is really simple and natural. The switches
between LINEAR and PURE operations are the only ad-hoc part.
Some of the more important questions are: why is (or isn't) linear
memory a good programming interface? How come that I have not much
trouble writing linear C code (not using malloc) for embedded systems