Abstraction Inside the Computer

Why this? AP talks about the abstraction hierarchy. This page shows some level of detail, but also highlights the two crucial abstraction barriers: between hardware and software, and between the analog domain and the digital domain.

Why here? This page is sort of preview of coming attractions. It's a short page, with nothing really to do except read it and move on to the full story.

PG, on unit: This whole unit is a lot of reading and very little action. Of course, that's true of most school courses so, for better or for worse, kids are used to it. We've thought about it and (currently) have no solution. I very much like all the content. I equally much want the entire unit to be optional extra. To me, it feels like the second course in computer science, not the attract-students-in course. For those who want to see what's under the hood of the /computer/—the computer engineering interest—this should be available, but if it were not for CB, I'd leave it all optional.

BH, on lab: There's hardly anything to do in this lab, and if we could improve on that it'd be great, but I don't see how.

MF: lightly clean up to make the text more concise

In Unit 4 A Hierarchy of Open Protocols, you saw that the Internet software is arranged in several levels of abstraction, with application programs (like your email program) at the highest level and network hardware protocols such as WiFi and Ethernet at the lowest level. Recall that higher levels are closer to what users want to be thinking about; lower levels are closer to the way machines work.

Like the Internet, the way a computer works on the inside also has levels of abstraction.

In this lab, you will learn about the levels of abstraction in computer software and hardware.

On this page, you will learn get an overview of three groups (domains) of levels of abstraction.

There are a lot of levels of abstraction in how computers work. Here they are organized into three overarching domains:

diagram of computer abstraction hierarchy showing three levels of decreasing abstraction: software domain (including applications, programming languages, libraries, and operating systems), digital domain (including architecture, components, integrated circuits, and logic gates), and analog domain (including transistors); there is a dividing line between the software and digital domains labeled 'program abstraction barrier' and a dividing line between the digital and analog domains labeled 'digital abstraction barrier;' there is a vertical double-headed arrow on the right indicating that the items listed first on the list (and their sub-lists) have a 'high level of abstraction' and those lower on the list have a 'low level of abstraction'
Different people might draw this diagram slightly differently, so don't try to memorize all the levels. The key abstraction levels to remember are software, digital computer hardware, and underlying analog circuit components.
Do we need this commented out content? --MF, 6/12/20

Software Domain

The programs you write and use are software, but underneath these programs is more software that helps them work. In this lab, we'll look at four layers of abstraction in the software domain:

Software is an abstraction—a way of thinking about the computer without thinking about how it works.

Similarly, an automobile driver is operating at a high level of abstraction when using the brake pedal. As long as the engineers and mechanics designed and built the car right, drivers don't need to know the details about how the brake system works—they just use it at a high level.
Image by Wikipedia user Julianprescott2604juuly

Digital Domain

In the software domain, each level of abstraction is a different piece of software, but the levels of abstraction in the digital domain are different ways of thinking about the same physical object. The circuitry inside a computer is complicated, and to make building it possible, engineers think about it at several different levels of abstraction:

Do we need this commented out content? --MF, 6/12/20

Analog Domain

Logic gates, which are the lowest abstraction level of the digital domain, operate on ones and zeros. In physical reality, those logic gates are built out of transistors, a type of circuit component. Transistors aren't like light switches that are either on or off. There can be in-between values (like "only 23% on"). So, electrical engineers have to think about the laws of electronics to design digital circuits so that in-between values don't happen.

: analog vs. digital

Digital and analog are opposites. Digital means information that is represented as ones and zeros. Analog means information that is represented by signals that vary continuously (that is, including in-between values).