15

Click here to load reader

Aula1.0.pptx

Embed Size (px)

Citation preview

Page 1: Aula1.0.pptx

Gramáticas, Autômatos eCompiladores

Aula 1Paulo Eduardo e Silva Barbosa

Adaptado de:Isabel Dillmann Nunes

Page 2: Aula1.0.pptx

} Formato da disciplina} Introdução} Linguagens e Gramáticas◦ Alfabeto◦ Palavra◦ Linguagem◦ Gramática

} Exemplos

Roteiro

Page 3: Aula1.0.pptx

} Paulo Eduardo e Silva Barbosa◦ [email protected]

} Página da disciplina◦ https://sites.google.com/site/pesbarbosa/

} Bibliografia básica} AHO, Alfred V.; LAM, Mônica S.; SETHI, Ravi;

ULLMAN, Jeffrey D. Compiladores: Princípios, Técnicas e Ferramentas. Pearson Addison Wesley, 2007.

Formato da disciplina

Page 4: Aula1.0.pptx

SIPSER,Michael. Introdução à Teoria da Computação. 2ª ed. São Paulo: Thomson Pioneira, 2007. MENEZES, Paulo Blauth. Linguagens Formais e Autômatos. Ed. Bookman Companhia, 1a edicao, 2008.

PRICE, Ana Maria de Alencar; TOSCANI, Simão Sirineo Implementação de Linguagens de Programação: Compiladores. 3a ed. Bookman, 2008

LOUDEN, Keneth C. Compiladores: Princípios e Práticas. São Paulo: Thomson Learning, 2004.

Bibliografia

Page 5: Aula1.0.pptx

} Avaliações◦ 1º Estágio� Prova (5)� Lista de exercícios (2)� Projeto de Compiladores (analisador léxico e sintático) (3)◦ 2º Estágio� Prova� Projeto de Compiladores (analisador léxico e sintático)◦ 3º Estágio� Integrador� Projeto de Compiladores (analisador léxico e sintático)

Formato da disciplina

Page 6: Aula1.0.pptx

} Teoria das Linguagens Formais◦ 1950◦ Desenvolvida para Linguagens Naturais◦ Aplicadas para Linguagens da Computação

} Sintaxe◦ Verificação gramatical de programas

} Semântica◦ Interpretação para a linguagem (significado ou valor para

um determinado programa)

Introdução

Page 7: Aula1.0.pptx

} Como definir uma linguagem em Computação? } Alfabeto (Σ)◦ Conjunto finito de símbolos ou caracteres.◦ Exemplos: � {a, b, c}� ø

Linguagens e Gramáticas

Page 8: Aula1.0.pptx

} Palavra, cadeia de caracteres ou sentenças sobre um alfabeto. É uma sequência finita de símbolos (do alfabeto) justapostos.

} Exemplos:◦ Considere o alfabeto {a, b, c}◦ Palavras:� ab� cab� aabcabb

Palavra

Page 9: Aula1.0.pptx

} Σ*◦ Denota o conjunto de todas as palavras possíveis sobre

Σ

} Σ+

◦ Denota Σ* - {ε} ◦ ε� Palavra vazia, sem símbolos

Palavra

Page 10: Aula1.0.pptx

} Uma linguagem formal L sobre um alfabeto Σ é um conjunto de palavras sobre Σ* :◦ L ⊆ Σ*

} Exemplo:◦ Σ = {a, b}◦ Linguagem: conjunto de palíndromos sobre Σ◦ Palavras desta linguagem (infinito):� a, bb, aba, abba, bbbb, ...

Linguagem Formal

Page 11: Aula1.0.pptx

É formalmente definida pelo conjunto de todos os

programas (palavras) da linguagem.

Linguagem de Programação

Page 12: Aula1.0.pptx

} Conjunto finito de regras nas quais, quando aplicadas sucessivamente, geram palavras;

} O conjunto de todas as palavras geradas por uma

gramática define a linguagem.

Gramática

Page 13: Aula1.0.pptx

} Gramática de Chomsky, Gramática Irrestrita ou simplesmente Gramática

◦ G = (V, T, P, S)

◦ V = conjunto finito de símbolos variáveis ou não-terminais;◦ T = conjunto finito de símbolos terminais disjunto de V;◦ Regra de Produção = P: (V ∪ T)+ (V ∪ T)*◦ S = elemento de V chamado de símbolo inicial

Gramática

Page 14: Aula1.0.pptx

} Gramática Regular (Linguagens Regulares) } G = ({S, A, B}, {0, 1}, P, S) } P = { S → 0B, S → 1A, A → 0, A → 0S, B → 1, B → 1S }

Exemplos de Gramática

Page 15: Aula1.0.pptx

} G = ({S, R}, {0, 1}, P, S) } P = { S → 0S, S → 1R, R → 1R, R → ε }

Exemplos de Gramática