A class of programming languages. With an imperative language a program explicitly states how the desired result is to be produced but does not explicitly define what properties the result is expected to exhibit – the result is defined only implicitly as whatever is obtained by following the specified procedure (compare declarative languages).
The procedure for producing the desired result takes the form of a sequence of operations, and thus with imperative languages the notions of flow of control and ordering of statements are inherent. Such a language is typically characterized by the presence of the assignment statement, which, being destructive (the assigned value replaces the previous value of the variable), also depends on the notion of ordering. Imperative languages are closely associated with the von Neumann model of computation, and the majority of widely used languages – including Cobol, Fortran, C++, Java, and Basic – are imperative.