Introduction
I am going to assume that regulatory DNA encodes a program.
The claim that there is a “genetic program” is common enough, but also highly controversial (Nijhout 1990; Keller 2001; Griffiths 2001; Weber 2005; Pigliucci 2010; Boudry and Pigliucci 2013; Nicholson 2014; Planer 2014; Jaeger et al. 2015; Moczek et al. 2015; Walsh 2020). Some of this controversy rests on a overly-restrictive understanding about what programs are, and what they do (Calcott 2020; see also Capraru 2024). The bigger problem, however, is that genetic programs are frequently (and confusingly) presented as a top-down control system.
Consider the claim that a genetic program is for building the organism, or for controlling development, or for mandating biological organisation. These claims are about the organism, or about processes happening at the level of multicellular organisation. But if there is program encoded in the DNA, it strange to claim that this is the level at which it operates. TODO: MAYBE ROOMBA example here.
Each cell has a copy of the DNA and thus, each cell is running a copy of that program. Anything happening at that level of the developing organism is the result of thousands of these programs interacting with one another (see Calcott (2020)). Any change to this program may, of course, impact what happens in these interactions. But there is no singular program operating at the whole-organism level.
This issues arises when talk slides from a genetic program to a developmental program (see davidson etc etc). A developmental program suggests a single program operating at some level above the cell.
These claims appear not much different in kind than those suggesting the genes contain a blueprint or plan.

But there is far less audacious way to think of a genetic program. Rather than attribute the program There are several ways to put this, but here is one formulation: DNA contains a program fo It is program for cellular cognition.
This claim in one at the cellular level. We are not asying naything about multicellular organisms, or development.
The literature on evolutionary computation has several Obvsiouly there can be many xxx. Maybe something about parameters that control a system. But we need more than causal factors. These causal factors must constitute some kind of systematic, tunable control. One obvious option for a systematic system of control is a program. This idea is common.
It is true that the phrase is largely used with little attempt to clarify its meaning. But critics are too quick to dismiss the idea. There are resemblances between gene regulation and software architecture (Calcott2008?), and there is a way of understanding genetic programs that avoids the problems they raise (Calcott 2020; see also Capraru 2024).
A way to demonstrate this is to move beyond metaphors (Calcott et al. 2015). Here, I take this further by constructing a programming language specifically designed to mimic gene regulation.
In the sections that follow, I use models written in this language to show how we can make sense of DNA encoding a program for cellular cognition.
From Metaphors to Models
A good deal of the criticism of genetic programs emphasises that the program is just a metaphor. Critics are quick to point all the ways that the biology does not match our usual conception of programs TODO: get citations. But this misconceives the problem with metaphors.
To see why, consider the crucial role that models play in science, and biology in particular. Models are packed full of mismatches with reality, there are no infinite populations mating at random, nor XXXX. We are constantly dealing with representations of biology that are simplified, or just plain false (network diagrams, simplified equations) IF Wimsatt is right, then this is precisely the way it should be.
Models and metaphors are both analogical devices that rely on some sort of similarity to gain insight. The real problem with metaphors is that, unlike models, they are ineptly stated. Models take different forms, but these forms are publicly assessible: a program that can be debugged, a set of equations that can be xxx, or a physical model open to inspection.