more on reading frames and computers and biology

Jeff Prideaux (JPRIDEAUX@GEMS.VCU.EDU)
Fri, 17 Nov 1995 11:56:50 -0400


Bruce E. Writes:
>Software can have several reading frames in a way
>exactly analogous to the DNA example.

I liked your little software example. I would agree that it is somewhat
analogous, but I do think there are some important differences.

I'll sum up the analogy between mRNA-->protein and computer
memory-->instruction:

In the translation of the symbol content of mRNA (by certain physical
molecules) to an amino-acid sequence, there is an "alphabet" of 4 nucleotides,
a reading-frame of 3 nucleotides (three nucleotides encode for one amino acid).
Proteins (which are of variable lengths) are made up of multiple amino-acids.
If the reading frame is offset by something other than an exact
multiple of 3, you will get a radically different protein that has the
potential for a completely different function.
If the reading frame is offset by a multiple of three, then you get
basically the same protein, but with an amino acid(s) missing. This
protein could also have a function change (although probably not as
radical as described above.

For our typical computer, consider the following. There is an "alphabet"
of 2 symbols (0 and 1). This is analogous to the different nucleotides.
There is a reading frame of 4 bits. 4 bits makes a nibble. This is analogous
to 3 nucleotides making an amino acid. A string of nibbles makes an instruction
(along with all needed data and or address information). This is analogous to
the string of amino acids making a protein. This instruction (including
possible appended data and or addresses) can be of a varying length, just like a
protein can be on a varying length.

If the reading frame is offset by anything at all, then you can get a radically
different program. Bruce illustrated this for the case where the reading frame
was shifted by 16 bits. The fact that one instruction only used 16 bits , and
another instruction used a different amount of information, caused the whole
scheme to become quickly out of whack. The issue gets even more
pronounced if there is a one-bit frame-change.

One has to ask "How would a reading-frame change occur in a computer?".
I can think of two possible ways.

(1) imagine that during the course of a computer program execution, you can
temporarily stop the processor (by temporarily freezing the clock that
drives the digital logic in the computer). You then (with external test
equipment) shift the bits over by a certain number. For example, with the
external equipment, run a program where for i=0 to n, bit(i) = bit(i+1), next
i. Then remove the external equipment and restart the computer clock, thus
resuming the program.

(2) You could also do it completely with software (with no external
manipulation). Consider a program (program #1) that simulates hardware (b)
reading another program (program # 2). Program #1 does its stuff without any
change in its reading frame. Program #1, though, simulates everything described
in (1) above. At a certain point, it suspends the action of simulated hardware
(b), shifts the bits that simulated hardware (b) sees, resumes the action of
simulated hardware (b) for the next instruction.

The catch is, though, that the whole operation of hardware (b) can be viewed as
data (or software) from the perspective of program #1. It is possible to view
the whole operation as just a particular program (program #1) being executed
with no frame-shift. The whole frame-shift scenario described in (2) is
something we as observers choose to assign to what is going on. There can also
be another equivalent interpretation of the software events that doesnt involve
a frame-shift. In the case of (1), though, there is no other way to look at
it. It is an actual frame shift for the computer hardware.

I think for a computer to be exactly analogous to the biological frame-shift,
requires an external agent (like a person) interpreting something and coming in
and altering something on the computer. Then what you actually have is a
meta-system of the "computer plus the person" being analogous to the biological
example. In the case where the computer simulates another computer running a
program, you have, once again, a meta-system where the outside system (program
#1) attaches meaning to the inside system (simulated hardware (b) and program
#2). But this meaning is insulated from the ontology of the outside system.
The frame-shift only exists because the observer is looking at the software
events in that way. The hardware that runs program #1 does not see a frame
shift.

In the biological example, the "external agent" that comes in and changes the
reading frame could actually be a previously translated protein that got
post-translationally modified. The system itself entails its own hardware
change, but not in a way that can be done on a computer (unless one uses
a meta system).

Jeff Prideaux
(these are my opinons, they are by no means the final word).