Articles

Linguagem específica de domínio

Exemplos de linguagens específicas de domínio incluem HTML, Logotipo para desenho tipo lápis, linguagens de descrição de hardware Verilog e VHDL, MATLAB e GNU Octave para programação matricial, Mathematica, Maple e Maxima para matemática simbólica, Linguagem de Especificação e Descrição para sistemas reactivos e distribuídos, fórmulas e macros de folha de cálculo, SQL para consultas de bases de dados relacionais, Gramáticas YACC para criar parsers, expressões regulares para especificar lexers, o Sistema Genérico de Modelação Eclipse para criar linguagens de diagramação, Csound para síntese de som e música, e as linguagens de entrada do GraphViz e GrGen, pacotes de software utilizados para disposição gráfica e reescrita gráfica, Linguagem de Configuração Hashicorp utilizada para Terraform e outras ferramentas Hashicorp, Puppet tem também a sua própria linguagem de configuração.

Linguagem GameMakerEdit

A linguagem de scripting GML utilizada pelo GameMaker Studio é uma linguagem específica de domínio destinada a programadores principiantes para poderem facilmente aprender programação. Embora a linguagem sirva como uma mistura de múltiplas linguagens incluindo Delphi, C++, e BASIC, há falta de estruturas, tipos de dados, e outras características de uma linguagem de programação de pleno direito. Muitas das funções incorporadas são sandboxed com o objectivo de facilitar a portabilidade. A linguagem serve principalmente para facilitar a qualquer pessoa pegar na linguagem e desenvolver um jogo.

ColdFusion Markup LanguageEdit

ColdFusion’s associated scripting language is another example of a domain-specific language for data-driven websites.Esta linguagem de scripting é usada para tecer em conjunto linguagens e serviços como Java, .NET, C++, SMS, e-mail, servidores de e-mail, http, ftp, troca, serviços de directório, e sistemas de ficheiros para utilização em websites.

A linguagem de marcação ColdFusion (CFML) inclui um conjunto de tags que podem ser utilizadas nas páginas do ColdFusion para interagir com fontes de dados, manipular dados, e mostrar a saída. A sintaxe da tag CFML é semelhante à sintaxe do elemento HTML.

Erlang OTPEdit

A plataforma Erlang Open Telecom foi originalmente concebida para utilização dentro da Ericsson como uma linguagem específica de domínio. A própria linguagem oferece uma plataforma de bibliotecas para criar máquinas de estado finito, servidores genéricos e gestores de eventos que rapidamente permitem a um engenheiro implementar aplicações, ou apoiar bibliotecas, que tenham sido demonstradas em benchmarks da indústria para superar outras linguagens destinadas a um conjunto misto de domínios, tais como C e C++. A linguagem é agora oficialmente de código aberto e pode ser descarregada do seu website.

FilterMeisterEdit

FilterMeister é um ambiente de programação, com uma linguagem de programação baseada em C, com o objectivo específico de criar plug-ins de filtragem de processamento de imagem compatíveis com Photoshop; o FilterMeister corre como um plug-in do próprio Photoshop e pode carregar e executar scripts ou compilá-los e exportá-los como plug-ins independentes.Embora a linguagem FilterMeister reproduza uma parte significativa da linguagem C e da biblioteca de funções, contém apenas as características que podem ser utilizadas no contexto dos plug-ins do Photoshop e acrescenta uma série de características específicas úteis apenas neste domínio específico.

Templates MediaWikiEdit

A funcionalidade Template do MediaWiki é uma linguagem específica do domínio cuja finalidade fundamental é apoiar a criação de templates de páginas e a transClusão (inclusão por referência) de páginas MediaWiki noutras páginas MediaWiki.

A engenharia de software usaEdit

Há muito interesse em linguagens específicas do domínio para melhorar a produtividade e a qualidade da engenharia de software. A linguagem específica do domínio poderia possivelmente fornecer um conjunto robusto de ferramentas para uma engenharia de software eficiente. Tais ferramentas estão a começar a entrar no desenvolvimento de sistemas de software críticos.

O Software Cost Reduction Toolkit é um exemplo disso. O toolkit é um conjunto de utilitários incluindo um editor de especificações para criar uma especificação de requisitos, um navegador de gráficos de dependência para exibir dependências variáveis, um verificador de consistência para detectar casos em falta em fórmulas bem formadas na especificação, um verificador de modelos e um provérbio teorema para verificar as propriedades do programa contra a especificação, e um gerador invariante que constrói automaticamente invariantes com base nos requisitos.

