What Computers Can't Compute Dr Nick Benton Queens' College & Microsoft Research [email protected].
How computers compute
-
Upload
miguel-serrano-milano -
Category
Technology
-
view
242 -
download
0
Transcript of How computers compute
![Page 1: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/1.jpg)
How Computers Compute
![Page 2: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/2.jpg)
(6+2*3)/22–6/3
How we humans compute?
![Page 3: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/3.jpg)
(6+2*3)/22–6/3
How we humans compute?
Operator Precedence:
3: POW (^)
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 4: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/4.jpg)
(6+2*3)/22–6/3
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 5: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/5.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 6: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/6.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 7: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/7.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 8: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/8.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 9: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/9.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
(6+6)/4–2
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 10: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/10.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
(6+6)/4–2
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 11: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/11.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
(6+6)/4–2
12/4–2
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 12: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/12.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
(6+6)/4–2
12/4–2
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 13: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/13.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
(6+6)/4–2
12/4–2
3–2
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 14: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/14.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
(6+6)/4–2
12/4–2
3–2
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 15: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/15.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
(6+6)/4–2
12/4–2
3–2
1
How we humans compute?
3: POW (̂ )
2: MUL, DIV (*, /)
1: ADD, SUB (+,-)
0: Parenthesis
![Page 16: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/16.jpg)
CPU
Memory
Program
VS
![Page 17: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/17.jpg)
CPU
Memory
Program
This is actually pretty stupid
VS
![Page 18: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/18.jpg)
● Get data from program/memory● Push data to memory
CPU
Memory
Program
What a CPU can do?
![Page 19: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/19.jpg)
● Get data from program/memory● Push data to memory● Perform operations with data from memory
AdditionSubtractionMultiplicationDivision
CPU
Memory
Program
What a CPU can do?
![Page 20: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/20.jpg)
● Get data from program/memory● Push data to memory● Perform operations with data from memory
AdditionSubtractionMultiplicationDivision
CPU
Memory
Program
What a CPU can do?
![Page 21: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/21.jpg)
● Get data from program/memory● Push data to memory● Perform operations with data from memory
AdditionSubtractionMultiplicationDivision
CPU
Memory
Program
What a CPU can do?
“Variations” of Addition (Binary format perk)
![Page 22: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/22.jpg)
● Get data from program/memory● Push data to memory● Perform operations with data from memory
AdditionSubtractionMultiplicationDivision
CPU
Memory
Program
What a CPU can do?
“Variations” of Addition (Binary format perk)
RISC Reduced Instruction Set Computing
![Page 23: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/23.jpg)
CPU
Memory
Program
(6+2*3)/22–6/3
This should go there...
Running a program
![Page 24: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/24.jpg)
CPU
Memory
Program
(6+2*3)/22–6/3
But the CPU won’t understand this program!!!
Running a program
![Page 25: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/25.jpg)
(6+2*3)/22–6/3
(6+2*3)/4–6/3
(6+6)/4–6/3
(6+6)/4–2
12/4–2
3–2
1
Let’s flip our previous pyramid
![Page 26: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/26.jpg)
1
3–2
12/4–2
(6+6)/4–2
(6+6)/4–6/3
(6+2*3)/4–6/3(6+2*3)/22–6/3
Let’s flip our previous pyramid
![Page 27: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/27.jpg)
1
3–2
12/4–2
(6+6)/4–2
(6+6)/4–6/3
(6+2*3)/4–6/3(6+2*3)/22–6/3
And create a Graph with the steps taken
![Page 28: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/28.jpg)
1
3–2
12/4–2
(6+6)/4–2
(6+6)/4–6/3
(6+2*3)/4–6/3(6+2*3)/22–6/3
And create a Graph with the steps taken
-
![Page 29: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/29.jpg)
1
3–2
12/4–2
(6+6)/4–2
(6+6)/4–6/3
(6+2*3)/4–6/3(6+2*3)/22–6/3
And create a Graph with the steps taken
-
/
![Page 30: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/30.jpg)
1
3–2
12/4–2
(6+6)/4–2
(6+6)/4–6/3
(6+2*3)/4–6/3(6+2*3)/22–6/3
And create a Graph with the steps taken
-
/
+
![Page 31: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/31.jpg)
1
3–2
12/4–2
(6+6)/4–2
(6+6)/4–6/3
(6+2*3)/4–6/3(6+2*3)/22–6/3
And create a Graph with the steps taken
-
/
+/
![Page 32: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/32.jpg)
1
3–2
12/4–2
(6+6)/4–2
(6+6)/4–6/3
(6+2*3)/4–6/3(6+2*3)/22–6/3
And create a Graph with the steps taken
-
/
+/
*
![Page 33: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/33.jpg)
1
3–2
12/4–2
(6+6)/4–2
(6+6)/4–6/3
(6+2*3)/4–6/3(6+2*3)/22–6/3
And create a Graph with the steps taken
-
/
+/
* ^
![Page 34: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/34.jpg)
1
3–2
12/4–2
(6+6)/4–2
(6+6)/4–6/3
(6+2*3)/4–6/3(6+2*3)/22–6/3
And create a Graph with the steps taken
-
/
+/
* ^6
2 3 2 2
6 3
![Page 35: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/35.jpg)
Let’s apply a Post-order Traversal
-
/
+/
* ^6
2 3 2 2
6 3
Algorithm:
Resolve left subtree
Resolve right subtree
Resolve node
![Page 36: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/36.jpg)
Let’s apply a Post-order Traversal
-
/
+/
* ^6
2 3 2 2
6 3
Algorithm:
Resolve left subtree
Resolve right subtree
Resolve node
623*+22^/63/-
![Page 37: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/37.jpg)
Let’s apply an Post-order Traversal
-
/
+/
* ^6
2 3 2 2
6 3
Algorithm:
Resolve left subtree
Resolve right subtree
Resolve node
this is what compilers do!
From: (6+2*3)/22–6/3To: 623*+22^/63/-
Abstract Syntax Tree (AST)
![Page 38: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/38.jpg)
CPU -/36/^22+*32 6
Memory
623*+22^/63/-
reversed
Random Fact: HP48 calculators work with postfix notation only
![Page 39: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/39.jpg)
CPU -/36/^22+*32 6
![Page 40: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/40.jpg)
CPU -/36/^22+*3 2
6
![Page 41: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/41.jpg)
CPU -/36/^22+* 3
62
![Page 42: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/42.jpg)
CPU -/36/^22+ *
62
3
Take 2 items from memory, multiply them and leave the
result in memory
![Page 43: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/43.jpg)
CPU -/36/^22 +
6 6
Take 2 items from memory, multiply them and leave the
result in memory
![Page 44: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/44.jpg)
CPU -/36/^2 2
12
![Page 45: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/45.jpg)
CPU -/36/^ 2
12
2
![Page 46: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/46.jpg)
CPU -/36/ ^
12
22
![Page 47: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/47.jpg)
CPU -/36 /
12
4
![Page 48: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/48.jpg)
CPU -/3 6
3
![Page 49: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/49.jpg)
CPU -/ 3
36
![Page 50: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/50.jpg)
CPU- /
363
![Page 51: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/51.jpg)
CPU-
32
![Page 52: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/52.jpg)
CPU
1
![Page 53: How computers compute](https://reader031.fdocuments.in/reader031/viewer/2022021813/5886c4071a28abcc7d8b5a65/html5/thumbnails/53.jpg)
End!Q&A