(→Exercises) |
(→What is a Grammar?) |
||
Line 2: | Line 2: | ||
= What is a Grammar? = | = What is a Grammar? = | ||
+ | |||
+ | Uma gramática é um quádruplo <amsmath>G=(V,\Sigma,R,S)</amsmath>, onde <amsmath>V</amsmath> é um alfabeto; <amsmath>\Sigma</amsmath> é o conjunto de símbolos terminais (<amsmath>\Sigma\subseteq{}V</amsmath>); <amsmath>(V-\Sigma)</amsmath> é o conjunto de símbolos não terminais; <amsmath>S</amsmath> é o símbolo inicial; e <amsmath>R</amsmath> é o conjunto de regras (um subconjunto finito de <amsmath>(V^*(V-\Sigma)V^*)\times{}V^*</amsmath>). As noções de derivação directa), de derivação, e de linguagem gerada são definidas como se segue: | ||
+ | |||
+ | * <amsmath>u\underset{\text{\tiny G}}{\Rightarrow}v\;\text{sse}\;\exists_{w_1,w_2\in{}V^*}: \exists_{(u',v')\in{}R}: u=w_1u'w_2 \wedge v=w_1v'w_2</amsmath> | ||
+ | * <amsmath>w_0\underset{\text{\tiny G}}{\Rightarrow}w_1\underset{\text{\tiny G}}{\Rightarrow}\cdots\underset{\text{\tiny G}}{\Rightarrow}w_n\;\Leftrightarrow{}w_0\overset{*}{\underset{\text{\tiny G}}{\Rightarrow}}w_n</amsmath> | ||
+ | * <amsmath>L(G) = \{ w\: |\: w \in \Sigma^* \wedge{}S\overset{*}{\underset{\text{\tiny G}}{\Rightarrow}}w \}</amsmath> | ||
= The FIRST and FOLLOW sets = | = The FIRST and FOLLOW sets = |
Uma gramática é um quádruplo , onde é um alfabeto; é o conjunto de símbolos terminais (); é o conjunto de símbolos não terminais; é o símbolo inicial; e é o conjunto de regras (um subconjunto finito de ). As noções de derivação directa), de derivação, e de linguagem gerada são definidas como se segue:
The FIRST set for a given string or symbol can be computed as follows:
As an example, consider production X -> Y1...Yn
The FIRST set can also be computed for a string Y1...Yn much in the same way as in case 3 above.
The FOLLOW set is computed for non-terminals and indicates the set of terminal symbols that are possible after a given non-terminal. The special symbol $ is used to represent the end of phrase (end of input).
The algorithm should be repeated until the FOLLOW set remains unchanged.