Routines, also known as subroutines (in e.g., Fortran), procedures (in languages such as Pascal), functions (in e.g., C and other brace family languages), subprograms, etc., are the main abstraction mechanism of the imperative paradigm. There are two kinds of routines: