Idea per un linguaggio specifico del dominio o una porta DLR?

6

Ho in progetto il mio ultimo anno di studi universitari e sono molto interessato ai lexer, ai parser, ai compilatori e così via. Mi piacerebbe utilizzare il DLR (runtime di linguaggio dinamico .NET 4.0) per il mio progetto di fine anno dello studente universitario, ma sto lottando per trovare una ragione per usarlo!

Una lingua specifica di dominio sarebbe un'idea, ma la maggior parte dei domini che posso pensare sono già stati fatti. Una possibilità era un linguaggio di query triple store principalmente basato sul web semantico simile a SPARQL, ma il dominio è piuttosto complicato e il motore di query impiegherebbe un po 'di tempo per scrivere e ottimizzare.

Sto anche pensando a diversi paradigmi di programmazione, in particolare quelli di livello più elevato come i linguaggi di programmazione array / collezione piuttosto che scalari. Una lingua che è meno specifica in termini di dominio, ma con la quale è 'più semplice elaborare X, che è comunemente usata o trattata nella situazione Y' sarebbe interessante.

Un altro approccio sarebbe quello di tentare di trasferire una lingua esistente (o almeno parte di essa, tempo permettendo) al DLR. Preferibilmente non APL o Perl - Io non sono un masochista. Modifica: Per chiarire, con 'Porta' intendo ospitare una lingua esistente sul DLR, come IronJS, IronPython, IronRuby, ecc.

Qualcuno ha qualche idea per un linguaggio specifico di dominio, preferibilmente ma non necessariamente adatto per il DLR?

    
posta Joshua Smith 07.09.2011 - 15:35
fonte

2 risposte

1

La famiglia di linguaggi Lisp / Scheme è molto bella con cui giocare in termini di analisi, compilazione, interpretazione, ecc ...

    
risposta data 07.09.2011 - 15:49
fonte
1

Non sei sicuro di cosa sia una porta DLR (quindi non posso aiutarti) ...

Ma ho sempre pensato che una drum machine avrebbe reso un linguaggio divertente e specifico per il dominio, forse solo per il rullante di una banda musicale.

Il motivo è che i rudimenti di batteria spesso possono essere più facilmente pronunciati a parole (con nomi) piuttosto che annotati su spartiti.

Quindi, ad esempio, un mini-linguaggio che sarebbe andato come segue sarebbe stato divertente,

bar bar1 : flam tap for 2 beats, quater rest, 9-stroke roll.
bar bar2 : swiss army triplet for 4 beats.
rythm r1 : (bar1, bar2) repeat 10 at 130 beats per minute.
save r1 as "my_beat.wav".

o cosa hai.

Cerca di renderlo facile o difficile come preferisci ....

    
risposta data 07.09.2011 - 16:01
fonte

Leggi altre domande sui tag