Computation is a process of performing a large number of simple operations. The main building blocks of classical computers are bits. Each of them can take either the value 0 or 1. A series of gates can change these values by acting on them selectively. This process is structured to fulfil a purpose. For example, if we are interested in adding two numbers, the numbers are encoded into bits and gates are performed such that the final state of the bits reveals the desired answer: a number which is the sum of the initial ones. While it is possible to build algorithms that can perform almost any computation, it is also desirable to find the answer within a reasonable length of time or with a reasonable amount of resources. There is an ever-growing demand in computational power for both scientific and commercial purposes. Indeed, it is surprisingly easy to find an application that can jam even the fastest computer. This fuels a vast effort in the research of information science to increase the speed and processing power of computers.
Modern computational models are based on the universal Turing machine (Turing, 1937). This is a theoretical information processing model that employs the elementary gate processes described above. It can efficiently simulate any other device capable of performing an algorithmic process. Since the introduction of the Turing machine, physics has influenced computation in many ways.