Généralisations de la méthode de Brzozowski de dérivation des expressions régulières aux grammaires?


18

La méthode de dérivation de Brzozowski est une très jolie technique pour construire des automates déterministes à partir d'expressions régulières d'une manière bien algébrique. J'ai élaboré de jolies généralisations de cette technique pour gérer des classes de grammaires plus importantes, mais les algorithmes sont assez simples pour qu'il semble tout à fait possible qu'ils aient été découverts auparavant. Mais les références googlées aux descendants de cette technique ne semblent pas beaucoup apparaître. Quelqu'un sait quelque chose?


2
Je suis assez curieux de savoir à quelles classes de grammaires vous pensez. À propos des descendants, la technique d'Antimirov, qui produit plutôt des automates non déterministes, est très agréable: dérivées partielles d'expressions régulières et de constructions d'automates finies , TCS 155 (2), 1996, ( dx.doi.org/10.1016/0304-3975(95 ) 00182-4 ).
Sylvain

voulez-vous dire des généralisations à des langages plus complexes, comme le standard <sans contexte <sensible au contexte <...?
s8soj3o289

J'ai examiné les sous-systèmes de CFG à peu près dans le voisinage des VPL, principalement.
Neel Krishnaswami

... mais l'ensemble des dérivés n'est alors pas fini. Et en effet, si vous voulez quelque chose de déterministe comme avec la méthode de Brzozowski, vous êtes probablement limité aux DCFL (donc j'imagine que cela peut avoir du sens pour les VPL).
Sylvain

Réponses:



12

Vous pourriez être intéressé par cet article:

Yacc est mort de Matthew Might et David Darais, 2010

Nous présentons deux nouvelles approches pour analyser les langages sans contexte. La première approche est basée sur une extension du dérivé de Brzozowski des expressions régulières aux grammaires hors contexte. La seconde approche est basée sur une généralisation du combinateur dérivé-analyseur. Le bénéfice de ces techniques est une petite bibliothèque d'analyse (moins de 250 lignes de code), facile à implémenter, capable d'analyser des grammaires arbitraires sans contexte dans des forêts d'analyse paresseuse. Des implémentations pour Scala et Haskell sont fournies. Des expériences préliminaires avec S-Expressions ont analysé des millions de jetons par seconde, ce qui suggère que cette technique est suffisamment efficace pour être utilisée dans la pratique.

Également d'intérêt potentiel:


Titre de papier très drôle! :-)
Dai Le

7

Au milieu des années 80, alors que je travaillais sur des analyseurs ascendants récursifs et la factorisation des grammaires, j'ai commencé par définir des dérivées partielles des grammaires.

Beaucoup de belle théorie là-bas.

Avez-vous des questions spécifiques?


En ce moment, je ne fais que pêcher pour le travail connexe. Comme je pensais principalement aux analyseurs de descente récursifs, je trouverais des applications à l'analyse de style LR comme vous le suggérez particulièrement intrigantes. Pouvez-vous m'indiquer l'un de vos papiers?
Neel Krishnaswami
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.