teaste
19:34
Livros de Referência:
Implementação e linguagem de programação: Compiladores
Ana Maria de Alencar Price, Simão Sirineo Tossani
Sagna Luzzato
-
Compilador é um programa tradutor, exemplo: tradutor, seria um compilador de linguagem natural.
•
j;
Página 1 de Compiladores
Aula 2 terça-feira, 13 de agosto de 2013
20:03
Alfabeto (∑): Conjunto finito de simbolos
Palavra: Sequência finita de símbolos de um alfabeto
Obs.: o contexto de linguagem, uma sentença pode ser constituída de uma palavra ou sequência de palavras.
Usaremos apenas o termo sentença.
Gramática: É um mecanismo gerador de sentenças. Define-se por uma quádrupla
G= ( N, T, P, S)
Onde:
N: Conjunto de símbolos não terminais
T: Conjunto de símbolos terminais
P: Regras de produção***
S: Símbolo inicial da gramática
Obs.: S pertence a N (isto é, S é um não terminal)
***As Regras de produção constituem-se de um conjunto de regras da forma α→β Onde se entende que a partir de α é possível derivar β.
Derivação:
Se α→β, então α⇒β (α deriva β)
Se α →θ θ₁→θ₂ θ₂→θ₃ θ₃→θ₄ .
.
.
.
.
.
θn-₁→θn
Θn→β, então α⇒β
(Da álgebra) derivações sucessivas
⇒
(ou seja, uma ou mais derivações sucessivas)
⇒
(ou seja, zero ou mais derivações sucessivas)
Obs.:
1- zero derivações??? α β
Página 2 de Compiladores
Significa que α pode ser o próprio β
2 - Notação importante:
+ : 1 ou mais
* : 0 ou mais
Linguagem: L(G)
Linguagem gerada pela gramática G
L (G) = {s | T* e S
Obs.: Linguagem é um conjunto de palavras geradas por uma gramática
Convenções
1 - Terminais:
•
•
•
•
Letras minúsculas
Operadores (+, -, *, /, etc)
Símbolos de pontuação
Delimitadores (, ), [, ], {, }
Dígitos
Cadeias de símbolos (palavras), são também terminais.
2) Não-Terminais:
• Letras Maiúsculas
• Cadeias de símbolos delimitadas por , ex.:
Gramática Regular: Gramática cujas produções são todas da forma A →w,