| • Science | • People | • Locations | • Timeline |
Each module is composed of one or more subprograms (which may consist of procedures, functions, subroutines or methods, depending on programming language). It is possible for a procedural program to have multiple levels or scopes, with subprograms defined inside other subprograms. Each scope can contain names which cannot be seen in outer scopes.
Procedural programming offers many benefits over simple sequential programming since procedural code:
Procedural programming should not be confused with the orthogonal concept of imperative programming. An example of a non-imperative yet procedural programming language is Logo, which specifies sequences of steps to perform but does not have an internal state.
The canonical example of a procedural programming language is ALGOL. Others include PL/I, Modula-2, and Ada.