I.2 Introdução a Teoria da Computação

Documentos relacionados
INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

INE5622 INTRODUÇÃO A COMPILADORES

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Linguagens Formais e Autômatos

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Linguagens Formais e Autômatos P. Blauth Menezes

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Linguagens Formais e Autômatos P. Blauth Menezes

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Capítulo 2: Procedimentos e algoritmos

Aula 10: Decidibilidade

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Universidade Federal de Alfenas

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

LINGUAGENS FORMAIS E COMPILADORES (Prof. Olinto José Varela Furtado)

LINGUAGENS FORMAIS E AUTÔMATOS

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Aula 10: Decidibilidade

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos

PCS3616. Programação de Sistemas (Sistemas de Programação) Visão Geral

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

Matemática Discreta para Ciência da Computação

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Linguagens Formais e Autômatos

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

Introdução Definição Conceitos Básicos de Linguagem

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Terceira Lista de Exercícios 2004/2...

Universidade Federal de Alfenas

Prof. Adriano Maranhão COMPILADORES

Universidade Federal de Alfenas

Matemática Discreta para Ciência da Computação

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

LINGUAGENS FORMAIS E AUTÔMATOS

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

IBM1088 Linguagens Formais e Teoria da Computação

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta...

Modelos de Computação Folha de trabalho n. 10

S. C. Coutinho. Máquina de Turing Universal p. 1/22

Construção de Compiladores Aula 16 - Análise Sintática

Teoria da Computação. Aula 01

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

Faculdade de Computação

SCC Capítulo 4 Máquinas de Turing e a Teoria da Computabilidade

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Conceitos Preliminares

Complexidade computacional

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

6. Decidibilidade, indecidibilidade e decidibilidade parcial

Matemática Discreta para Ciência da Computação

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

Semântica Denotacional

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Teoria da Computação

Máquina de Turing. Controle finito

Teoria de Conjuntos. Matemática Discreta I. Rodrigo Ribeiro. 6 de janeiro de 2013

Fundamentos de Programação

Linguagens Livres de Contexto

Máquinas de Turing (MT)

Aulas Práticas. 1ª Aula Prática Perguntas sobre a Implementação de Funções Simples na Máquina URM...1

Turing e Complexidade

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Máquinas de Turing 3

Centro Universitário do Triângulo

Linguagens Formais e Autômatos P. Blauth Menezes

Aula 3: Autômatos Finitos

Introdução à Programação

Expressões Regulares. Processamento Estatístico da Linguagem Natural. Expressões Regulares. Mais Expressões Regulares. Mais Expressões Regulares

Análise Sintática Introdução

Matemática Discreta para Computação e Informática

IME, UFF 7 de novembro de 2013

Dedução Natural e Sistema Axiomático Pa(Capítulo 6)

Linguagens Formais e Autômatos. Conceitos Básicos Prof. Anderson Belgamo

FACULDADE LEÃO SAMPAIO

INTRATABILIDADE e NP-COMPLETUDE

Conceitos básicos de Teoria da Computação

Computabilidade. da Computação que estudam, formalmente, as capacidades e as limitações da computação.

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Teoria da Computação. Exercícios. 1 Máquinas de Registos Ilimitados 2013/2014

Transcrição:

I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância? Guia : Que problemas podem ser efetivamente computáveis, como e com que complexidade Classificação dos problemas: Não-Computáveis Computáveis Indecidíveis Decidíveis Intratáveis Tratáveis Exemplos de problemas: Computabilidade e Decidibilidade Expressividade de Máquinas e Modelos Equivalência entre Programas Complexidade Computacional Semântica e Correção de Programas

Problemas Computacionais X Teoria das Linguagens Formais Todo problema computacional pode ser tratado como um problema de LINGUAGENS!!! Problema Computacional Pode ser solucionado por Programa / Função P : Entradas X Saídas Possui... Algoritmo de DECISÃO Dp (Entradas, Saída) { True, False } Exemplo: Dados p e q inteiros, q = p 2? Se para qualquer Entrada e para qualquer Saída submetidos a P, Dp sempre responde True ou False, então o problema em questão é DECIDÍVEL, senão o problema é INDECIDÍVEL

