Declarative programming
In computer science, declarative programming is a programming paradigm that expresses the logic of a computation without fully describing its control flow. Languages that permit this style allow a developer to minimize or eliminate side effects by describing what the program must accomplish in terms of the problem domain, rather than fully describing how to accomplish it as a sequence of the programming language primitives (the how being left up to the language's implementation).