1.2 More on computers executing programs

A program being executed carry out a specific task. When a program is executed, the computer generates a computational process that consists of objects that hold data and carry out computations that may manipulate objects. A computation is a partial ordered sequence of operations executed by a computer.

These operations include:

  • Calculations using arithmetic operations (including addition, subtraction, multiplication, and division), and logical operations (including comparisons like less than, greater than, less than or equal to, greater than or equal to, equal to, and not equal to), and data stored in the computer system.
  • Storing the results of calculations in the computer system.
  • Sending and receiving data to and from other computers.
  • Storing data and instructions into the computer system. 
  • Interact with people using various devices including screen, keyboard, mouse, and printer.

A computer usually includes many processing units (often called cores) and many input/output devices (I/O devices). Each of these may execute operations. The operations executed by a single core take place in sequence and is thus referred to as a sequential computation or sequential process. The operations of two or more cores take place at the same time and are a computation carried out by several cores is referred to as a parallel computation or parallel process. The operations carried out by I/O devices also takes place in parallel.

There is no ordering between the operations executed by differen cores and/or I/O devices except when they have to communicate. This means that the operations of a computation are partially ordered.

The term system often appears in the text above when giving examples of tasks carried out by computers like healthcare systems, flight reservation systems, and student registration systems. Used in this way, system is just a dual term for computational process. In loose terms, a system is a collection of components (objects) that act according to a set of rules (as described in a program) to form a whole.  We thus use the terms computational process and system depending on the context.

Also, the term program execution is often used for computational process and/or system, and we use the three terms depending on context.

A computational process should be viewed to be just as physical as processes going on in the real world including case handling in a public authority, chemical processes, processes in wastewater plants, and processes in a production plants. The difference is that a computational process exists within a computer, it consists of a varying number of objects, the computerized material analog to Lego bricks. Elements of the application domain are typically represented by elements of the computational process.