Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Domain-specific language
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Advantages and disadvantages== Some of the advantages:<ref name='Mernik05'/><ref name='Spinellis01'/> * Domain-specific languages allow solutions to be expressed in the idiom and at the level of abstraction of the problem domain. The idea is that domain experts themselves may understand, validate, modify, and often even develop domain-specific language programs. However, this is seldom the case.<ref name="Freudenthal">{{cite journal|last=Freudenthal|first=Margus|title=Domain Specific Languages in a Customs Information System|journal=IEEE Software|pages=1|date=1 January 2009|doi=10.1109/MS.2009.152}}</ref> * Domain-specific languages allow [[Computer security|validation]] at the domain level. As long as the language constructs are safe any sentence written with them can be considered safe.{{Citation needed|date=September 2011}} * Domain-specific languages can help to shift the development of business information systems from traditional software developers to the typically larger group of domain-experts who (despite having less technical expertise) have a deeper knowledge of the domain.<ref>{{cite journal|last1=Aram|first1=Michael|last2=Neumann|first2=Gustaf|title=Multilayered analysis of co-development of business information systems|journal=Journal of Internet Services and Applications|date=2015-07-01|volume=6|issue=1|doi=10.1186/s13174-015-0030-8|s2cid=16502371|url=http://www.jisajournal.com/content/pdf/s13174-015-0030-8.pdf|doi-access=free}}</ref> * Domain-specific languages are easier to learn, given their limited scope. Some of the disadvantages: * Cost of learning a new language * Limited applicability * Cost of designing, implementing, and maintaining a domain-specific language as well as the tools required to develop with it ([[Integrated Development Environment|IDE]]) * Finding, setting, and maintaining proper scope. * Difficulty of balancing trade-offs between domain-specificity and general-purpose programming language constructs. * Potential loss of processor [[algorithmic efficiency|efficiency]] compared with hand-coded software. * Proliferation of similar non-standard domain-specific languages, for example, a DSL used within one insurance company versus a DSL used within another insurance company.<ref>{{cite web|url=http://adams-project.org/standrts09/proceedings/miotto_vardanega_standrts09_final.pdf|title=On the integration of domain-specific and scientific bodies of knowledge in Model Driven Engineering|first=Eric|last=Miotto|access-date=2010-11-22|archive-url=https://web.archive.org/web/20110724223732/http://adams-project.org/standrts09/proceedings/miotto_vardanega_standrts09_final.pdf|archive-date=2011-07-24|url-status=dead}}</ref> * Non-technical domain experts can find it hard to write or modify DSL programs by themselves.<ref name="Freudenthal"/> * Increased difficulty of integrating the DSL with other components of the IT system (as compared to integrating with a general-purpose language). * Low supply of experts in a particular DSL tends to raise labor costs. * Harder to find code examples.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)