Come disegnare i linguaggi di programmazione personalizzati, non testuali?

0

Ho usato e creato linguaggi specifici del dominio prima, un sacco di volte (ad esempio usando yacc / lex). Normalmente inizieremo con la grammatica scritta in BNF e un gruppo di parole chiave. Questo è facile da fare, facile da condividere.

Recentemente, ho iniziato a lavorare con i linguaggi di programmazione diagrammatici - il parallelo più vicino sono i diagrammi circuitali nell'elettronica, dove è molto difficile esprimere idee nel testo, ma è molto facile esprimerle nei diagrammi di cablaggio.

Questo è un nuovo e nuovo problema per me: come esprimere in modo efficiente questi mini-linguaggi e condividerli con i colleghi?

(vale a dire come programmare la lavagna al loro interno. La programmazione reale è facile - hai a disposizione componenti fisici)

Ci sono strumenti per questo? O buone / buone pratiche (ad esempio equivalenti a "usa sempre BNF come punto di partenza per la tua nuova DSL, e usa strumenti come yacc per generare parser, compilatori, ecc."). Il mio googlefu si sta rivelando debole - tutto quello che ottengo è falsi positivi per gli schemi di cablaggio e gli editor UML (poiché questi sono linguaggi personalizzati, UML non sembra aiutare)

    
posta Adam 28.05.2014 - 20:55
fonte

3 risposte

1

Ci sono strumenti disponibili che ti permetteranno di rappresentare graficamente la tua DSL e poi usare la rappresentazione grafica per "programmare" la DSL. Questi sono chiamati "DSL Workbenches"

In questo momento l'unico ambiente di lavoro DSL che posso pensare che sia specificamente rivolto ai DSL grafici è Strumenti DSL di Microsoft . Potrebbero esserci altri là fuori, ma questo è l'unico che ha colpito il mio radar.

    
risposta data 28.05.2014 - 23:00
fonte
1

Non sono a conoscenza di strumenti sufficientemente generici per i tuoi scopi, ma forse posso aiutarti con il tuo Google-Fu ...

Se non hai familiarità con il concetto dei linguaggi di programmazione di Dataflow, l' articolo di Wikipedia è un ottimo punto di partenza - dovrebbe almeno contribuire a rendere le tue ricerche su Google un po 'più mirate a contenuti più appropriati.

Ti suggerisco inoltre di consultare alcuni dei linguaggi di programmazione grafica qui descritti, in particolare LabView / G . Il mio pensiero qui è che i linguaggi simbolici usati in questi strumenti possono essere facilmente imitati in strumenti come Visio. Sono una persona che usa molto le immagini e i diagrammi per comunicare con i miei colleghi tecnici e nel corso del tempo sono arrivato ad adottare una specie di abbreviazione visiva che assomiglia molto al linguaggio di programmazione di LabView, specialmente quando sto cercando di comunicare qualcosa nel regno del parallelismo o multi-threading. Ho un set di forme di template VISIO che uso per questo scopo ... è stato un po 'spendido in termini di curva di apprendimento per la creazione di forme VISIO, ma penso che ne valesse la pena.

    
risposta data 28.05.2014 - 23:47
fonte
-2

Non sono sicuro, se è ciò che stai cercando, ma, aU modo visivo per esprimere un linguaggio di programmazione sono "Diagrammi di sintassi", noti anche come "Diagrammi di RailRoad"

link

Good Luck

    
risposta data 28.05.2014 - 23:09
fonte

Leggi altre domande sui tag