Articles

Linguaggi specifici del dominio

Esempi di linguaggi specifici del dominio includono HTML, Logo per il disegno a matita, i linguaggi di descrizione hardware Verilog e VHDL, MATLAB e GNU Octave per la programmazione di matrici, Mathematica, Maple e Maxima per la matematica simbolica, Specification and Description Language per sistemi reattivi e distribuiti, formule e macro di fogli elettronici, SQL per interrogazioni di database relazionali, grammatiche YACC per la creazione di parser, espressioni regolari per specificare i lessicatori, il Generic Eclipse Modeling System per la creazione di linguaggi di diagrammi, Csound per la sintesi del suono e della musica, e i linguaggi di input di GraphViz e GrGen, pacchetti software usati per l’impaginazione e la riscrittura di grafi, Hashicorp Configuration Language usato per Terraform e altri strumenti Hashicorp, anche Puppet ha il suo linguaggio di configurazione.

GameMaker LanguageEdit

Il linguaggio di scripting GML usato da GameMaker Studio è un linguaggio specifico del dominio mirato ai programmatori principianti per poter imparare facilmente la programmazione. Mentre il linguaggio serve come una miscela di più linguaggi tra cui Delphi, C++ e BASIC, c’è una mancanza di strutture, tipi di dati e altre caratteristiche di un linguaggio di programmazione completo. Molte delle funzioni incorporate sono sandboxate allo scopo di una facile portabilità. Il linguaggio serve principalmente a rendere facile per chiunque prendere il linguaggio e sviluppare un gioco.

ColdFusion Markup LanguageEdit

Il linguaggio di scripting associato a ColdFusion è un altro esempio di linguaggio specifico per siti web guidati dai dati.NET, C++, SMS, email, server email, http, ftp, exchange, servizi di directory e file system da usare nei siti web.

Il ColdFusion Markup Language (CFML) include un insieme di tag che possono essere usati nelle pagine di ColdFusion per interagire con fonti di dati, manipolare dati e visualizzare output. La sintassi dei tag CFML è simile alla sintassi degli elementi HTML.

Erlang OTPEdit

L’Erlang Open Telecom Platform è stato originariamente progettato per l’uso all’interno di Ericsson come linguaggio specifico del dominio. Il linguaggio stesso offre una piattaforma di librerie per creare macchine a stati finiti, server generici e gestori di eventi che permettono rapidamente a un ingegnere di distribuire applicazioni, o librerie di supporto, che hanno dimostrato nei benchmark industriali di superare le prestazioni di altri linguaggi destinati a un insieme misto di domini, come C e C++. Il linguaggio è ora ufficialmente open source e può essere scaricato dal loro sito web.

FilterMeisterEdit

FilterMeister è un ambiente di programmazione, con un linguaggio di programmazione basato su C, per lo scopo specifico di creare plug-in di filtri per l’elaborazione delle immagini compatibili con Photoshop; FilterMeister funziona come un plug-in di Photoshop stesso e può caricare ed eseguire gli script o compilarli ed esportarli come plug-in indipendenti.Sebbene il linguaggio FilterMeister riproduca una parte significativa del linguaggio C e della libreria di funzioni, contiene solo quelle caratteristiche che possono essere usate nel contesto dei plug-in di Photoshop e aggiunge un certo numero di caratteristiche specifiche utili solo in questo specifico ambito.

Modelli MediaWikiModifica

La funzione Template di MediaWiki è un linguaggio incorporato specifico del dominio il cui scopo fondamentale è quello di supportare la creazione di modelli di pagina e la transclusione (inclusione per riferimento) di pagine MediaWiki in altre pagine MediaWiki.

Usi dell’ingegneria del softwareModifica

C’è stato molto interesse nei linguaggi specifici del dominio per migliorare la produttività e la qualità dell’ingegneria del software. I linguaggi specifici per un dominio potrebbero fornire un robusto insieme di strumenti per un’efficiente ingegneria del software. Tali strumenti stanno cominciando a farsi strada nello sviluppo di sistemi software critici.

Il Software Cost Reduction Toolkit ne è un esempio. Il toolkit è una suite di utilità che include un editor di specifiche per creare una specifica di requisiti, un browser di grafici di dipendenze per visualizzare le dipendenze delle variabili, un checker di coerenza per catturare i casi mancanti nelle formule ben formate nella specifica, un model checker e un theorem prover per controllare le proprietà del programma rispetto alla specifica, e un generatore di invarianti che costruisce automaticamente le invarianti basate sui requisiti.

