Hoje quero falar sobre Linguagem de domínio específico. Este tema é extremamente relevante hoje, pois tem um impacto significativo na vida das pessoas. Durante anos, Linguagem de domínio específico foi objeto de debate e análise, gerando opiniões divididas entre especialistas e a sociedade em geral. É por esta razão que considero importante aprofundar este tema, para melhor compreender a sua importância e as suas possíveis repercussões em diferentes áreas. Ao longo deste artigo, exploraremos diferentes perspectivas e evidências relacionadas a Linguagem de domínio específico, a fim de fornecer uma visão abrangente de seu escopo e significado.
Esta página ou se(c)ção precisa ser formatada para o padrão wiki. (Maio de 2015) |
Este artigo não cita fontes confiáveis. (Abril de 2012) |
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.
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:
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.