Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] otags problem
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Diego olivier FERNANDEZ PONS <Diego-Olivier.FERNANDEZ-PONS@c...>
Subject: Re: [Caml-list] LL, LR, and camlp4 (was Re: syntax change)
Les grammaires dans les livres (que ce soit Le Dragon, Appel ou Autebert)
ont la beauté fonctionnelle des systèmes de réecriture :

E -> E + T
E -> E - T
E -> T
T -> T * F
T -> T / F
T -> F
F -> id
F -> num
F -> (E)

Quand on en vient à écrire un parseur, les choses se compliquent : on a le
choix entre utiliser Yacc qui certes accepte les grammaires LALR,
nonobstant s'intègre assez mal aux applications, outre sa syntaxe peu
commode ou sinon écrire son propre parseur à la main, bien intégré mais
limitant les grammaires à la classe LL.

Faut-il sacrifier l'expressivité des grammaires LR à la facilité des
grammaires LL ?

La question est erronée... Le CamlP4 montre que l'on a besoin d'un outil
commode pour manipuler des grammaires et que Yacc ne répond plus aux
nécessités en termes d'intégration et d'extensibilité. Par ailleurs, la
grammaire de Caml est LR et le CamlP4 ne permet de la parser qu'avec
beaucoup d'efforts (selon les remarques de Rauglaudre).

En somme, serait nécessaire un outil qui à l'image de l'analyseur lexical
générique dont dispose déjà Caml, serait un analyseur syntaxique générique
et s'occuperait de déterminer la classe de la grammaire (LL, LR, LALR,
SLR, algébrique quelconque) et de générer les outils nécessaires en
fonction (analyseur descendant, automate à pile, tables ...)


	Diego Olivier

Comme les paroles sont toujours plus belles accompagnées d'actions
tangibles, j'y travaille. Comme je suis un médiocre programmeur, je ne
garantis aucun résultat.
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr