Concernant les DCFL, je ne vois pas de meilleure notation que la fonction de transition de l'automate déterministe pushdown, c'est-à-dire écrire explicitement des règles de forme avec q ,q, z, a → q′, γ états q ′ dans Q , z un symbole de pile, γ une séquence de symboles de pile, et aq, q′Qzγuneun symbole d'entrée ou la chaîne vide. La notation elle-même n'applique pas le déterminisme, mais elle est facilement vérifiée. En utilisant une notation de grammaire sans contexte (comme BNF), vous allez rencontrer des problèmes car les DCFL sont une sous-classe appropriée de CFL, et comme indiqué par DaniCL, vous ne pouvez pas décider en général, étant donné un CFG, si son langage est déterministe.
En ce qui concerne les VPL, un style entre parenthèses / pour les CFG serait suffisant, avec des règles de forme oùA → a α b est un non terminal, a un symbole d'appel, b un symbole de retour et α uneséquence deUNEunebα expression régulière sur un mélange symboles internes et non terminaux. Étant donné que tout VPL est également un (D) CFL, vous pouvez également réutiliser la notation ci-dessus pour les automates de refoulement et vérifier que les opérations de pile correspondent aux appels et aux retours, ou noter la relation de transition d'un automate de mots imbriqué (qui serait moins redondant) .
Edit: à bien y penser, une notation pour les schémas XML, comme la syntaxe compacte de RelaxNG --- qui est une notation ASCII ---, pourrait facilement être utilisée pour les VPL. Vous auriez juste besoin de faire respecter certaines conventions de nommage pour les balises, par exemple une balise d'ouverture « <ab> » pour un symbole appel d' correspondant une balise de fermeture « </ ab> » pour un symbole de retour b .uneb