If we are interested in programming cellular behavior, then we need to be concerned with the network of biomolecules that interact to cause certain behaviors. DNA -> pre-mRNA->mRNA -> [export] -> [translation complex] -> proteins all fall under the auspices of "biomolecules."
"We tend to think of the molecules we design as input/output devices." Output domains are areas of nucleic acids (themselves or others) that have endo- and exo-nucleic catalytic activity. Nucleic acid domains that can bind via base-pairing to transcription regulatory regions are also designated output domains. Additionally, one can design in interference
Input domains are areas of a nucleic acid chain that can "sense" a chemical with high specificity. Specifically, they are composed of an aptamer domain, which is the region of nucleotides to which the input chemical directly binds, within a longer strand of nucleotides that change conformationally
RNAs can be built that act as a switch triggered by a particular ligand. The design of the RNA can be described abstractly as a sensing domain coupled with an output domain in such a way that binding of a ligand to the aptamer within the sensing domain causes a conformational change that exposes the output domain. Output domains have been designed to bind to an mRNA and prevent its translation. These devices are dubbed "antiswitches."
Lots of potential exists for genetic programming with antiswitches and riboswitches. Computer programs designed to predict RNA secondary structure can be utilized to design the particulars of an antiswitch. Usually the output domain enters or exits from a hairpin structure upon activation of the input domain. Work is in progress in making the two domains completely independant of each other, but currently the output domain must be fine-tuned to work with a particular input domain.
Here's Smolke and Bayer's Programmable ligand-controlled riboregulators of eukaryotic gene expression.