The activity of proceeding from a given design of a system to a working version (known also as an implementation) of that system, or the specific way in which some part of a system is made to fulfill its function. For example, a control unit may be implemented by random logic or by microprogramming; a multiplier may be implemented by successive additions and shifts or by a table lookup. Another example occurs in computer families, where different implementations may differ in the type of circuit elements used or in the actual parallelism (as opposed to logical parallelism) of the ALU.
With software, use of the term normally implies that all major design decisions have been made so that the implementation activity could be relatively straightforward. For many systems a number of important characteristics may not become bound until the implementation activity; examples include the programming language in which the system is written, the type of computer employed, the actual hardware configuration, or the operating system used. With such systems there may be a number of distinct implementation activities in order to provide several versions of the system, e.g. written in different languages or operating on different hardware.