Grammatica per esempio

0

Esiste un approccio automatico per generare una grammatica (che potrebbe essere utilizzata successivamente in uno strumento di compilazione come ANTLR o simile) da alcuni esempi di linguaggio?

Con più dettagli: assunto un linguaggio tecnico come Java, C o (nel mio caso) MQSC, e alcuni file sorgente di quel linguaggio, c'è un'automazione per ricavare i token dalle fonti esistenti e in una seconda fase identificare le variabili ecc. e in seguito sul grammer in qualche modo? L'obiettivo sarebbe una descrizione grammaticale per tale lingua, ad esempio per ANTLR.

O è l'unico modo per farlo da solo?

Penso che questa sia una domanda generale su tutte le lingue (di programmazione); tuttavia, il mio caso personale riguarda la lettura e l'analisi di una configurazione MQ molto ampia e complessa da MQSC di IBM.

    
posta Walter Kuhn 06.02.2018 - 16:36
fonte

1 risposta

3

No, non c'è davvero un modo per farlo.

Voglio dire, tecnicamente, puoi prendere qualsiasi grammatica e combinarla con un'altra e finire con qualcosa di simile

S ::= example1 S ::= example2

Con abbastanza esempi, puoi forse identificare sequenze comuni, ma non significano nulla. Tutti questi identificatori di sequenze comuni? Parole? Stringhe magiche che le persone usano comunemente?

Gli algoritmi non lo sapranno.

E poiché queste grammatiche sono probabilmente generative all'infinito, nessun numero di esempi può definire completamente la grammatica. L'algoritmo dovrebbe fare assunzioni corrette, o solo conoscere un sottoinsieme della lingua.

    
risposta data 07.02.2018 - 03:39
fonte

Leggi altre domande sui tag