Programming domain
# Programming domain

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
