Linguagem de domínio específico

Origem: Wikipédia, a enciclopédia livre.

Uma Linguagem de Domínio Específico português brasileiro (Domain-Specific Language - DSL inglês) são os paradigmas e funções, ou códigos específicos, de uma linguagem de programação ou linguagem de especificação em desenvolvimento de software e engenharia de domínio, dedicada a um domínio de problema particular, uma técnica de representação de problema particular e/ou uma técnica de solução particular.

O conceito não é novo - linguagens de programação de propósito especial e todos os tipos de linguagem de modelagem/especificação sempre existiram, mas o termo se tornou mais popular devido a ascensão da modelagem de domínio específico.

Exemplos de linguagem de domínio específico incluem HTML, Logo para crianças, Verilog e linguagens de descrição de hardware VHDL, Mata para programação matricial, Mathematica e Maxima para matemática simbólica, macros e fórmulas de planilhas eletrônicas, SQL para consultas de bancos de dados relacionais, gramáticas YACC para criação de analisadores sintáticos, expressões regulares para analisadores léxicos, o Generic Eclipse Modeling System para criação de linguagens de diagramação, Csound para síntese de áudio e música e linguagens de entrada para GraphViz e GrGen, pacotes de software usados para leiaute de grafos e reescrita de grafos, linguagens R e S para estatísticas, etc.

O oposto de uma linguagem de domínio específico seria uma linguagem de programação de propósito geral, como C, Java ou Python ou uma linguagem de modelagem de propósito geral, como a Linguagem de Modelagem Unificada (UML);

A criação de uma linguagem específica de domínio (com software para suportá-la) pode valer a pena se a linguagem permitir que um tipo ou solução de um problema em particular seja expressado de uma maneira mais clara do que uma linguagem existente pode permitir e o tipo de problema em questão reapareça suficientemente com frequência. A programação orientada à linguagem considera a criação de linguagens de propósito especial para expressar problemas como parte padrão do processo de solução do problema.

Visão geral[editar | editar código-fonte]

Uma linguagem de domínio específico é criada especificamente para resolver problemas em um domínio particular e não se destina a ser capaz de resolver os problemas fora de seu âmbito de atuação (embora isso possa ser tecnicamente possível). Em contraste, as linguagens de propósito geral são criadas para resolver problemas em muitos domínios. O domínio também pode ser uma área de negócio. Alguns exemplos de áreas de negócio incluem:

  • Linguagem de domínio específico para seguros de vida, desenvolvida internamente em grandes empresas de seguros.
  • Linguagem de domínio específico para simulação de combate.
  • Linguagem de domínio específico para o cálculo do salário.
  • Linguagem de domínio específico para o faturamento.

Uma linguagem de domínio específico está em algum lugar entre uma linguagem de programação Tiny e uma linguagem de script, e é muitas vezes usada de forma análoga a uma biblioteca de programação. As fronteiras entre estes conceitos são bastante distorcidas, bem como o limite entre as linguagens de script e as linguagens de propósito geral.

Ver também[editar | editar código-fonte]

Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.