Domeinspecifieke taal (DSL)

Een domeinspecifieke taal (DSL) is een programmeertaal die is ontwikkeld om in een specifieke behoefte te voorzien.  In die zin is een domein een smal interessegebied.

Een DSL kan worden ontwikkeld om te voorzien in de behoeften van een bepaald platform, systeem, toolset, softwareprobleem, industrie, of zakelijke uitdaging die niet effectief kan worden aangepakt door het gebruik van gangbare talen. Voorbeelden van veelgebruikte DSL's zijn cascading style sheets (CSS), Ant en SQL. De menselijk leesbare code die veel DSL's gebruiken kan ook helpen om de samenwerking tussen programmeurs en andere belanghebbenden te verbeteren.

Een DSL kan worden vergeleken met een taal voor algemene doeleinden, zoals C#, die is ontworpen om aan een breed scala van behoeften in het software-ontwikkelingslandschap te voldoen. In veel gevallen kan een subset van een taal voor algemene doeleinden worden ontwikkeld en geïmplementeerd als een domeinspecifieke taal om een bepaald probleem aan te pakken. Ruby (met name Ruby on Rails) en Scala zijn voorbeelden van talen die zich lenen voor de ontwikkeling van deze interne DSL's. Scala zou bijvoorbeeld kunnen worden gebruikt om een DSL te creëren voor zeer complexe domeinen zoals handelsbeurzen in de energie-industrie. De meeste softwareprojecten zullen een algemene taal bevatten en verschillende perifere DSL's om de vereiste functionaliteit voor verschillende domeinen binnen het systeem toe te voegen.