  The field of molecular programming allows for the programming of the
structure and behavior of matter at the molecular level, even to the point of
encoding arbitrary computation. However, current approaches tend to be wasteful
in terms of monomers, gate complexes, and free energy. In response, we present
a novel abstract model of molecular programming, Reversible Bond Logic (RBL),
which exploits the concepts of reversibility and reversible computing to help
address these issues. RBL systems permit very general manipulations of
arbitrarily complex 'molecular' structures, and possess properties such as
component reuse, modularity, compositionality. We will demonstrate the
implementation of a common free-energy currency that can be shared across
systems, initially using it to power a biased walker. Then we will introduce
some basic motifs for the manipulation of structures, which will be used to
implement such computational primitives as conditional branching, looping, and
subroutines. Example programs will include logical negation, and addition and
squaring of arbitrarily large numbers. As a consequence of reversibility, we
will also obtain the inverse programs (subtraction and square-rooting) for
free. Due to modularity, multiple instances of these computations can occur in
parallel without cross-talk. Future work aims to further characterize RBL, and
develop variants that may be amenable to experimental implementation.
