The cell matrix began with a philosophical discussion on how far the hardware/software line could be pushed towards the software extreme. The idea of a completely configurable hardware platform led quickly to the fine grained structure of a cell's D-mode behavior. However, the actual configuration mechanism of a cell (its C-mode behavior) derives from a question of how to make a system which can output its own configuration information. In a purely software domain, this is the question of writing a program which prints its own source code. The solution seemed to hinge on a dual representation of characters as either code or data. By extending this construct into hardware, the configuration mechanism of the cell matrix was formed.

static char p[20][1024]
"#include <stdio.h>",  
"#include <string.h>", 
"       int i,j;",     
"       printf(\"static
"       for (i=0;i<20;i
"               if (i>0
"               printf(
"               for (j=
"               if ((p[
"               printf(
"         }",          
"       }",            
"       printf(\"\\\"};
"    for (i=0;i<20;i++)
#include <stdio.h>     
#include <string.h>    
       int i,j;        
       printf("static c
       for (i=0;i<20;i+
               if (i>0)
               for (j=0
               if ((p[i
    for (i=0;i<20;i++)