The term programming domain is mostly used when referring to domain-specific programming languages. It refers to a set of programming languages or programming environments that were written specifically for a particular domain, where domain means a broad subject for end users such as accounting or finance, or a category of program usage such as artificial intelligence or email. Languages and systems within a single programming domain would have functions common to the domain and may omit functions that are irrelevant to a domain. Some examples of programming domains are: Expert systems, computer systems that emulate the decision-making ability of a human expert and are designed to solve complex problems by reasoning through bodies of knowledge. Natural-language processing, handling interactions between computers and human (natural) languages such as speech recognition, natural-language understanding, and natural-language generation. Computer vision, dealing with how computers can understand and automate tasks that the human visual system can do and extracting data from the real world. Other programming domains would include: Application scripting Array programming Artificial-intelligence reasoning Cloud computing Computational statistics Contact Management Software E-commerce Financial time-series analysis General-purpose applications Image processing Internet Numerical mathematics Programming education Relational database querying Software prototyping Symbolic mathematics Systems design and implementation Text processing Theorem proving Video game programming and development Video processing See also Domain (software engineering) Domain-specific language References Akour, Mohammed & Falah, Bouchaib. (2016). Application domain and programming language readability yardsticks. 1-6. 10.1109/CSIT.2016.7549476. Domain