Log in Sign up
Back to Discover
💻

Abstraction (computer science)

technology Maturity 9-11 war conflict
This article covers sensitive topics: war_conflict. Parents can manage visibility in Parental Controls.

Computers use special ways to work.

Data abstraction levels.png
Data abstraction levels.png
They hide hard parts. This helps people use them. It makes big jobs easy. We can do a lot! Do you like computers?

32 words

Computers use special ways to work.

Data abstraction levels.png
Data abstraction levels.png
They hide hard parts. This lets people focus on big jobs.

Some parts of a computer are very complex. A computer thinks in tiny bits and numbers. People do not think that way.

Special tools hide these tiny steps. This makes it easier to write code. A person can just ask for a sum.

Computers can also hide how they store facts. This lets the machine change how it works. The person using it does not notice.

These tools help make huge systems. They help people build great things. It is a smart way to work.

105 words

In computer science, abstraction is a way to hide hard details. It lets people focus on the most important parts of a job.

Data abstraction levels.png
Data abstraction levels.png

Computers work in a very complex way. They use tiny bits of data to do math. A person might just write a simple sum. But the computer must do many hidden steps. It must turn numbers into binary. Then it must find where to store the answer in its memory. Abstraction hides these small steps. This is called control abstraction. It helps people write code without repeating hard tasks.

Programmers also use data abstraction. This hides how facts are stored. A programmer can use a lookup table to find information. The table might work in many different ways inside the machine. But the person using the table sees the same simple way every time.

Some tools help build huge systems. Software is often split into smaller parts. This is called structured programming. It breaks big tasks into small pieces. This makes the work easier to manage. Abstraction helps humans build very large and smart programs.

181 words

Abstraction is a clever way to manage complexity in computer science. It works by providing access to a system while hiding the difficult details.

Data abstraction levels.png
Data abstraction levels.png
This allows people to focus on the most important parts of a task. Without this, making huge computer systems would be a very hard job. By using abstraction, humans can build massive software by looking at only a few issues at a time. It is a way to make the complex world of computing easier to handle.

One way this works is through control abstraction. To a person, a math problem like (1 + 2) * 5 looks very simple. However, the computer must perform many subtle and complex steps to solve it. It must convert those numbers into a binary representation. Then, it must break the math down into tiny assembly instructions. The computer even has to find a specific spot in its memory to store the result. Abstraction hides all these tiny steps so the programmer does not have to repeat them.

Data abstraction levels.png
Data abstraction levels.png

Programmers also use something called data abstraction. This keeps the way data is used separate from how it is actually stored. For example, a programmer might use a lookup table to find a specific value. Inside the machine, that table could be a hash table or a simple list.

Data abstraction levels.png
Data abstraction levels.png
Even if the internal method changes to make it faster, the person using the table sees no difference. The interface acts like a contract that stays the same even if the inner parts change. This makes software much easier to update and improve over time.

History shows that programming languages have grown through many stages of abstraction. It started with first-generation machine language. Then came second-generation assembly language. Later, third-generation high-level languages were developed.

Data abstraction levels.png
Data abstraction levels.png
Each stage acts as a stepping stone to the next one. Today, we even have scripting languages and domain-specific languages. These allow people to express specific ideas in a very concise and elegant way. This constant growth helps programmers work with much more efficiency.

Modern software often uses object-oriented programming to organize these ideas. This method uses objects to represent different actors in a system.

Data abstraction levels.png
Data abstraction levels.png
It uses a concept called polymorphism, which lets different types of data work in similar roles. It also uses inheritance to structure complex relationships between different parts. Some experts, like Joel Spolsky, say that all abstractions are "leaky." This means they can never completely hide every single detail below them. Even so, abstraction remains a vital tool for building the digital world we use every day.

437 words

