Grammaire hors contexte

Bonjour,
les attributs en h sont les attributs hérités, en s les attributs synthétisés et unilex pour les terminaux
cette définition dirigée par la syntaxe est-elle correcte?
A → a R
actions sémantiques:
R.h = a.unilex
A.s = R.h || R.s (concaténation des chaînes R.h et R.s)

A → B
action sémantiques:
A.s = B.s

R → sep A
action sémantique:
R.s = A.s

R → epsilon
action sémantique:
R.s = chaîne de caractères vide

je n’indique pas ici la définition de B

qu’en pensez-vous?

Mais keski dit. Sinon en regle generale on fait pas les devoirs…

Et dans le contexte ça ressemble à quoi?

1 « J'aime »

…Je crois que je vais installer Linux…

10 « J'aime »

A vue d’œil c’est le carburateur. Mais mon garagiste n’est pas d’accord, il dit que comme le problème est de la forme X = A ⋅ X ∪ B on devrait pouvoir invoquer le lemme d’Arden.

3 « J'aime »

Il y a une erreur dans la seconde partie :

Il ne faut pas de ‹ s › à « sémantique ».

7 « J'aime »

C’était qui encore qui nous avait sorti une énigme impossible à résoudre et n’avait toujours pas répondu à toutes nos questions (et menaces de mort) près de 5 ans après? :smile:

5 « J'aime »

C’était @Ukuar :laughing:

Merci pour vos réponses

@Rabban
A.s est l’attribut synthétisé du non terminal A, ainsi que B.s pour le non terrminal B
le « h » est pour les attributs hérités des non terminaux
@Histrion
ce ne sont pas des expressions régulière pour des automates fini mais des productions pour une syntaxe.

pour tout le monde:
en fait, A est une suite de déclaration suivit d’une séquence d’instructions, le tout non annulable.

en ce qui concerne R, on peut le laisser tel quel
a est une déclaration et B est la séquence d’instructions
ce que je voudrais (et ce n’est pas un devoir) c’est une éventuelle suite de déclarations, suivit d’une séquence d’instruction, le tout séparés par des points virgules, sauf la dernière instruction, ou la dernière déclaration si il n’y a pas d’instructions.

la définition de B est la suivante (b est une instruction)

B -> b B’
règles sémantiques:
B’.h = b.unilex
B.s = B’.s

B’ -> sep b B’1
règles sémantiques:
B’1.h = B’.h || b.unilex
B’.s = B’1.s

B’ -> epsilon
règles sémantiques:
B’.s = B’.h

« sep » est le point-virgule
le « || » est l’opération de concaténation de chaines de caractères

en ce qui concerne B, j’ai fait comme dans le purple dragon book (c’est une liste associative à gauche)

ma première définition dirigée par la syntaxe porte-t-elle une erreur?

Bon je vais un peu étayer ma réaction et par la même occasion celle de mes petits camarades. Personne n’a strictement rien compris à ce que tu demandais.

2 « J'aime »

On dirait un exercice de langage formel, voire de compilation et d’analyse syntaxique ( le Purple Dragon Book c’est ça, et une grammaire non contextuelle ça). Y a 15 ans j’aurais peut-être été capable d’y comprendre qqch, là … kamoulox :slight_smile:

@Ylrahc oui tout à fait, c’est un projet de compilateur

quelqu’un connait-il un forum où je pourrais me faire comprendre?

Je dirais bis repetita : Traduction dirigée par la syntaxe

Venir tous les trois ans pour poser 1 question incompréhensible pour finir à chaque fois par dire sur quel forum faut aller poser la question… Well…

3 « J'aime »

Pour clarifier un peu comme @darkomen, j’ai bien compris que c’est de la théorie de la compilation. Les cours m’ont assez traumatisé comme ça en école d’ingénieur :slight_smile:

Mais on n’arrive pas chez quelqu’un qu’on n’a pas vu depuis 3 ans, sans s’essuyer les pieds, en posant son cul sur une chaise, avant de déclamer haut et fort « alors en fait mon problème c’est que j’ai changé la courroie d’alternateur et là le voyant d’huile clignote ».

Sauf si on s’appelle Paul Erdős. Lui il avait le droit…

4 « J'aime »