In this paradigm, programmers will solve a problem by writing a set of instructions that state how a problem should be solved. Both the terms imperative and procedural are used to describe this subset of languages, but procedural specifically describes a language used to write programs that can be split into procedures (or subroutines). For example, BASIC is a procedural language.