Votre question

anlyseur syntaxique: demande d'aide pour expliquer la grammaire.

Tags :
  • Syntaxe
  • Programmation
Dernière réponse : dans Programmation
8 Janvier 2005 00:25:08

bonjour,
j'ai un petit probleme sur l'ennoncé d'un exo. Je dois programmer un analyseur syntaxique, pour cela on me fournit une grammaire. Le problème c'est que je ne la comprends pas... je vous la donne:

expression -> somme;
somme -> produit | produit+ somme
produit -> terme | terme * produit
terme -> chiffre | ( somme)
chiffre -> 0|1|2|3|4|5|6|7|8|9

En fait voila ce que je comprends : on entre une expression, elle est bonne si elle est égal à une somme suivit d'un ;
cette somme est bonne si elle est un produit ou un produit plus une somme
ce produit est bon si il est un terme ou un terme* un produit...je pense que ce n'est pas exactement ça...

Si quelqu'un pouvait m'expliquer ce que cette grammaire veut dire.

Autres pages sur : anlyseur syntaxique demande aide expliquer grammaire

8 Janvier 2005 03:02:53

si exactement cela... en fait la grammaire te donne les expressions que tu peux construire :
ex : (0+3)*6 est une expression valide de cette grammaire car tu peux la construire a partir des règles que tu as donné.
Par contre (0+)) -3 ne l'est pas car il n'existe aucune manière d'obtenir cette expression a partir des règles... ainsi l'analyseur syntaxique doit permettre de savoir si il existe un arbre de dérivation pour toutes les expressions (c'est a dire s'il existe un cheminement logique pour construire l'expression a partir des règles de la grammaire)...


PS: de plus, il me semble qu'on peut construire un analyseur soit en récursif, soit en itératif (beaucoup mieux) surtout qu'ici la grammaire vérifie ceraines proriétés (je crois qu'elle est SLR(1) )
18 Mars 2005 17:21:59

J'ai une nouvelle question:
si je mets expression -> somme; ça veut dire que mon expression est juste si elle est égal à une somme suivit d'un point virgule.

Si je mets truc->a|b ça veut dire que truc est juste si il est égal à a ou à b.

Maintenant si je veux:

truc est vrai s'il est égal à
a et ou à b.
(donc on peut avoir soit a tout seul, soit b tout seuk soit a et b ensemble).

Je crois que la syntaxe pour écrire une telle grammaire est:

truc -> {a} {b}
Si quelqu'un à la réponse merci d'avance.
a b L Programmation
18 Mars 2005 19:11:31

ça fait un petit moment que j'en ai plus fait mais, truc->a c'est pour dire que la variable 'truc' est composée de la variable 'a' alors que truc->{a} signifie que la variable truc contient le caractère "a". non ?
Je ne suis pas très sûr de ça.
18 Mars 2005 23:50:13

Je comprends pas trop le problème:
tutu -> a|b|ab
:p 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS