I DSL personalizzati sono ancora validi?

5

I DSL personalizzati in JavaScript sono ancora validi, in particolare quelli scritti con Antler, Boo o l'ex Microsoft Oslo?

Con la proliferazione di motori JavaScript / ECMAScript open source (V8, IronJS, ecc.), ha più senso scrivere le funzionalità necessarie in una di quelle invece di scrivere una lingua completamente nuova?

    
posta Daniel A. White 20.08.2011 - 15:49
fonte

3 risposte

1

Se intendi DSL in termini rigorosi, come in una specifica del linguaggio di programmazione limitato a un solo dominio, allora sì. La proliferazione dei motori JavaScript / ECMAScript aumenta in realtà la loro vitalità: data una macchina virtuale comune che è flessibile quanto gli ECMAScript tendono ad essere, le DSL sono entrambe molto più facili da creare e più facili da incontrare.

Ciò che non vedrai, tuttavia, sono le lingue con i loro ambienti dedicati. All'estremità superiore, vedrai i compilatori nelle lingue esistenti (dal compilatore Java a Javascript che Google ha pubblicato). Molto più comunemente, vedrai una libreria di funzioni di supporto accoppiata con un linguaggio di programmazione / stile imposto da restrizioni e convenzioni api (l'API della libreria jQuery potrebbe essere chiamata DSL).

    
risposta data 20.08.2011 - 16:21
fonte
0

I DSL personalizzati sono ancora validi, ma hai altre opzioni che potrebbero essere più o meno complesse a seconda del problema che stai cercando di risolvere. Ad esempio puoi imporre DSL usando linguaggi dinamici. (Un DSL che usa Groovy è un esempio che mi viene in mente) che può quindi essere compilato o tradotto in altri linguaggi. Questo può avere un costo iniziale inferiore, ma potresti anche suggerire che non è quello che ti serve nel tuo caso.

Forse dovresti iniziare a definire il dominio in questione e mettere insieme un elenco di cose che ti serviranno da un DSL.

    
risposta data 20.08.2011 - 19:24
fonte
0

Le DSL sono raramente costruite come lingue "completamente nuove". La maggior parte dei pratici DSL sono costruiti sulla base delle lingue esistenti, ad esempio jQuery è un DSL su Javascript. E questi DSL non sono necessariamente DSL incorporati - possono anche essere autonomi, ma compilati in una combinazione delle lingue esistenti anziché scendere fino al livello più basso.

    
risposta data 21.08.2011 - 13:13
fonte

Leggi altre domande sui tag