Collecting scattered knowledge into one coherent account, this book provides a compendium of both classical and recently developed results on reversible computing. It offers an expanded view of the field that includes the traditional energy-motivated hardware viewpoint as well as the emerging application-motivated software approach. It explores up-and-coming theories, techniques, and tools for the application of reversible computing. The topics covered span several areas of computer science, including high-performance computing, parallel/distributed systems, computational theory, compilers, power-aware computing, and supercomputing.