Language-oriented programming (LOP) is an approach to software development that focuses on the use of domain specific languages (DSLs) to solve problems within various domains in a system or application. It may include the use of both existing DSLs and the creation of new ones. Identifying and understanding user requirements is the key to successful LOP. Because it focuses on writing software that addresses problems described in concrete terms, it may particularly useful for behavior-driven development projects.
LOP permits developers to work outside the constraints of general purpose languages such as Java and C++ that would entail writing a great deal of complex code to achieve their desired outcome. LOP sidesteps the difficulties posed by trying to map a conceptual model onto the infrastructure of an existing language that may be limited to constructs such as classes, loops, etc. Instead, programmers focus on the simplest way to perform the task (i.e., solve the problem or meet user requirements). Then, they utilize or construct one or more DSLs that solve that problem in a highly performant way. There is generally minimal effort required to edit the code itself after creation because the language is constructed to fit the conceptual model of the problem/solution. This enables direct mapping of user requirements onto the language.