Could computers understand their own programs?
The Computer Laboratory celebrated its 75th anniversary on Wednesday 24th April, 2013. The annual Wheeler lecture was given that day by Sir Tony Hoare, Emeritus Professor of Computer Science at the University of Oxford, Principal Researcher at Microsoft Research and Honorary Member of the University of Cambridge Computer Laboratory.
Abstract
Could computers understand their own programs? In summary, my answer to the question is Yes.
In principle, computers could understand their own programs, and those of other computers, although their understanding is rather weak at present. It was Alan Turing who suggested that we can gather evidence of the understanding of computers if we subject them to the same kind of examination that we have inflicted on many generations students at schools and universities. An examination usually requires the student to justify each given answer by logical reasoning. The most rigorous principles of logical reasoning was first formulated by the ancient Greek Philosopher Aristotle; and they were further refined by the ancient Egyptian philosopher Euclid. Finally, Alan Turing also showed that these principles apply equally to logical reasoning about computer programs. Finally, I will suggest how to set the pass mark in the examination. A computer passes the test of understanding if the answers to the questions about its own program are useful to the human software engineer who wrote the program. I hope that one day, computers will pass this test. Then they will be able to serve as intelligent assistants to the programmer during the task of writing the programs.