title: Programming domain
text: # 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
  