The spark that lead directly to the development of ther Cell Matrix architecture was a questiomn posed by Murali Raju: "Can you write a program that prints its own source code?" The program needs to be self-contained, i.e. it can't be a program like main.c that simply opens main.c and prints its contents.
Such programs are called "quines" and there is a lot of material available online about them; but it's a fun and illuminating excercise to work on, and I recommend doing so before looking at online resources.
This question was posed to Nick Macias i the beginning on an EE 128 class in Spring 1986. Nick constructed a solution -- written in VAX MAcro (assembly language) -- during the class. It was successfully tested after class, and then tranlated into a C program. As is often the case with these programs, the program as written didn't exactly produce its own source; rather, the source it produced was able to perfectly reproduce itself.
Analysis of this solution program led to the idea of dual-interpretation of an entity as either code or data, which became the idea of a C/D mode for the basic configurable cell.
Here is the original C program (the assembly language version is lost). This version was developed by a student (Jordan Curry) in 2015.
There seem to be parallels between this original program and the layout of the first self-replicating Cell Matrix circuit.