Un nuovo sviluppo è la programmazione orientata al linguaggio, una metodologia integrata di ingegneria del software basata principalmente sulla creazione, l’ottimizzazione e l’uso di linguaggi specifici del dominio.

MetacompilatoriModifica

Altre informazioni: Metacompilatore

Completano la programmazione orientata ai linguaggi, così come tutte le altre forme di linguaggi specifici per il dominio, la classe di strumenti di scrittura di compilatori chiamati metacompilatori. Un metacompilatore non è solo utile per generare parser e generatori di codice per linguaggi specifici del dominio, ma un metacompilatore stesso compila un metalinguaggio specifico del dominio progettato specificamente per il dominio della metaprogrammazione.

Oltre ad analizzare linguaggi specifici del dominio, i metacompilatori sono utili per generare una vasta gamma di strumenti di analisi e ingegneria del software. La metodologia del metacompilatore si trova spesso nei sistemi di trasformazione dei programmi.

I metacompilatori che hanno giocato un ruolo significativo sia nell’informatica che nell’industria informatica includono Meta-II, e il suo discendente TreeMeta.

Unreal Engine prima della versione 4 e altri giochiEdit

Unreal e Unreal Tournament hanno presentato un linguaggio chiamato UnrealScript. Questo permetteva un rapido sviluppo di modifiche rispetto al concorrente Quake (che utilizzava il motore Id Tech 2). Il motore Id Tech usava codice C standard, il che significava che il C doveva essere imparato e applicato correttamente, mentre UnrealScript era ottimizzato per la facilità d’uso e l’efficienza. Allo stesso modo, lo sviluppo di giochi più recenti ha introdotto i propri linguaggi specifici, un esempio più comune è Lua per lo scripting.

Motori di regole per l’automazione delle politiche

Vari motori di regole di business sono stati sviluppati per automatizzare le regole di politica e di business utilizzati sia nel governo che nell’industria privata. ILOG, Oracle Policy Automation, DTRules, Drools e altri forniscono supporto per DSL mirati a supportare vari domini problematici. DTRules si spinge fino a definire un’interfaccia per l’uso di più DSL all’interno di un Rule Set.

Lo scopo dei Business Rules Engine è quello di definire una rappresentazione della logica di business nel modo più leggibile possibile. Questo permette sia agli esperti in materia che agli sviluppatori di lavorare e comprendere la stessa rappresentazione della logica di business. La maggior parte dei motori di regole fornisce sia un approccio alla semplificazione delle strutture di controllo per la logica di business (per esempio, usando regole dichiarative o tabelle decisionali) che alternative alla sintassi di programmazione in favore dei DSL.

Linguaggi di modellazione statisticaModifica

I modellatori statistici hanno sviluppato linguaggi specifici del dominio come R (un’implementazione del linguaggio S), Bugs, Jags e Stan. Questi linguaggi forniscono una sintassi per descrivere un modello bayesiano e generano un metodo per risolverlo usando la simulazione.

Genera modello e servizi per più linguaggi di programmazioneModifica

Genera la gestione di oggetti e servizi basati su un linguaggio di descrizione delle interfacce per un linguaggio specifico del dominio come JavaScript per applicazioni web, HTML per la documentazione, C++ per codice ad alte prestazioni, ecc. Questo viene fatto da frameworks cross-language come Apache Thrift o Google Protocol Buffers.

GherkinEdit

Gherkin è un linguaggio progettato per definire casi di test per controllare il comportamento del software, senza specificare come quel comportamento è implementato. È pensato per essere letto e usato da utenti non tecnici usando una sintassi di linguaggio naturale e un design orientato alla linea. I test definiti con Gherkin devono poi essere implementati in un linguaggio di programmazione generale. Quindi, i passi di un programma Gherkin agisce come una sintassi per l’invocazione del metodo accessibile ai non sviluppatori.

Altri esempiModifica

Altri esempi importanti di linguaggi specifici del dominio includono:

  • Emacs Lisp
  • Game Description Language
  • OpenGL Shading Language
  • Gradle
  • ActionScript

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *