2013-04-13 1 views
1

Dans mon projet actuel, mon patron a assigné un travail d'expression d'une grammaire (écrite en ANTLR) de domaine spécifique au langage formel/notations. Par exemple, ce qui suit est un petit extrait de code de la grammaire. A ma connaissance, la grammaire ANTLR de n'importe quelle langue est elle-même une spécification formelle. Je n'ai aucune idée - Comment puis-je spécifier cette grammaire est de manière formelle. Pourriez-vous s'il vous plaît me donner des indications pour écrire la grammaire ci-dessus en notation formelle/notation mathématique?convertir grammaire (écrite en ANTLR) d'une langue en langage formel/notations mathématiques

Répondre

4

Oui, une grammaire ANTLR est un système formel. Sur cette base, vous pouvez simplement déclarer la victoire avec un visage impassible.

Il veut probablement autre chose que la syntaxe ANTLR. Et, à juste titre, les annotations dans la grammaire ANTLR pour la construction d'arbres, etc., ne font qu'embrouiller le problème, tout comme les différents lookaheads. Donc, à votre place, je supprimerais toutes les annotations, et remanierais probablement la grammaire en IEEE EBNF (Voir http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form). Et vous pouvez le diriger vers cette page web, et déclarer que vous avez une "pure grammaire sans contexte".

+0

Merci beaucoup à Ira Baxter pour votre pointeur. Pourriez-vous s'il vous plaît me fournir les pointeurs sur - comment pourrais-je spécifier la grammaire ci-dessus dans les notions mathématiques? – Pankesh

+2

Pourquoi pensez-vous que ce ne sont pas des notions mathématiques? –

+0

Je crois que la grammaire mentionnée ci-dessus est intégrée avec des mots-clés (tels que «ressources», «action», «générer»). Ils ne sont pas assez généraux et peuvent être utilisés pour concevoir d'autres langages spécifiques au domaine. Veuillez me corriger si je me trompe. – Pankesh