Computer systems consist of hardware and software. The hardware is the physical machine. A set of instructions for the computer is called a program. All the different kinds of programs used to give instructions to the computer are referred to as software.
Why just zeros and ones?
Computers use zeros and ones because it is easy to make a physical device that has only two stable states. However, when you are programming, you normally need not be concerned about the encoding of data as zeros and ones. You can program as if the computer directly stored numbers, letters, or strings of letters in memory.
There is nothing special about the digits zero and one. It is just the common representation of the two stables states found on the physical machine. We could as well use any two names, such as A and B, true and false, or on and off.
Bytes and Memory Locations
A byte is a memory location that can hold eight digits, each either 0 or 1. A computer’s main memory is divided into numbered bytes. The number of a byte is called its address. To store a piece of data that is too large to fit into a single byte, computer computer uses a number of adjacent bytes. These adjacent bytes are considered to be a single larger memory location, and the address of the first byte is used as the address of the entire larger location.
What is a software?
Software simply means programs. A software company is a company that develops and creates programs. The software on your computer is just the collection of programs on your computer. A program is a set of instructions for a computer to follow.
High-Level and Low-Level Languages
Programming languages that are designed for people to use are called high-level programming languages. Examples of high-level languages include Java, Pascal, C, C++, BASIC and Visual Basic. These tools are used to write programs and provide instructions to computers.
But computers cannot understand high-level languages. These codes still need to be compiled and translated into a low-level language so that computers can understand the instructions. A compiler is a program that translates a high-level language program, such as a Java program, into a program in a simpler language that the computer can more or less directly understand.
Computers can only directly understand low-level languages. This language is usually referred to as machine languages or assembly languages. Assembly language is almost the same as the machine language.
Source Code and Object Code
Source code or source program is the code to be translated or compiled. This is the code that is in high-level language format and is easily readable by the programmer. Object code is usually the output of the compilation. It contains the low-level instructions that the computer needs to execute.