abstraction actors and computers
play

Abstraction, Actors and Computers Allen Stoughton Department of - PowerPoint PPT Presentation

Abstraction, Actors and Computers Allen Stoughton Department of Computing and Information Sciences Kansas State University 1 Introduction I will argue that, depending upon the abstractions used, and how the abstractions are interpreted, it is


  1. Abstraction, Actors and Computers Allen Stoughton Department of Computing and Information Sciences Kansas State University 1

  2. Introduction I will argue that, depending upon the abstractions used, and how the abstractions are interpreted, it is possible to think of what goes on inside a single computer in radically different ways. 2

  3. Introduction I will argue that, depending upon the abstractions used, and how the abstractions are interpreted, it is possible to think of what goes on inside a single computer in radically different ways. Under some viewpoints, a computer largely consists of passive data. 2-a

  4. Introduction I will argue that, depending upon the abstractions used, and how the abstractions are interpreted, it is possible to think of what goes on inside a single computer in radically different ways. Under some viewpoints, a computer largely consists of passive data. But in others, computers consist of many actors , which interact with each other and the computer’s environment. 2-b

  5. Introduction I will argue that, depending upon the abstractions used, and how the abstractions are interpreted, it is possible to think of what goes on inside a single computer in radically different ways. Under some viewpoints, a computer largely consists of passive data. But in others, computers consist of many actors , which interact with each other and the computer’s environment. Different abstractions are useful for different purposes: understanding and designing different levels or aspects of a computer’s architecture. 2-c

  6. Introduction I will argue that, depending upon the abstractions used, and how the abstractions are interpreted, it is possible to think of what goes on inside a single computer in radically different ways. Under some viewpoints, a computer largely consists of passive data. But in others, computers consist of many actors , which interact with each other and the computer’s environment. Different abstractions are useful for different purposes: understanding and designing different levels or aspects of a computer’s architecture. We find it easier to understand and design entities that are, or that we imagine to be, active. 2-d

  7. Low-level Hardware Abstraction 3

  8. Low-level Hardware Abstraction 4

  9. Low-level Hardware Abstraction 5

  10. Low-level Hardware Abstraction 6

  11. Low-level Hardware Abstraction 7

  12. High-level Hardware Abstraction Memory Program Counter . . . 8

  13. High-level Hardware Abstraction Memory Program Counter . . . 9

  14. High-level Hardware Abstraction Memory Program Counter . . . 10

  15. Machine Language Abstraction 11

  16. Machine Language Abstraction 12

  17. Machine Language Abstraction 13

  18. Machine Language Abstraction 14

  19. Machine Language Abstraction 15

  20. High-level Abstraction Compilation High-level Machine-level Programs Programs Compiler 16

  21. High-level Abstraction (Cont.) fun factorial 0 = 1 | factorial n = n * factorial(n - 1) factorial 3 → → → → → 17

  22. High-level Abstraction (Cont.) fun factorial 0 = 1 | factorial n = n * factorial(n - 1) factorial 3 → 3 * factorial 2 → → → → 17-a

  23. High-level Abstraction (Cont.) fun factorial 0 = 1 | factorial n = n * factorial(n - 1) factorial 3 → 3 * factorial 2 → 3 * (2 * factorial 1) → → → 17-b

  24. High-level Abstraction (Cont.) fun factorial 0 = 1 | factorial n = n * factorial(n - 1) factorial 3 → 3 * factorial 2 → 3 * (2 * factorial 1) → 3 * (2 * (1 * factorial 0)) → → 17-c

  25. High-level Abstraction (Cont.) fun factorial 0 = 1 | factorial n = n * factorial(n - 1) factorial 3 → 3 * factorial 2 → 3 * (2 * factorial 1) → 3 * (2 * (1 * factorial 0)) → 3 * (2 * (1 * 1)) → 17-d

  26. High-level Abstraction (Cont.) fun factorial 0 = 1 | factorial n = n * factorial(n - 1) factorial 3 → 3 * factorial 2 → 3 * (2 * factorial 1) → 3 * (2 * (1 * factorial 0)) → 3 * (2 * (1 * 1)) → 6 17-e

  27. Multiprogramming Abstraction Operating System Process Process Process . . . 18

  28. Multiprogramming Abstraction Operating System Process Process Process . . . 19

  29. Multiprogramming Abstraction Operating System Process Process Process . . . 20

  30. Multiprogramming Abstraction Operating System Process Process Process . . . 21

  31. Multiprogramming Abstraction Operating System Process Process Process . . . 22

  32. Multiprogramming Abstraction Operating System Process Process Process . . . 23

  33. Multiprogramming Abstraction Operating System Process Process Process . . . 24

  34. Multiprogramming Abstraction Operating System Process Process Process . . . 25

  35. Actors as Data fun apply(x, []) = x | apply(x, f :: fs) = apply(f x, fs) apply(4, [fn x => x + 1, fn x => 2 * x, fn x => x * x]) → → → → 26

  36. Actors as Data fun apply(x, []) = x | apply(x, f :: fs) = apply(f x, fs) apply(4, [fn x => x + 1, fn x => 2 * x, fn x => x * x]) → apply(5, [fn x => 2 * x, fn x => x * x]) → → → 26-a

  37. Actors as Data fun apply(x, []) = x | apply(x, f :: fs) = apply(f x, fs) apply(4, [fn x => x + 1, fn x => 2 * x, fn x => x * x]) → apply(5, [fn x => 2 * x, fn x => x * x]) → apply(10, [fn x => x * x]) → → 26-b

  38. Actors as Data fun apply(x, []) = x | apply(x, f :: fs) = apply(f x, fs) apply(4, [fn x => x + 1, fn x => 2 * x, fn x => x * x]) → apply(5, [fn x => 2 * x, fn x => x * x]) → apply(10, [fn x => x * x]) → apply(100, []) → 26-c

  39. Actors as Data fun apply(x, []) = x | apply(x, f :: fs) = apply(f x, fs) apply(4, [fn x => x + 1, fn x => 2 * x, fn x => x * x]) → apply(5, [fn x => 2 * x, fn x => x * x]) → apply(10, [fn x => x * x]) → apply(100, []) → 100 26-d

  40. Software Architectures There is no limit to the software architectures that can be created within a computer. 27

  41. Software Architectures There is no limit to the software architectures that can be created within a computer. Actors may create virtual environments in which which families of actors interact. 27-a

  42. Software Architectures There is no limit to the software architectures that can be created within a computer. Actors may create virtual environments in which which families of actors interact. Virtual environments can be nested in virtual environments. 27-b

  43. Summary Depending upon the abstractions being used, and how the abstractions are interpreted, what goes on inside a single computer can be thought of in radically different ways: 28

  44. Summary Depending upon the abstractions being used, and how the abstractions are interpreted, what goes on inside a single computer can be thought of in radically different ways: • single actor; 28-a

  45. Summary Depending upon the abstractions being used, and how the abstractions are interpreted, what goes on inside a single computer can be thought of in radically different ways: • single actor; • many actors; 28-b

  46. Summary Depending upon the abstractions being used, and how the abstractions are interpreted, what goes on inside a single computer can be thought of in radically different ways: • single actor; • many actors; • actors as data; 28-c

  47. Summary Depending upon the abstractions being used, and how the abstractions are interpreted, what goes on inside a single computer can be thought of in radically different ways: • single actor; • many actors; • actors as data; • actors within actors. 28-d

  48. Summary Depending upon the abstractions being used, and how the abstractions are interpreted, what goes on inside a single computer can be thought of in radically different ways: • single actor; • many actors; • actors as data; • actors within actors. Different points of view are necessary in order to get the intellectual traction necessary to achieve certain goals. 28-e

  49. Summary Depending upon the abstractions being used, and how the abstractions are interpreted, what goes on inside a single computer can be thought of in radically different ways: • single actor; • many actors; • actors as data; • actors within actors. Different points of view are necessary in order to get the intellectual traction necessary to achieve certain goals. Understanding all of this may help laypeople develop more useful mental models of how computers work and what they are capable of doing. It may also help workers in other disciplines recognize similar phenomena at work in the systems they study or build. 28-f

Recommend


More recommend