## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

## Software

Computers need software to operate: A very powerful computer without software is just a piece of iron that is consuming electric power and doing nothing useful. To make it useful, you find a way to express a task (the solution to a problem) in a computer's instruction set, feed it to the computer, and receive the results of computation. At a high level, this is what software is and what it does: the facilities for translating a task to a set of operations that are understandable by the hardware that will execute them.

There are different ways to carry out this process. Let's take the addition operation as a simple task: Your job is to add two numbers that are given to you and respond with their sum. First you translate the numbers to their binary representation. Then you will happily realize that the computer hardware that is going to execute this task offers an instruction called ADD that conveniently receives two binary values and responds with their sum. To use this instruction for your task, you need to first put the input values into somewhere in the memory, and then let the CPU know the location of these values and what operation you want it to carry out with the contents of those locations: You “call” the ADD instruction. Because the instruction is designed by smart people, it tells you where it will put the result: the sum of the two input values. To do this, you use an input device (such as a keyboard) and somehow enter the values in proper memory locations, call ...

## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required