can computers understand their own programs? prof sir tony hoare 05 th july 2012
TRANSCRIPT
![Page 1: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/1.jpg)
Can Computers Understand Their Own Programs?
Prof Sir Tony Hoare 05th July 2012
![Page 2: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/2.jpg)
Auxiliary question 1.
• Can people understand their own rational thought processes?
• [1] Aristotle, Prior Analytics. (~350 bce)
– classics.mit.edu/Aristotle/prior.html
• [2] Euclid, Elements Book 1 (~300bce)
– aleph0.clarku.edu/~djoyce/java/elements.html
![Page 3: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/3.jpg)
Auxiliary question 2 .
• How can a program be understood?
[3] A.M. Turing, On computable numbers, with an application to the Entscheidungsproblem, Proc. London Math. Soc, Ser 2 Vol 42 (1) 230-265 (1936).[4] A.M. Turing, Checking a large routine, Report on a Conference on High Speed Automatic Calculating Machines, Cambridge Univ. Math. Lab 67-69 (1949)
![Page 4: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/4.jpg)
Auxiliary question 3.
• How do we know whether the computer understands something?
• [5] A.M. Turing, Computing machinery and intelligence, MIND Vol 59 No. 236 (Oct 1950)
![Page 5: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/5.jpg)
Question 1
• Can people understand their own rational thought processes
![Page 6: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/6.jpg)
Aristotle 384-322 BC.Founded the Lyceum in Athens, teaching
sciences: physics, biology, zoology; aesthetics: poetry, theatre, music,ethics: politics, government, rhetoric, philosophy: metaphysics, logic, linguistics
![Page 7: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/7.jpg)
Logic is defined by
• a notation for each relevant concept• a grammar for each line of the proof• a grammar for each valid deductive step
![Page 8: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/8.jpg)
Grammar• Let S stand for the subject of a sentence,
• Let P stand for the predicate of the sentence
– e,g, Socrates, sharks, fishes, men.
• The four permitted forms of sentence are:
– (a) All S are P (e) No S are P
– (i) Some S are P (o) Some S are not P
![Page 9: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/9.jpg)
Barbara
(Major premise) All S are M (a)(Minor premise) All M are P . (a)(Conclusion) All S are P. (a)
![Page 10: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/10.jpg)
Celarent
No M are P (e)All S are M (a)No S are P (e)
![Page 11: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/11.jpg)
Darii
• All M are P (a)• Some S are M. (i)• Some S are P (i)
![Page 12: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/12.jpg)
24 syllogisms
• Barbara, Barbari, Barnalip, Baroco, Bocardo, Camestres, Camestros, Calemes, Calemos, Celarent, Celaront, Cesare, Cesaro, Darapti, Darii, Datisi, Dimatis, Disamis, Felapton, Ferio, Ferison, Fesapo, Festino, Fresison.
• Modern logic has just one rule of inference, and a couple of axioms,
• and is much more powerful.
![Page 13: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/13.jpg)
Examples from BiologyBarbaraAll sharks are selachians (a)All selachians inhabit the sea (a)All sharks inhabit the sea (a)
Celarent No selachians are fish (e)All rays are selachians (a) No rays are fish (e)
![Page 14: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/14.jpg)
A five-line proof
All sharks are selachians (a)All selachians inhabit the sea (a)All sharks inhabit the sea (a)Some sharks are carnivores (i)Some inhabitants of the sea are carnivores (i)
![Page 15: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/15.jpg)
Grammar of proofs
A proof is a sequences of sentencesin which each sentence is either a premiseor it is the last line of one of the 24 syllogisms,and the first two lines of that syllogismoccur earlier in the proof.
![Page 16: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/16.jpg)
Principles
• Validity of a proof does not depend on– Its subject matter– The desirability of the proven result– The person who is presenting the proof– The truth of the premises
• It depends only on the syntactic form
![Page 17: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/17.jpg)
Computer reasoning
• Computers easily check conformity of a proof to the given deductive rules.
• Computers discover proofs by exploring all the possible deductions from lines proved so far.
• Computers were essential to proof of Four-colour Theorem and the Kepler Conjecture.
![Page 18: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/18.jpg)
• To colour each side of all borders differently,no map needs more than four colours.
• The left diagram needs all four.• The right diagram needs only three.
The four-colour theorem
![Page 19: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/19.jpg)
• The proof in Coq by Georges Gonthier examines 633 cases
• Each case requires round a million proof steps
The four-colour theorem
![Page 20: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/20.jpg)
The Kepler Conjecture
This is the way to pack the most oranges into a large container.
![Page 21: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/21.jpg)
Question 2
• How can a program be understood?
![Page 22: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/22.jpg)
Euclid
worked in Alexandria, round 300 BCE.
His Elements was the main textbook for teaching mathematics (especially geometry) until the late 19th or early 20th century.
Euclid also wrote on perspective, conic sections, spherical geometry, number theory and rigor, and the greatest common divisor.
![Page 23: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/23.jpg)
Constructions
• A geometric construction describes how to draw– a figure, line, point,..– which satisfies some desired property,– together with a proof that it does so!
• It is written in a programming language– with assignments, sequencing,– subroutines, parameters,– preconditions, postconditions,…
• and proof of correctness of the program!
![Page 24: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/24.jpg)
Five postulates
1. To draw a straight line between two points.2. …3. To draw a circle with any centre and radius.4. …5. … parallel postulate…
These are the five basic actions of the language
![Page 25: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/25.jpg)
To draw a circle with any centre and radius. (postulate 3).
![Page 26: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/26.jpg)
23 Definitions
1. A point is that which has no part2. ….15. A circle is … 16. Its centre is ….20. An equilateral triangle has three equal sides.
Words of the language are related to each other and to their meaning in the real world.
![Page 27: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/27.jpg)
An equilateral triangle has equal sides (Def 20)
C
![Page 28: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/28.jpg)
All straight lines from the boundary to the centre of a circle are equal (Def 14, 15, 16)
![Page 29: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/29.jpg)
Five common notions
1. Two things that are both equal to a third thing are equal to each other.
2. If equals are added to equals, the wholes are equal3. If equals are subtracted from equals…4. Things which coincide are equal5. The whole is greater than the part
![Page 30: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/30.jpg)
48 Propositions of Book 1
1. To construct an equilateral triangle with given side.
2. …47/8 Pythagoras’ theorem
![Page 31: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/31.jpg)
Subroutines
Propositions are subroutines that can be called by name repeatedly in later proofs, to perform useful constructions. The proven properties of the construction can be used as assumptions of the proof of any proposition that calls it.
![Page 32: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/32.jpg)
1. To construct an equilateral triangle
with a given line as one of its sides
![Page 33: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/33.jpg)
choose one end of the given line
![Page 34: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/34.jpg)
Draw a circle with the line as radius and its centre at one end (postulate 3).
![Page 35: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/35.jpg)
Then draw a circle with the line as radius and centre at the other end
![Page 36: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/36.jpg)
Now choose a point where the two circles intersect each other
C
![Page 37: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/37.jpg)
..and one end of the given line
C
![Page 38: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/38.jpg)
Then draw a line between them (Postulate 1)
C
![Page 39: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/39.jpg)
C
Do the same on the other side(Postulate 1)
![Page 40: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/40.jpg)
The lines marked are equal, being radii of the left circle (Def. 15)
C
![Page 41: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/41.jpg)
The lines marked are equal, being radii of the right circle (Def. 15)
C
![Page 42: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/42.jpg)
The lines marked are equal, (common notion 1)
C
![Page 43: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/43.jpg)
The triangle is therefore equilateral (Def 20) Q.E.D.
C
![Page 44: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/44.jpg)
The caller of this proposition does not need to reproduce or even know the construction.
![Page 45: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/45.jpg)
Summary of Euclid’s method
• primitives (postulates),
• definition of new names
• sequencing of commands
• subroutines (propositions)
• preconditions (Data)
• postconditions (QED)
‘Draw a circle with centre …’
‘Choose a point C on …’
‘Draw … and then draw …’
‘Draw an equilateral triangle’
‘Given a straight line…’
‘…the triangle is equilateral’
![Page 46: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/46.jpg)
Alan Turing
• invented a logic for reasoning about programs.
• The Turing machine can use this logic to answer questions about its own programs.
• And to justify its answers by proof.
![Page 47: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/47.jpg)
The Hoare triple: P{V}R
means: When P , action V ensures Rwhere V changes (part of) the world
P describes an (initial) state of that partR describes the resulting (final) state
![Page 48: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/48.jpg)
Examples of triples• When the radio whistles,turning the suppression knob clockwiseensures the absence of the whistle.
• When two distinct points are closer than r , drawing a circle of radius r around each point, ensures that their circumferences intersect at two places.
• When the value of x is greater than threeincreasing the value of xensures that x is greater than 4 .
![Page 49: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/49.jpg)
Sequential execution
• When P, V1 ensures S When S , V2 ensures RWhen P , (V1 then V2) ensures R .
![Page 50: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/50.jpg)
Conditional tests.
• When P and B , V1 ensures R When P and not B , V2 ensures RWhen P , (if B then V1 else V2) ensures R
![Page 51: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/51.jpg)
Repetition
• When P and notB , V ensures PWhen P , (repeat V until B) ensures (P and B)
![Page 52: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/52.jpg)
Non-determinism
C
C
![Page 53: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/53.jpg)
Syllogism for non-determinism.
• When P , V1 ensures R When P , V2 ensures RWhen P , (V1 orelse V2) ensures R
![Page 54: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/54.jpg)
Question 3
• How do we know whether the computer understands something?
![Page 55: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/55.jpg)
The Turing test
• by conversation between tester and machine• on arbitrary topics of human interest• for five minutes.
• The machine fools the tester that it is human• on 30% of the tests
![Page 56: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/56.jpg)
An Engineering Version of the Test
• by interactive examination of the machine• on the single topic of its own program• for as long as desired.
![Page 57: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/57.jpg)
Criterion of understanding
• The machine gives an answer to most questions
• and explains the reasoning behind it.• All the answers are correct.• most of them are relevant and useful• to the software engineer writing the program.
![Page 58: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/58.jpg)
Typical questions
• Can the program overflow a buffer?• If so, give an execution that reveals the error.• Generate test cases that exercise all the
changes recently made to the program.• Can this change make the program slower?• Are all assertions made in the program valid?• Could the airplanes under control by the
program ever collide?
![Page 59: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/59.jpg)
The Intelligent Programmer’s Assistant
• Within 50 years, a design automation system for software engineering
• will be widely used by programmers• in the analysis, design, programming, testing,
delivery, and subsequent improvements• of the ubiquitous software of tomorrow.
J Moore
![Page 60: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/60.jpg)
Collaborative program development
• Human understands – the real world– the needs of program users– the commercial opportunities
• Computer understands– the consequences of human decisionsin the context of a large and complex program.
![Page 61: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/61.jpg)
The programmer will complain
• ‘The computer doesn’t understand what I want my program to do.
• It only understands the easy part of my job,• and sometimes not even that’
![Page 62: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/62.jpg)
Analogies
• Computers understand– by analogy with human understanding
• Airplanes fly– by analogy with the flight of birds
• Why don’t submarines swim– by analogy with fishes?
![Page 63: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/63.jpg)
Alan Turing
• The language in which one communicates with these machines…forms a sort of symbolic logic….
![Page 64: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/64.jpg)
Speculation
• The logic of programming is the logic of action in space and time.
![Page 65: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/65.jpg)
©2012 Microsoft Corporation. All rights reserved.This material is provided for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Microsoft is a registered trademark or trademark of Microsoft
Corporation in the United States and/or other countries.
![Page 66: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/66.jpg)
Speculation
• Why did it take so long for a logic of change to be developed by philosophers and logicians?
![Page 67: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/67.jpg)
Isaac Newton
Communication with Richard Gregory (1694)
“Our specious algebra [of fluxions] is fit enough to find out, but entirely unfit to consign to writing and commit to posterity.”
![Page 68: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/68.jpg)
Sample questions
• What are its properties?• How does it behave in its environment? • What is its internal structure? • What is its purpose? • Why do we believe the answers to the
preceding questions?
![Page 69: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/69.jpg)
low level of understanding
• [3] A.M. Turing, On computable numbers, with an application to the Entscheidungs-problem, Proc. London Math. Soc, Ser 2 Vol 42 (1) 230-265 (Nov 1936).
![Page 70: Can Computers Understand Their Own Programs? Prof Sir Tony Hoare 05 th July 2012](https://reader036.vdocuments.us/reader036/viewer/2022062321/56649de85503460f94ae2978/html5/thumbnails/70.jpg)
Summary
• Computer Science is part of the enduring cultural and intellectual history of mankind.
• It has developed and exploited the ideas of the greatest thinkers of the past.
• It is developing new ideas that will influence the thinking of future generations
• And empower them to solve the many problems which we know that they will face.