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
Hierarquia de Chomsky
Compiladores
Compiladores X Interpretadores
Fases de um Compilador
Fases de um Compilador
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)
Teoria da Computação
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.
Teoria da Computação
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.
Exemplos de Problemas NP-Completo 3SAT Caixeiro Viajante Longest Path 3D Matching Mochila Conjunto Independente Zero-One Equações Rudrata Path Maximum Cut (grafo)
???
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
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)
Enade 2011 Questão 9 – MD Questão 11 – TC Questão 12 – LFA Questão 26 – Combinatória Questão 36 – TC Questão 37 – PLP Questão 38 – LFA
Enade 2008 – Questão 22
Enade 2008
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
Enade 2008