Linguagem de domínio específico

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

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[1] (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

Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.
  • v
  • d
  • e
  • v
  • d
  • e
Paradigma
Nível
Geração
Relacionado
  • Não-baseadas em inglês
  • Visual
  1. Flamma (10 de agosto de 2024). «O que é Kotlin DSL: Entenda sua Aplicação e Vantagens». flammadesign.com.br. Consultado em 11 de setembro de 2024