COMPORT – Compilador Portugol - Nilo Menezes
COMPORT – Compilador Portugol - Nilo Menezes
COMPORT – Compilador Portugol - Nilo Menezes
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ComPort <strong>–</strong> <strong>Compilador</strong> <strong>Portugol</strong><br />
compiladores podemos definir outros alfabetos para fins específicos. Por exemplo:<br />
Σ={a,b} indica um alfabeto chamado Σ, com dois elementos (a e b). Utilizaremos o<br />
símbolo Σ* para denotar todas as palavras que podem ser formadas por um alfabeto<br />
Σ.<br />
Entende-se por palavra uma seqüência ou cadeia de símbolos de um<br />
alfabeto. A palavra vazia será representada por ε e utilizaremos Σ+ para denotar<br />
todas as palavras de um alfabeto Σ, com exceção da palavra vazia. Logo, podemos<br />
concluir que Σ+ = Σ* - { ε }. É bom lembrar que Σ = { } é um alfabeto válido, mesmo<br />
sem possuir símbolos.<br />
Exemplo:<br />
Utilizando a nossa definição anterior de Σ={a,b}, teríamos Σ*={ε, a, b,<br />
aa, bb, aaa, bbb, ...} e Σ+={a, b, aa, bb, aaa, bbb, ...}.<br />
O comprimento de uma palavra é igual ao número de símbolos que ela<br />
possui. Exemplo:<br />
| a | = 1 lê-se o comprimento de “a” é 1.<br />
| aaa | = 3 lê-se o comprimento de “aaa” é 3.<br />
1.1.3. Gramática<br />
Em MENEZES (2001), obtemos a definição formal de gramática:<br />
“Uma gramática é uma quádrupla ordenada G = (V, T, P, S) onde:<br />
V conjunto de símbolos variáveis ou não terminais;<br />
T conjunto de símbolos terminais, disjunto de V;<br />
P conjunto finitos de pares, denominados regras de produção;<br />
S elemento de V denominado variável inicial.”<br />
Na notação acima, a linguagem anterior poderia ser representada por:<br />
G = ( { A, B, S}, { a, b, c, d }, P, S )<br />
Onde P = { S � AB, A � a | b, B � c | d }<br />
Desta forma podemos dizer que L é a linguagem gerada por G, ou seja,<br />
L(G) ou simplesmente GERA(G).<br />
Dizemos que duas gramáticas são equivalentes se e somente se as<br />
linguagens por ela geradas forem iguais, ou seja, supondo G1 e G2 gramáticas, G1<br />
e G2 são equivalentes se e somente se GERA(G1)=GERA(G2).<br />
20