aulão de linguagens formais e compiladores professor diógenes furlan

28
Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Upload: internet

Post on 21-Apr-2015

115 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Aulão de Linguagens Formais e CompiladoresProfessor Diógenes Furlan

Page 2: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Linguagens Formais e Autômatos - Mecanismos Definidores: expressões

Expressões regulares, cálculo proposicional, cálculo de predicados, ...

Reconhecedores: autômatos

Autômatos Finitos (NFA e DFA), Autômatos de Pilha, Máquinas de Turing

Geradores: gramáticas

Gramáticas Regulares, Livre de Contexto, Sensível de Contexto, Irrestritas

Page 3: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Hierarquia de Chomsky

Page 4: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Compiladores

Page 5: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Compiladores X Interpretadores

Page 6: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Fases de um Compilador

Page 7: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Fases de um Compilador

Page 8: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan
Page 9: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Tipos de Analisadores Sintáticos

LL(1)

O primeiro símbolo lido é o (L)eftmost symbol

A análise é descendente (top-down)

Produz derivações mais a esquerda (L)eft

O compilador toma suas decisões lendo um (1) símbolo a frente na entrada

LR(1) ou canônico

A analise é ascendente (bottom-up)

Produz derivação mais a direita (R)ight

SLR (simple) tem tabela sintática mais simples: SLR(0) e SLR(1)

LALR analisa símbolos a frente também

SLR < LALR < LR(1)

Page 10: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Teoria da Computação

Page 11: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Tipos de Problemas

Problemas de Busca: precisam achar uma instancia num conjunto.

Problemas de Decisão: precisam responder sim ou não.

Problemas de Otimização: precisam transformar um problema em outro.

Page 12: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Teoria da Computação

Page 13: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Definições NP: é a classe de TODOS os problemas de busca.

P: é a classe de TODOS os problemas de busca que são resolvidos em tempo polinomial.

Existe algoritmo que responde em tempo polinomial, para uma instancia

Sua resposta

Diz que não existe resposta

NP-completo: existem problemas onde não se conhece algoritmos eficientes para resolvê-los;

esses problemas são conhecidos como NP-completos;

porém, não foi provado que esses algoritmos não existem.

NP-dificil (NP-hard): Um problema H é NP-difícil se e somente se existe um problema NP-completo L que é Turing-redutível em tempo polinomial para H.

Page 14: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Exemplos de Problemas NP-Completo

3SAT

Caixeiro Viajante

Longest Path

3D Matching

Mochila

Conjunto Independente

Zero-One Equações

Rudrata Path

Maximum Cut (grafo)

Page 15: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

???

Page 16: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Conceito de Redução Se problema A tem solução => problema B também tem solução.

Porém, se for mostrado que

problema B não tem solução => problema A também não tem solução

A B

Page 17: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Enade 2008

Questão 13 – MD

Questão 22 – Compiladores

Questão 26 – CG

Questão 29 – LFA

Questão 33 – Compiladores

Questão 39 – Gramática (Discursiva)

Page 18: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Enade 2011

Questão 9 – MD

Questão 11 – TC

Questão 12 – LFA

Questão 23 – LFA

Questão 26 – Combinatória

Questão 36 – TC

Questão 37 – PLP

Questão 38 – LFA

Page 19: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Enade 2008 – Questão 22

Page 20: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Enade 2008

Page 21: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Resolução

Alternativa E: FALSA – não aparece na gramática

Alternativa C: FALSA – Só é possível gerar palavras com 1 ‘b’

Alternativa B: FALSA – Gramática é Sensível ao Contexto

Alternativa A: FALSA – Não é possível gerar duas derivações diferentes para uma mesma palavra

Alternativa D: VERDADEIRA

Expressão Regular: a*b

Gramática Regular: S aS | ab

Page 22: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan
Page 23: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan
Page 24: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan
Page 25: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan

Enade 2008

Page 26: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan
Page 27: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan
Page 28: Aulão de Linguagens Formais e Compiladores Professor Diógenes Furlan