Il existe de nombreuses définitions en ligne sur ce qu'est une grammaire sans contexte, mais rien de ce que je trouve ne satisfait mon problème principal:
De quel contexte est-il libre?
Pour enquêter, j'ai recherché «grammaire contextuelle» sur Google, mais je n'ai toujours pas trouvé de quoi il s'agissait.
Quelqu'un peut-il expliquer à quoi ce context
terme fait référence dans ces noms?
terminology
context-free
formal-grammars
CodyBugstein
la source
la source
override
peut s'agir d'un nom de variable ou d'un mot clé, selon l'endroit où il est utilisé (c'est-à-dire son contexte). S'il est utilisé après une déclaration de méthode, c'est un mot-clé. Sinon, ce n'est pas le cas. Ceci est un exemple de grammaire contextuelle.Réponses:
Vous avez raison, il y a toujours un contexte dans un certain sens. Je ne pense pas que vous puissiez comprendre ce que signifie "contexte" dans "sans contexte" sans comprendre une production.
Une production est une règle de substitution. Il dit que, pour générer des chaînes dans le langage, vous pouvez substituer ce qui est à gauche à ce qui est à droite:
Cela signifie que la séquence abstraite A peut être remplacée par le caractère "x" suivi du caractère "y". Vous pouvez également avoir des productions plus complexes:
Cela signifie que le caractère "z" suivi de la séquence abstraite A peut être remplacé par les caractères "x" et "y".
Une production hors contexte signifie simplement qu'il n'y a qu'une seule chose sur le côté gauche. Le premier exemple est sans contexte, car A peut être remplacé par "x" et "y", peu importe ce qui vient avant ou après. Cependant, dans le deuxième exemple, le caractère "z" doit apparaître avant le A, puis la combinaison peut être remplacée par "x" et "y", donc il y a un certain contexte impliqué.
Une grammaire sans contexte n'est alors qu'une grammaire avec uniquement des productions sans contexte.
Le deuxième exemple est en fait un exemple de production sans restriction. Il existe une autre catégorie qui se situe entre sans contexte et sans restriction, appelée «sensible au contexte». Un exemple de production contextuelle est:
La différence étant que ce qui précède A (et après) sur le côté gauche doit être conservé sur la droite. Cela signifie effectivement que seul A est substitué, mais ne peut être substitué que dans le contexte approprié.
la source
zA -> zxy
: A est toujours remplacé par xy, mais seulement après z.Considérons la règle et disons que vous avez une forme sententielle alors A se réduisant à β ne dépend pas de ce que sont α et δ. De cette façon, il est sans contexte car il ne dépend pas du contexte environnant.
la source