Correlacionando Problemas Computacionais com Problemas de Linguagens Entradas e Saídas podem sempre serem representadas por sequências de caracteres (ex. usando o alfabeto unário { a }, podemos representar : 1 por a, 2 por aa,..., N por a N ); Uma Linguagem nada mais é que um conjunto de sentenças (sequências) formadas sobre um alfabeto; Pares (Entrada, Saída) podem ser vistos como sequências (ou sentenças) pertencentes a uma LINGUAGEM Assim, se uma sequência particular pertence à linguagem formada pelas soluções de um problema qualquer, ela será uma solução do problema em questão!!! No exemplo dado, a LINGUAGEM pode ser enunciada como sendo L = { (a N, a N2 ), onde a é o símbolo do alfabeto e N representa um inteiro positivo qualquer} (2, 4) e (5, 25), representam instâncias True, enquanto que (1, 3) e (3, 17) representam instâncias False para o algoritmo de decisão relativo ao problema dado. Conclusão : Como o algoritmo de decisão relativo ao problema em questão, sempre dará uma resposta (True ou False), para qualquer par de inteiros fornecidos, o problema é DECIDÍVEL! Ex.: o problema abaixo é decidível? Dado um inteiro positivo N, Existe X, Y, Z (diferentes de 0), tal que X N + Y N = Z N???

Teoria da Computação X Teoria das Linguagens Formais Definição de Teoria da Computação sob a ótica da Teoria das Linguagens Formais: Conjunto de Modelos Formais (autômatos e gramáticas, p. ex.), que juntamente com suas propriedades (decidibilidade, equivalência e complexidade), fundamentam a Ciência da Computação.

Conceitos e Propósitos Fundamentais da Teoria da Computação PROCEDURE X ALGORITMO Procedure : Sequência finita de passos, executáveis mecanicamente de forma discreta. Algoritmo : É uma procedure que, independentemente das entradas, possui parada garantida. Exemplos: Determinar se I 1 é um número primo Determinar se existe um número perfeito > I Determinar se um programa está sintaticamente correto Determinar se um programa qualquer entrará em loop para uma entrada qualquer (Halting Problem) Conj. Recursivos e Recursivamente Enumeráveis X Algoritmos e Procedures X Problemas Decidíveis e Problemas Indecidíveis

Propósitos da Teoria da Computação (ou : Modelos que formalizam a noção do que é do que não é efetivamente computável) Máquinas de Turing (Turing, 1936) Tese de CHURCH Todo processo efetivo pode ser realizado por uma máquina de turing) Gramáticas (Chomsky, 1959) Tipos 0, 1, 2 e 3 Algoritmos de Markov (Markov, 1951) Sistemas de regras de produção Processamento de strings -Calculus (Church, 1936) Método para especificação de funções Influenciou programação funcional Sistemas de POST (Emil Post, 1936) Formalização de sistemas de re-escrita Lógica formal e sistemas especialistas Funções Recursivas (Kleene, 1936) Método para definição de funções a partir de um conjunto de equações exemplo : X Y = 1, se y = 0 = X. X Y-1, se y > 0

I.2.1 Introdução à Teoria das Linguagens Formais O que é LINGUAGEM FORMAL? O que é LINGUAGEM? Forma de comunicação Conjunto de símbolos + conjunto de regras Exemplos: L. Máquina, PASCAL, Português,... I.2.1.1 Conceitos Básicos Alfabeto : Conjunto finito e não vazio de símbolos Sentença: Sequência de símbolos de um alfabeto Tamanho de uma sentença: Quantidade de símbolos de uma sentença Sentença vazia: denotada por, é uma sentença de tamanho 0 Potência de uma sentença: exemplo: a 3 = aaa Fechamento de um alfabeto: Reflexivo : V * Transitivo (ou Positivo) : V +

I.2.1.2 Linguagens e suas Representações Linguagem : L V * Formas de Representação: Enumeração Sistemas Geradores Sistemas Reconhecedores Linguagens Formais Dispositivos / Modelos matemáticos Linguagens Recursivas: Algoritmos Linguagens Recursivamente Enumeráveis Procedures Teoria das Linguagens Formais: Estudo dos modelos matemáticos que possibilitam a especificação, o reconhecimento, a classificação, as propriedades e o interrelacionamento entre linguagens. Importância da Teoria das Linguagens: Apóia aspectos básicos da Teoria da Computação: Decidibilidade, Computabilidade, Complexidade Fundamenta Aplicações Computacionais: Processamento de Linguagens (esp. / impl.), Rec.de Padrões, Modelagem de Sistemas,...