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