The research on DNA-based circuits has grown exponentially during the past few years. Having said that, the technology needed for the implementation of such circuits in living cells has been upgraded immensely as well. DNA exhibits the properties of programmable structure, self-assembly and adequate robust stability, making it an important and interesting building block to construct molecular machines. In the attempt to provide an alternative to the traditional semiconductor-based devices, extensive research has been done to construct molecular level devices with minimal components performing efficiently in living cells. In this article, we present a comprehensive survey of advancements and applications of such devices in molecular computing and nanotechnology. We cover the overview of programming languages, design and development of computational devices like logic gates and controllers, including the former approaches that originally influenced this present development. We also discuss nanorobots, such as DNA walkers and tweezers with the general objective to provide a comprehensive survey of the most state of the art approaches in the DNA based computing devices.