{ "text": "In computer science, abstraction is a fundamental method used to manage complexity. It works by providing access to a system or a set of data while hiding the difficult details that would otherwise make access challenging. By hiding these underlying mechanics, abstraction allows a person to focus their attention on details of greater importance. This process is essential because computing mostly operates independently of the concrete, physical world. Hardware implements a model of computation that can be interchangeable with others. Without abstraction, humans could not create enormous software systems because they would be overwhelmed by too many details at once. Instead, software is structured into architectures that allow creators to concentrate on only a few issues at a time.\n\nOne primary type of abstraction is control abstraction. This allows programmers to perform high-level tasks without managing the tiny, low-level steps the computer must take. For example, a human might write a simple math statement like a := (1 + 2) * 5. To a person, this is an obvious calculation. However, the computer must perform several subtle and complex steps to finish this task. It must convert the numbers into a binary representation, which is a system of bits. It must then decompose the math into assembly instructions, such as shifting a binary register or adding a binary complement. Finally, it must look up a variable's label and find a specific location in physical or virtual memory to store the result. Control abstraction hides these repetitive tasks, preventing the programmer from having to write for specific hardware every time.\n\nAnother vital concept is data abstraction. This technique enforces a clear separation between the abstract properties of a data type and the concrete details of how it is implemented. The abstract properties are the interface, which is what the user sees and interacts with. The concrete implementation is kept private. This means a programmer can change the internal code to make it more efficient without changing how the user interacts with it. For instance, a programmer might use a lookup table to associate keys with values. This table could be implemented as a hash table, a binary search tree, or a simple linear list. As long as the interface remains the same, the user does not notice the change. The interface acts like a contract on agreed behavior between the data type and the code using it.\n\n

Data abstraction levels.png
Data abstraction levels.png
\n\nProgramming languages have evolved through several generations of abstraction. This process serves as a stepping stone from simple to complex systems. The first-generation programming language is machine language, which is the most basic level. The second-generation is assembly language. The third-generation consists of high-level programming languages. This progression continues today with scripting languages and domain-specific languages, which are designed for specific tasks. Some languages, like those in the Lisp family, use macro systems to allow for syntactic abstraction. This can help programmers omit boilerplate code, which is repetitive code that must be included with little variation. Such tools improve both the efficiency of the programmer and the clarity of the source code.\n\nObject-oriented programming (OOP) is a major way that abstraction is used in modern software. In OOP, abstraction involves defining objects that represent abstract \"actors\" in a system. These actors can perform work, change their state, and communicate with other objects. Several specific terms describe how this works. Encapsulation refers to hiding the details of an object's state. Polymorphism is a strategy that allows different data types to be substituted for one another in similar roles. When abstraction is used to structure complex relationships inside classes, it is called inheritance or delegation. These features allow different types of objects to work together in a standardized way.\n\n
Data abstraction levels.png
Data abstraction levels.png
\n\nWhile most abstraction is automated, some forms are done manually. In scientific research, specifically during a systematic review of literature, researchers use manual data abstraction. During a meta-analysis, one or more abstractors pull specific data from many studies. To ensure the data is correct, they use a process called dual data abstraction, followed by independent checking known as adjudication. This manual process helps turn large amounts of complex information into a clear, usable format for analysis.\n\nDespite its usefulness, abstraction is not perfect. Software engineer Joel Spolsky has argued that all abstractions are \"leaky.\" This means that an abstraction can never completely hide every single detail of the layer beneath it. Sometimes, the underlying complexity will "leak" through and affect how the higher level works. However, this does not make abstraction less valuable. Even with the risk of leaks, it remains the primary way that engineers design, specify, and build the massive, interconnected software systems that define the modern world.", "media": [ "File:Data abstraction levels.png" ] }

780 words
🖼️ Images & Media (1)
File:Data abstraction levels.png
Data abstraction levels.png
Up Next
💻
High-level programming language
Technology
More to explore

What is Nepedia?

A free, ad-free encyclopedia for children. Every article is written at five reading levels, so the same page works for a five-year-old and a fifteen-year-old — use the level switcher above to see this one change. No account needed to read.