Modern-day computers have proved to be quite powerful in what they can do. The rise of AI has made things we previously only imagined possible. And the rate at which computers are increasing their computational power certainly makes it seem like we will be able to do almost anything with them. But as we’ve seen before, there are fundamental limits to what computers can do regardless of the processors or algorithms they use. This naturally leads us to ask what computers are capable of doing at their best and what their limits are. Which requires formalizing various definitions in computing.
This is exactly what happened in the early 20th century. Logicians & mathematicians were trying to formalize the foundations of mathematics through logic. One famous challenge based on this was the Entscheidungsproblem posed by David Hilbert and Wilhelm Ackermann. The problem asked if there exists an algorithm that can verify whether any mathematical statement is true or false based on provided axioms. Such an algorithm could be used to verify if any mathematical system is internally consistent. Kurt Gödel proved in 1931 that this problem could not be answered one way or the other through his incompleteness theorems.
Years later, Alan Turing and Alonzo Church proved the same through separate, independent means. Turing did so by developing Turing machines (called automatic machines at the time) and the Halting problem. Church did so by developing lambda calculus. Later on, it was proved that Turing machines and lambda calculus are mathematically equivalent. This led many mathematicians to theorize that computability could be defined by either of these systems. That in turn caused Turing and Church to make their thesis: every effectively calculable function is a computable function. In simpler terms, it states that any computation from any model can be carried out by a Turing machine or lambda calculus. To better understand the implications of the Church-Turing thesis, we need to explore the different kinds of computational machines.