Skip to content

Domain Specific Languages

August 6, 2009
tags:
A domain-specific programming language is a programming language designed for, and intended to be useful for, a specific kind of task.
UNIX shell scripts give a good example of a domain-specific language for data organization. They can manipulate data in files or user input in many different ways.
A domain-specific language is created specifically to solve problems in a particular domain and is not intended to be able to solve problems outside it (although that may be technically possible). The domain can also be a business area. Some examples of business areas include:
  1. Domain-specific language for life insurance policies developed internally in large insurance enterprise
  2. Domain-specific language for combat simulation
  3. Domain-specific language for salary calculation
  4. Domain-specific language for billing
Advantages
  1. Domain-specific languages allow solutions to be expressed in the idiom and at the level of abstraction of the problem domain. Consequently, domain experts themselves can understand, validate, modify, and often even develop domain-specific language programs.
  2. Self-documenting code.
  3. Domain-specific languages enhance quality, productivity, reliability, maintainability, portability and reusability.
  4. Domain-specific languages allow validation at the domain level. As long as the language constructs are safe any sentence written with them can be considered safe.
Disadvantages
  1. Cost of designing, implementing, and maintaining a domain-specific language.
  2. Finding, setting, and maintaining proper scope.
  3. Difficulty of balancing trade-offs between domain-specificity and general-purpose programming language constructs.
  4. Potential loss of processor efficiency compared with hand-coded software.
  5. Hard or impossible to debug.
Advertisements
No comments yet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: