A digital computer stores data and executes on it various operations (eg, addition, multiplication and comparison). A sequence of operations or instructions, the “program”, is also stored in the computer and is interpreted sequentially by the central processing unit. An instruction can tell the CPU to perform an arithmetic operation using a particular memory location called an accumulator. The series of operations, and their meanings, are called the machine language or native computer.

Writing a program in machine language is a tedious job. This is why programs are usually written in advanced language (FORTRAN or COBOL for example). A simple advanced language instruction requires hundreds of instructions if it is to be written in machine language. So, we usually use a translator (ie a compiler) that produces a program in machine language from the corresponding program in advanced language, although some programs can be analyzed and executed directly, without going through this step .

An operating system is a special program that manages the resources of the computer system. For example, when many people use the computer at the same time, they should be prevented from conflicting with each other. There is usually only one processor and you have to set a schedule so that everyone uses it in turn.

An operating system also provides users with services such as ways to enter and store data in the computer. These services allow access to instruction sequences required by most programs. The operating system is normally the first program to be loaded into the computer. Each user communicates with the operating system using a command language to request services. There are now hundreds of different operating systems, many of which are designed for a specific field of application (eg, process control) or for specific or specialized IT installations.

A program that deals with a particular requirement (general ledger accounting) is called an application program. A payroll program would accept information such as hours worked and one of the outings would be in the form of paychecks. Most application programs can be adapted to various situations. Some of them (eg, engineering design packages and computer-assisted teaching systems) use special application languages.

Well-designed programs are easy to use for most people: there’s no need to memorize the details of the computer system in order to use them. Computer programs are often very big and sometimes they take months or even years to prepare. They can be used for years if changes are made to deal with new circumstances. The software methodology provides program writing techniques (including programming, structured design and analysis) that are easily understandable and modifiable by other programmers. The tools used include flowcharts, structure diagrams, data flow diagrams and decision tables.