Biomolecular (DNA) computing is an emergent field lying at the crossroads of computer science and molecular biology. The main idea behind biomolecular computing is that data can be encoded in DNA strands, and techniques from molecular biology can be used to perform arithmetic and logic operations. I will address the computation language of a DNA-based system which is defined as consisting of all the words (DNA strands) that can appear during a computation. I will define properties of languages which ensure that their words will not form undesirable bonds when used in DNA computations, give several characterizations of the desired properties and provide methods for obtaining languages with such properties. Another approach to biomolecular computing is to study the information processing capabilities of cellular organisms: How do cells and nature "compute" and what can we learn from it? Cells read and "rewrite" DNA all the time, by processes that modify sequences at the DNA or RNA level. I will discuss our research into the computational power of DNA recombinations that take place during gene rearrangement in unicellular protozoa. Our results indicate that, in principle, such organisms may have the computational power of an electronic computer.