Aulão de Linguagens Formais e Compiladores

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

FAPE - Curso de Ciência da Computação
Software Básico Silvio Fernandes
Profa. Sandra de Amo Mestrado em Ciência da Computação 2013 – 2
5.5 – Análise Bottom-Up Tentativa de construir uma árvore sintática para a sentença analisada, começando das folhas, indo em direção à raiz (pós-ordem.
III – Análise sintáctica
III – Análise sintáctica
III – Análise sintáctica
I - Noções dum compilador
Linguagem de Montagem Visão geral.
TEORIA DA COMPUTAÇÃO Parte II  Linguagens Livres de Contexto
Teoria da Computação FIC– Ciência da Computação
Seminários de Compiladores
Deyvisson, Rafael M.P., Renato, Robson C.F., Rodolfo
Análise Sintática Ascendente ­
Teoria da Computação Profa. Sandra de Amo Mestrado em Ciência da Computação 2010 – 1.
Teoria da Computação Profa. Sandra de Amo Bacharelado em CC Mestrado em CC 2008 – 1.
Resolução.
Análise Sintática - Continuação
Algoritmos e Estruturas de Dados
Teoria da Computação BCC 244
Linguagens e Máquinas WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE
NÃO DETERMINISMO Marcus Eduardo Cabral Seabra
Aplicações de Pilhas Pilhas são fundamentais em diversas áreas da computação: Sistemas Operacionais Arquitetura de Computadores Compiladores Entre outros.
Relações em uma Gramática
Daniel Felipe Neves Martins
Construção de Compiladores
Construção de Compiladores
Construção de Compiladores
Linguagens Formais e Autômatos
Modelagem & Representação
Introdução à NP-completude
Problemas NP-completo
Programação Dinámica Análise de algoritmos UNISUL
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Compiladores, Aula Nº 11 João M. P. Cardoso
Compiladores, Aula Nº 19 João M. P. Cardoso
Compiladores, Aula Nº 9 João M. P. Cardoso
Tópicos em otimização combinatória
Gramáticas Livres de Contexto
Informática Teórica Engenharia da Computação
Aula 17 1 Análise Sintáctica Compiladores, Aula Nº 17 João M. P. Cardoso.
Teorema de Herbrand e Unificação
Análises léxica e sintática
Introdução à NP-completude Katia S. Guimarães
Análise Léxica e Sintática
Teoria da Computação Aula 5 Prof. Fabiano Sabha.
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Complexidade de Algoritmos
Capítulo II Gramáticas e Linguagens
Máquina de Turing Universal
Analise sintática aula-07-analise-sintática.pdf.
Circuitos Combinacionais Exercícios 2 POSCOMP e ENADE
Análise Sintática LR Prof. Alexandre Monteiro
Análises léxica e sintática
Análise Sintática Prof. Alexandre Monteiro
Análise e Síntese de Algoritmos
Redução.
Linguagens Livres de Contexto
Problemas NP-completos e Programação Dinâmica
Introdução à NP-completude
Computabilidade e Linguagens Formais
Computabilidade e Linguagens Formais
Sintaxe de uma Linguagem
Compilador Software que traduz o texto (linguagem fonte) que representa um programa para código máquina(linguagem alvo) capaz de ser executado pelo.
1 Decidibilidade continuação…. 2 Teorema: Para qualquer linguagem recursivamente enumerável é indecidível determinar se é finita Prova: Vamos reduzir.
1 Máquinas de Turing 3 Exercícios Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens.
Transcrição da apresentação:

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