Um desenvolvimento mais recente é a programação orientada para a linguagem, uma metodologia integrada de engenharia de software baseada principalmente na criação, optimização e utilização de linguagens específicas do domínio.

MetacompilersEdit

Outras informações: Metacompiler

Completar a programação orientada para a linguagem, bem como todas as outras formas de linguagens específicas de domínio, são a classe de ferramentas de escrita de compiladores chamada metacompilers. Um metacompilador não só é útil para gerar parsers e geradores de código para linguagens específicas de domínio, mas o próprio metacompilador compila uma metalinguagem específica de domínio especificamente concebida para o domínio da metaprogramação.

Besides parsing linguagens específicas de domínio, os metacompiladores são úteis para gerar uma vasta gama de ferramentas de engenharia e análise de software. A metodologia dos metacompiladores encontra-se frequentemente em sistemas de transformação de programas.

Metacompilers que desempenharam um papel significativo tanto na ciência da computação como na indústria informática incluem Meta-II, e a sua descendente TreeMeta.

Unreal Engine antes da versão 4 e outros jogosEdit

Unreal and Unreal Tournament revelou uma linguagem chamada UnrealScript. Isto permitiu o rápido desenvolvimento de modificações em comparação com o Quake do concorrente (utilizando o motor Id Tech 2). O motor Id Tech utilizava o código C padrão que significava C tinha de ser aprendido e devidamente aplicado, enquanto que o UnrealScript foi optimizado para facilidade de utilização e eficiência. Da mesma forma, o desenvolvimento de jogos mais recentes introduziu as suas próprias linguagens específicas, um exemplo mais comum é Lua para scripting.

Motores de Regras para Automação de PolíticasEditar

Vários Motores de Regras Empresariais foram desenvolvidos para automatizar políticas e regras empresariais utilizadas tanto no governo como na indústria privada. ILOG, Oracle Policy Automation, DTRules, Drools e outros fornecem apoio a DSLs destinadas a apoiar vários domínios problemáticos. DTRules vai ao ponto de definir uma interface para o uso de múltiplas DSLs dentro de um Conjunto de Regras.

O objectivo dos Motores de Regras Empresariais é definir uma representação da lógica empresarial da forma mais legível possível para o ser humano. Isto permite tanto a especialistas no assunto como a programadores trabalhar e compreender a mesma representação da lógica de negócios. A maioria dos Motores de Regras fornece tanto uma abordagem para simplificar as estruturas de controlo da lógica empresarial (por exemplo, utilizando Regras Declarativas ou Tabelas de Decisão), como alternativas à sintaxe de programação em favor das DSLs.

Linguagens de modelação estatísticaEditar

Modeladores estatísticos desenvolveram linguagens específicas do domínio, tais como R (uma implementação da linguagem S),Bugs, Jags, e Stan. Estas linguagens fornecem uma sintaxe para descrever um modelo Bayesiano e geram um método para o resolver usando simulação.

Gerar modelo e serviços para múltiplas linguagens de programaçãoEditar

Gerar manipulação de objectos e serviços baseados numa Linguagem de Descrição de Interface para uma linguagem específica de domínio, como JavaScript para aplicações web, HTML para documentação, C++ para código de alto desempenho, etc. Isto é feito através de estruturas linguísticas cruzadas tais como Apache Thrift ou Google Protocol Buffers.

GherkinEdit

Gherkin é uma linguagem concebida para definir casos de teste para verificar o comportamento do software, sem especificar como esse comportamento é implementado. Destina-se a ser lido e utilizado por utilizadores não técnicos utilizando uma sintaxe de linguagem natural e um desenho orientado para a linha. Os testes definidos com Gherkin devem então ser implementados numa linguagem de programação geral. Depois, os passos de um programa Gherkin actuam como uma sintaxe de invocação de métodos acessível a não-desenvolvedores.

Outros exemplosEditar

Outros exemplos proeminentes de linguagens específicas de domínio incluem:

  • Emacs Lisp
  • Linguagem de Descrição do Jogo
  • Linguagem de Sombreamento OpenGL
  • Gradle
  • ActionScript

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *