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

abstraction actors and computers
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Abstraction, Actors and Computers

Allen Stoughton Department of Computing and Information Sciences Kansas State University

1

slide-2
SLIDE 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

  • n inside a single computer in radically different ways.

2

slide-3
SLIDE 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

  • n inside a single computer in radically different ways.

Under some viewpoints, a computer largely consists of passive data.

2-a

slide-4
SLIDE 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

  • n 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

slide-5
SLIDE 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

  • n 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

slide-6
SLIDE 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

  • n 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

slide-7
SLIDE 7

Low-level Hardware Abstraction

3

slide-8
SLIDE 8

Low-level Hardware Abstraction

4

slide-9
SLIDE 9

Low-level Hardware Abstraction

5

slide-10
SLIDE 10

Low-level Hardware Abstraction

6

slide-11
SLIDE 11

Low-level Hardware Abstraction

7

slide-12
SLIDE 12

High-level Hardware Abstraction

. . . Program Counter Memory

8

slide-13
SLIDE 13

High-level Hardware Abstraction

. . . Program Counter Memory

9

slide-14
SLIDE 14

High-level Hardware Abstraction

. . . Program Counter Memory

10

slide-15
SLIDE 15

Machine Language Abstraction

11

slide-16
SLIDE 16

Machine Language Abstraction

12

slide-17
SLIDE 17

Machine Language Abstraction

13

slide-18
SLIDE 18

Machine Language Abstraction

14

slide-19
SLIDE 19

Machine Language Abstraction

15

slide-20
SLIDE 20

High-level Abstraction

High-level Programs Compilation Compiler Machine-level Programs

16

slide-21
SLIDE 21

High-level Abstraction (Cont.)

fun factorial 0 = 1 | factorial n = n * factorial(n - 1) factorial 3 → → → → →

17

slide-22
SLIDE 22

High-level Abstraction (Cont.)

fun factorial 0 = 1 | factorial n = n * factorial(n - 1) factorial 3 → 3 * factorial 2 → → → →

17-a

slide-23
SLIDE 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

slide-24
SLIDE 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

slide-25
SLIDE 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

slide-26
SLIDE 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

slide-27
SLIDE 27

Multiprogramming Abstraction

. . . Process Process Process Operating System

18

slide-28
SLIDE 28

Multiprogramming Abstraction

. . . Process Process Process Operating System

19

slide-29
SLIDE 29

Multiprogramming Abstraction

. . . Process Process Process Operating System

20

slide-30
SLIDE 30

Multiprogramming Abstraction

. . . Process Process Process Operating System

21

slide-31
SLIDE 31

Multiprogramming Abstraction

. . . Process Process Process Operating System

22

slide-32
SLIDE 32

Multiprogramming Abstraction

. . . Process Process Process Operating System

23

slide-33
SLIDE 33

Multiprogramming Abstraction

. . . Process Process Process Operating System

24

slide-34
SLIDE 34

Multiprogramming Abstraction

. . . Process Process Process Operating System

25

slide-35
SLIDE 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

slide-36
SLIDE 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

slide-37
SLIDE 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

slide-38
SLIDE 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

slide-39
SLIDE 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

slide-40
SLIDE 40

Software Architectures

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

27

slide-41
SLIDE 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

slide-42
SLIDE 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

slide-43
SLIDE 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

slide-44
SLIDE 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

slide-45
SLIDE 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

slide-46
SLIDE 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

slide-47
SLIDE 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

slide-48
SLIDE 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

slide-49
SLIDE 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

  • f doing. It may also help workers in other disciplines recognize

similar phenomena at work in the systems they study or build.

28-f