Linguagens Formais e Problemas de Decisão

Tamanho: px
Começar a partir da página:

Download "Linguagens Formais e Problemas de Decisão"

Transcrição

1 Linguagens Formais e Problemas de Decisão Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 1 / 27

2 Introdução No dia-a-dia estamos acostumados com linguagens naturais, como português, inglês, francês,... Estas linguagens nos permitem descrever objetos precisamente, através de cadeias (ou palavras). Aqui vamos estudar linguagens formais, que são conjuntos de cadeias matematicamente construídas para descrever objetos abstratos. Uma das aplicações mais relevantes de linguagens formais em ciência da computação é a definição de linguagens de programação. Você já pensou que existe uma linguagem dos programas em C, e que cada cadeia é um programa válido em C? Como definimos esta linguagem? Qual é a sua gramática? Como aqui vamos lidar apenas com linguagens formais, podemos nos referir a elas apenas como linguagens. Em particular, vamos ver como linguagens formais estão associadas a problemas de decisão, que são um dos cernes da ciência da computação. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 2 / 27

3 Linguagens Formais Mário S. Alvim Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 3 / 27

4 Linguagens: Conceitos fundamentais Um alfabeto é um conjunto finito não-vazio de elementos chamados símbolos. Exemplo 1 Exemplos de alfabetos: 1 {0, 1} é o alfabeto binário, 2 {a, b, c,..., z} é o alfabeto de letras latinas minúsculas, 3 {a 1, a 2, a 3} é um alfabeto ternário (de apenas três símbolos), 4 {,,, } é o alfabeto das 4 teclas principais do controle do Playstation, 5 o conjunto de caracteres do teclado é um alfabeto. Notação: Normalmente usamos a letra Σ para denotar um alfabeto. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 4 / 27

5 Linguagens: Conceitos fundamentais Uma cadeia (ou palavra) de um alfabeto Σ é uma sequência finita de símbolos de Σ. Exemplo 2 Exemplos de cadeias no alfabeto {0, 1}: ɛ O símbolo ɛ denota a cadeia vazia, ou seja, a cadeia formada por 0 símbolos. w denota o tamanho (i.e., o número de símbolos) da cadeia w. Exemplo = = = 10 4 ɛ = 0 Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 5 / 27

6 Linguagens: Conceitos fundamentais a n denota n símbolos a em sequência. Exemplo = = ɛ 3 a 2 b 3 a 2 = aabbbaa Σ (lê-se sigma estrela ) denota o conjunto de todas as cadeias que podem ser formadas com o alfabeto Σ. Exemplo 5 1 {a} = {ɛ, a, aa, aaa, a 4, a 5,...} 2 {0, 1} = {ɛ, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101,...} Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 6 / 27

7 Linguagens: Conceitos fundamentais Uma linguagem sobre um alfabeto Σ é um subconjunto de Σ. Exemplo 6 Exemplos de linguagens sobre o alfabeto {0, 1}: 1 {0, 1, 00, 11} 2 3 {ɛ} 4 {ɛ, 0, 1} 5 {ɛ, 0 2, 0 4, 0 6, 0 8, 0 10,...} 6 {w Σ w é múltiplo de 3} 7 {0 n 1 n n 0} 8 {0 n n é um número primo} 9 {0, 1} Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 7 / 27

8 Linguagens: Conceitos fundamentais Como linguagens são conjuntos, operações de conjuntos também se aplicam a linguagens. Sejam L 1 e L 2 linguagens sobre os alfabetos Σ 1 e Σ 2, respectivamente. Então: L 1 L 2 é uma linguagem sobre o alfabeto Σ 1 Σ 2, L 1 L 2 é uma linguagem sobre o alfabeto Σ 1 Σ 2, L 1 = {w Σ 1 w / L 1} é uma linguagem sobre o alfabeto Σ 1, L 1 L 2 = L 1 L 2 é uma linguagem sobre o alfabeto Σ 1, P(L 1) é um conjunto de linguagens sobre Σ 1, P(Σ 1 ) é o conjunto de todas as linguagens sobre Σ 1. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 8 / 27

9 Linguagens: Conceitos fundamentais e Exemplo 7 Sejam as linguagens L 1 = {w {0, 1} w é par} L 2 = {w {0, 1} w começa com 0}. 1 L 1 L 2 = {w {0, 1} w é par ou w começa com 0}. 2 L 1 L 2 = {w {0, 1} w é par e w começa com 0}. 3 L 1 = {w {0, 1} w é ímpar}. 4 L 1 L 2 = {w {0, 1} w é par e w não começa com 0}. 5 P(L 1) é o conjunto de todas as linguagens em que as cadeias da linguagem têm tamanho par. 6 P({0, 1} ) é o conjunto de todas as linguagens binárias. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 9 / 27

10 Linguagens: Conceitos fundamentais Dadas duas cadeias x = a 1 a 2... a n e y = b 1 b 2... b m, sua concatenação é xy = a 1 a 2... a n b 1 b 2... b m. Exemplo 8 1 Se x = 010 e y = 1111, então xy = Para toda cadeia x: ɛx = xɛ = x. 3 Para toda cadeia x, y, z: (xy)z = x(yz) = xyz. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 10 / 27

11 Linguagens: Conceitos fundamentais Um prefixo de uma cadeia w é uma cadeia x tal que w = xy para algum y. Um sufixo de uma cadeia w é uma cadeia y tal que w = xy para algum x. Uma subcadeia de uma cadeia w é uma cadeia z tal que w = xzy para algum x, y. Exemplo 9 1 Prefixos de abc: ɛ, a, ab, abc. 2 Sufixos de abc: ɛ, c, bc, abc. 3 Subcadeias de abc: ɛ, a, b, c, ab, bc, abc. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 11 / 27

12 Linguagens: Conceitos fundamentais O reverso de uma cadeia w = a 1 a 2... a n é a cadeia w R = a n... a 2 a 1. Exemplo 10 1 abc R = cba 2 a R = a 3 ɛ R = ɛ Um paĺındromo é uma cadeia w tal que w = w R. Exemplo 11 As seguintes cadeias são paĺındromos a 3 ɛ Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 12 / 27

13 Linguagens: Conceitos fundamentais Dadas duas linguagens L 1 e L 2, sua concatenação é L 1 L 2 = {xy x L 1 e y L 2 }. Exemplo 12 Sejam e L 1 = {w {0, 1} w = 5} L 2 = {0y y {0, 1} }. 1 L 1L 1 = {w {0, 1} w = 10} 2 L 1L 2 = {w {0, 1} w 6 e o sexto símbolo de w é 0} 3 L 2L 1 = {w {0, 1} w 6 e w começa com 0} 4 L 2L 2 = {0y y {0, 1} e y contém pelo menos um 0} 5 L 1{ɛ} = L 1 6 L 1 = Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 13 / 27

14 Linguagens: Conceitos fundamentais L n denota a linguagem L concatenada com ela mesma n vezes. Em particular, L 1 = L L 0 = {ɛ} Exemplo 13 1 {0, 1} 3 = {000, 001, 010, 011, 101, 101, 110, 111} 2 {aa, b} 2 = {aaaa, aab, baa, bb} O fecho de Kleene, ou estrela, de uma linguagem L é L = L 0 L 1 L 2 L 3 L 4... O fecho positivo de Kleene, ou mais, de uma linguagem L é L + = LL = L 1 L 2 L 3 L 4... Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 14 / 27

15 Linguagens: Conceitos fundamentais Exemplo 14 Exemplos de fechos de Kleene e fechos positivos de Kleene: 1 {0, 1} = {ɛ, 0, 1, 00, 01, 10, 11, 000, 001,...} 2 {0} = {0 n n 0} 3 {0} + = {0 n n 1} 4 {00} = {w {0} w é par} 5 {00} + = {w {0} w é par e w 2} 6 {01, 1} = {w {0, 1} todo 0 em w é seguido de pelo menos um 1} 7 {ɛ, 00, 11} = {ɛ, 00, 11} + = {ɛ} {00, 11} + 8 {ɛ} = {ɛ} + = {ɛ} 9 = {ɛ} 10 + = Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 15 / 27

16 Linguagens: Conceitos fundamentais Como todo alfabeto Σ é finito, o conjunto Σ é enumerável. (Por quê?) Como toda linguagem é um subconjunto de Σ, toda linguagem é enumerável. Logo, pelo menos em princípio, é possível dar uma definição recursiva para algumas linguagens. (Não é possível dar definição recursiva para conjuntos não-enumeráveis. Por quê?) Mais para frente veremos como prover definições recursivas para linguagens, usando o conceito de gramáticas. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 16 / 27

17 Problemas de Decisão Mário S. Alvim Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 17 / 27

18 Problemas de decisão Um problema de decisão (PD) é uma questão que: 1. faz referência a um conjunto de parâmetros, e que 2. para cada atribuição de valores a todos os parâmetros, possui como resposta SIM ou NÃO. Exemplo 15 Exemplos de problemas de decisão: 1 Determinar se um natural n é primo. (1 parâmetro: n.) 2 Determinar se x + y = z para x, y, z Z. (3 parâmetros: x, y, z.) 3 Determinar se é primo. (0 parâmetros.) 4 Determinar se existe um ciclo de tamanho pelo menos k num grafo G. (2 parâmetros: k, G.) 5 Determinar se uma cadeia w pertence a uma linguagem L. (2 parâmetros: w, L.) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 18 / 27

19 Problemas de decisão Uma instância de um PD é uma questão obtida ao se atribuírem a todos os parâmetros do PD valores específicos. Exemplo 16 instâncias: O PD de se determinar se um natural n é primo tem infinitas Determinar se 0 é primo. Determinar se 1 é primo. Determinar se 2 é primo. Determinar se 3 é primo.... Exemplo 17 instância. O PD de se determinar se é primo tem uma única Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 19 / 27

20 Problemas de decisão Uma solução para um problema de decisão é um procedimento (ou algoritmo) que retorna a resposta correta para toda e qualquer instância do problema. Um PD é decidível se ele tem solução, e indecidível em caso contrário. Todo PD com finitas instâncias é decidível. (Por quê?) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 20 / 27

21 Linguagens Formais e Problemas de Decisão Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 21 / 27

22 Linguagens Formais e Problemas de Decisão Aqui vamos nos concentrar em um tipo muito importante de problema de decisão: A cadeia w pertence à linguagem L? Um algoritmo capaz de responder corretamente a todas as instâncias de w do PD acima é um decisor para a linguagem L. Mais para a frente no curso vamos estudar também o conceito de um reconhecedor para a linguagem, que é um algoritmo que: 1. responde SIM para toda cadeia pertencente à linguagem, 2. para cadeias não-precentes à linguagem, ou responde NÃO, ou apenas se cala e não responde nada. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 22 / 27

23 Linguagens Formais e Problemas de Decisão Decidir linguagens é equivalente a resolver problemas de decisão. Ou seja, existe uma correspondência entre um decisor para uma linguagem e uma solução para um problema de decisão com um número enumerável de instâncias. Para ver a equivalência, primeiro introduzimos a notação x para a representação de um objeto x como uma cadeia de um alfabeto Σ. Assim, um problema de decisão com um número enumerável de instâncias A resposta para o PD com parâmetros x é SIM ou NÃO? é equivalente ao problema de linguagem para uma linguagem L apropriada. A cadeia x pertence à linguagem L? Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 23 / 27

24 Linguagens Formais e Problemas de Decisão Exemplo 18 O problema de decisão n é primo, para n N? é equivalente ao problema de decidir a pertinência de uma cadeia à linguagem L primos = { n n N e n é primo}. Uma maneira de fazer isto é definir a seguinte representação para os naturais n = 0 n, de forma que 1 = 0, 5 = 00000, 0 = 0 0 = ɛ, etc. Assim, o problema de decisão n é primo? equivalente ao problema de decidir a pertinência de uma cadeia 0 n à linguagem L primos = {0 n n é primo}. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 24 / 27

25 Linguagens Formais e Problemas de Decisão Exemplo 19 O problema de decisão x + y = z, para x, y, z Z? é equivalente ao problema de decidir a pertinência de uma cadeia à linguagem L x+y=z = { x, y, z x, y, z Z e x + y = z}. Exemplo 20 O problema de decisão O grafo G possui um ciclo de tamanho pelo menos k? é equivalente ao problema de decidir a pertinência de uma cadeia à linguagem L grafo = { G, k G é um grafo com um ciclo de tamanho pelo menos k}. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 25 / 27

26 Linguagens Formais e Problemas de Decisão Como dissemos, reconhecer linguagens é equivalente a resolver problemas de decisão com um número enumerável de instâncias. Neste curso vamos construir máquinas que decidem se cadeias pertencem ou não a uma dada linguagem. Cada máquina uma destas máquinas é uma solução para o problema de decisão equivalente à linguagem! Então, é importante entender quais linguagens podem ser decididas (ou reconhecidas) por quais máquinas, pois assim estamos estudando quais problemas de decisão têm solução (ou têm solução parcial)! Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 26 / 27

27 A Hierarquia de Chomsky As linguagens podem ser organizadas em níveis de complexidade. A hierarquia de Chomsky organiza as linguagens em termos da complexidade as máquinas necessárias para dedicidí-las/reconhecê-las. Neste curso vamos começar com as máquinas mais simples, e ir subindo na Hierarquia de Chomsky. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas de Decisão DCC-UFMG (2018/02) 27 / 27

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

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Modelos de Computação

Modelos de Computação Modelos de Computação 2.ano LCC e LERSI URL: http://www.ncc.up.pt/~nam/aulas/0405/mc Escolaridade: 3.5T e 1P Frequência:Semanalmente serão propostos trabalhos aos alunos, que serão entregues nas caixas

Leia mais

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

I.2 Introdução a Teoria da Computaçã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?

Leia mais

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo?

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo? 2 Linguagens Uma linguagem de programação, ou uma língua natural como o Português ou o Inglês, pode ser vista como um conjunto de sequências de símbolos, pertencentes a um conjunto finito. Em Português

Leia mais

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

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra

Leia mais

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

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Conceitos Básicos Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto.

Leia mais

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 8 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 7/4/8 Valor: pontos. Uma versão do problema

Leia mais

Fundamentos da Teoria da Computação

Fundamentos da Teoria da Computação Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas Sérgio Mariano Dias 1 1 Doutorando em Ciência da Computação Estagiário em docência II Departamento de Ciência da Computação

Leia mais

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

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior. LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior olivete@fct.unesp.br 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas

Leia mais

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Decidibilidade Mário S Alvim (msalvim@dccufmgbr) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 1 / 45 Decidibilidade:

Leia mais

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

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes

Leia mais

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

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ. Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem

Leia mais

Linguagens Formais - Preliminares

Linguagens Formais - Preliminares Linguagens Formais - Preliminares Regivan H. N. Santiago DIMAp-UFRN 25 de fevereiro de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Formais - Preliminares 25 de fevereiro de 2007 1 / 26 Algumas

Leia mais

IBM1088 Linguagens Formais e Teoria da

IBM1088 Linguagens Formais e Teoria da IBM1088 Linguagens Formais e Teoria da Computação Linguagens e Gramáticas Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 47 Frase do dia Sofremos muito com

Leia mais

Teoria da Computação Aula 02 Introdução

Teoria da Computação Aula 02 Introdução Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 04 Linguagens Formais humberto@bcc.unifal-mg.edu.br Última aula... Relação da teoria dos conjuntos com LFA; Relação dos grafos com LFA.

Leia mais

Linguagem (formal) de alfabeto Σ

Linguagem (formal) de alfabeto Σ Linguagem (formal) de alfabeto Σ Linguagem é qualquer subconjunto de Σ, i.e. qualquer conjunto de palavras de Σ Σ = {a, b} {aa, ab, ba, bb} ou {x x {a, b} e x = 2} {a, aa, ab, ba, aaa, aab, aba,...} ou

Leia mais

Conceitos básicos de Teoria da Computação

Conceitos básicos de Teoria da Computação Folha Prática Conceitos básicos de 1 Conceitos básicos de Métodos de Prova 1. Provar por indução matemática que para todo o número natural n: a) 1 + 2 + 2 2 + + 2 n = 2 n+1 1, para n 0 b) 1 2 + 2 2 + 3

Leia mais

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 7 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 9/9/7 Valor: pontos. Uma versão do problema

Leia mais

Alfabeto, Cadeias, Operações e Linguagens

Alfabeto, Cadeias, Operações e Linguagens Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter

Leia mais

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

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar

Leia mais

Teoria da Computação

Teoria da Computação Introdução Março - 2009 1 Noções e Terminologia Matemática Conjuntos Um conjunto é um grupo de objetos, chamados elementos ou membros, representado como uma unidade. O conjunto { 3, 41, 57} possui os elementos

Leia mais

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Redutibilidade Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Redutibilidade DCC-UFMG (2018/02) 1 / 46 Redutibilidade:

Leia mais

Fundamentos da Teoria da Computação

Fundamentos da Teoria da Computação Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas da lista Sérgio Mariano Dias 1 1 UFMG/ICEx/DCC Entrega da 1 a lista: 31/03/2009 Sérgio Mariano Dias (UFMG) Fundamentos

Leia mais

1 INTRODUÇÃO E CONCEITOS BÁSICOS

1 INTRODUÇÃO E CONCEITOS BÁSICOS 1 INTRODUÇÃO E CONCEITOS BÁSICOS Inicia com uma breve história do surgimento e do desenvolvimento dos conceitos, resultados e formalismos nos quais a Teoria da Computação é baseada. Formalização dos conceitos

Leia mais

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018 27 de Fevereiro de 2018 Definição: Concatenação Sejam u, v Σ. A concatenação de u e v, denotado por uv é a operação binária sobre Σ assim definida (i) BASE: Se tamanho(v) = 0 então v = λ e uv = u. (ii)

Leia mais

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema Conceitos Básicos Vocabulário Cadeias Linguagens Problema Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto. Ex: {A,B,C,.Z} alfabeto latino (maiúsculas)

Leia mais

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018 22 de Fevereiro de 2018 Motivação O que é um computador? O que é um algoritmo? Para que serve um algoritmo? Quando um algoritmo é bom? A análise de um algoritmo depende do computador? Motivação Em teoria

Leia mais

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

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Pós-Graduação em Ciência da Computação DCC/ICEx/UFMG Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Observações: Pontos

Leia mais

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticas bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL:

Leia mais

Propriedades das Linguagens Livres do Contexto

Propriedades das Linguagens Livres do Contexto Capítulo 7 Propriedades das Linguagens Livres do Contexto As linguagens livres do contexto ocupam uma posição central na hierarquia das linguagens formais. Por um lado, as linguagens livres do contexto

Leia mais

Linguagens Não-Regulares

Linguagens Não-Regulares Linguagens Não-Regulares Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Não-Regulares DCC-UFMG (2018/02)

Leia mais

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

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar

Leia mais

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando

Leia mais

Autômatos Finitos e Não-determinismo

Autômatos Finitos e Não-determinismo Autômatos Finitos e Não-determinismo Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Autômatos Finitos e Não-determinismo

Leia mais

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens) Teoria das Lic. em Ciências da Computação Formais e Autómatos () Carla Mendes Dep. Matemática e Aplicações Universidade do Minho 2010/2011 Teoria das - LCC - 2010/2011 Dep. Matemática e Aplicações - Univ.

Leia mais

BCC244. Alfabeto, String, Linguagem, Gramática. Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste materal.

BCC244. Alfabeto, String, Linguagem, Gramática. Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste materal. BCC244 Alfabeto, String, Linguagem, Gramática Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste materal. Exemplo: Máquina de Venda A máquina de venda retorna uma cocacola

Leia mais

Histórico e motivação

Histórico e motivação Expressões regulares 1. Histórico e motivação 2. Definição a) Sintaxe b) Semântica c) Precedência dos operadores 3. Exemplos 4. Leis algébricas 5. Dialetos 6. Aplicações 7. Exercícios Pré-requisito: básico

Leia mais

Notas sobre Definições Recursivas

Notas sobre Definições Recursivas Notas sobre Definições Recursivas Anjolina Grisi de Oliveira Centro de Informática Universidade Federal de Pernambuco CIn-UFPE Introdução A torre de Hanói Jogo antigo inventado pelo matemético francês

Leia mais

Conceitos Preliminares

Conceitos Preliminares Capítulo 1 Conceitos Preliminares Inicialmente, na Seção 1.1, será abordado o problema fundamental relativo ao uso dos computadores, ou seja, o da representação, com o intuito de fazer transparecer a importância

Leia mais

Máquinas de Turing - Computabilidade

Máquinas de Turing - Computabilidade BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma

Leia mais

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

Segunda Lista de Exercícios 2004/2... + + UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM162 Linguagens Formais e Autômatos Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Segunda Lista de Exercícios

Leia mais

Lema do Bombeamento para Linguagens Livres do Contexto

Lema do Bombeamento para Linguagens Livres do Contexto Lema do Bombeamento para Linguagens Livres do Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 44

Leia mais

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ). Alfabeto e palavras Alfabeto conjunto finito de símbolos (Σ). {A,...,Z}, {α, β,... }, {a,b}, {0,1}, ASCII Palavra de Σ sequência finita de símbolos do alfabeto Σ Σ = {a, b} aabba a aaaaaaaa Comprimento

Leia mais

Conceitos Preliminares

Conceitos Preliminares Capítulo 1 Conceitos Preliminares Inicialmente, na Seção 1.1, será abordado o problema fundamental relativo ao uso dos computadores, ou seja, o da representação, com o intuito de fazer transparecer a importância

Leia mais

Revisões de Conjuntos

Revisões de Conjuntos Revisões de Conjuntos {, {a}, {b}, {a, b}} a A a pertence a A, a é elemento de A a {a, b, c} a / A a não pertence a A d / {a, b, c} A B A contido em B, A subconjunto de B x A x B {a, b} {b, c, a} A B A

Leia mais

LFA. Aula 04. Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem

LFA. Aula 04. Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem LFA Aula 04 Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem Linguagens Formais Linguagens formais se preocupam com os problemas sintáticos das linguagens. Sintaxe e Semântica Sintaxe

Leia mais

Capítulo 1: Alfabetos, cadeias, linguagens

Capítulo 1: Alfabetos, cadeias, linguagens Capítulo 1: Alfabetos, cadeias, linguagens Símbolos e alfabetos. Um alfabeto é, para os nossos fins, um conjunto finito não vazio cujos elementos são chamados de símbolos. Dessa maneira, os conceitos de

Leia mais

Definições Exemplos de gramáticas

Definições Exemplos de gramáticas Definições Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução por volta dos anos

Leia mais

Capítulo 2: Procedimentos e algoritmos

Capítulo 2: Procedimentos e algoritmos Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS

LINGUAGENS FORMAIS E AUTÔMATOS LINGUGENS FORMIS E UTÔMTOS Introdução reve Histórico Em 1936, lan Turing (matemático) propôs a possibilidade de se construir um computador digital através da formalização de um procedimento em tempo finito.

Leia mais

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

Introdução Definição Conceitos Básicos de Linguagem Introdução Definição Conceitos Básicos de Linguagem Introdução Desenvolvida originalmente em 1950 Objetivo: Desenvolver teorias relacionadas com a Linguagem natural Logo verificou-se a importância para

Leia mais

Lista de exercícios 1

Lista de exercícios 1 UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO DE CIÊNCIAS AGRÁRIAS CCA/ UFES Departamento de Engenharia Rural Lista de exercícios 1 Disciplina: Linguagens Formais e Autômatos Professora: Juliana Pinheiro

Leia mais

Notas de aula: Cálculo e Matemática Aplicados às Notas de aula: Ciências dos Alimentos

Notas de aula: Cálculo e Matemática Aplicados às Notas de aula: Ciências dos Alimentos Notas de aula: Cálculo e Matemática Aplicados às Notas de aula: Ciências dos Alimentos 1 Conjuntos Um conjunto está bem caracterizado quando podemos estabelecer com certeza se um elemento pertence ou não

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS

LINGUAGENS FORMAIS E AUTÔMATOS LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.

Leia mais

Expressões e Gramáticas Regulares e Autómatos Finitos

Expressões e Gramáticas Regulares e Autómatos Finitos Folha Prática Expressões e Gramáticas Regulares e Autómatos Finitos 1 Expressões e Gramáticas Regulares e Autómatos Finitos Expressões Regulares e Autómatos Finitos 1. Determine e implemente computacionalmente

Leia mais

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

Modelos de Computação Folha de trabalho n. 8 Modelos de Computação Folha de trabalho n. 8 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

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

Modelos de Computação Folha de trabalho n. 10 Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Introdução Problema: definir um conjunto de cadeias de símbolos; Prof. Yandre Maldonado - 2 Exemplo: conjunto

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Problema: definir um conjunto de cadeias de símbolos; Prof. Yandre Maldonado - 2 Exemplo: conjunto M dos

Leia mais

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

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda

Leia mais

Aulas 10 e 11 / 18 e 20 de abril

Aulas 10 e 11 / 18 e 20 de abril 1 Conjuntos Aulas 10 e 11 / 18 e 20 de abril Um conjunto é uma coleção de objetos. Estes objetos são chamados de elementos do conjunto. A única restrição é que em geral um mesmo elemento não pode contar

Leia mais

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos Lista de Exercícios CT-200 Primeiro Bimestre 2010 Carlos Henrique Quartucci Forster Estagiário: Wesley Telles Revisão de Teoria de Conjuntos 1. Sejam A = {1,2 } e B = { x, y, z}. Quais os elementos dos

Leia mais

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA) Linguagens Formais e Autômatos (LFA) Aula de 19/08/2013 Símbolos, Cadeias, Linguagens Propriedades e Representações Formais de Interesse 1 Nota preliminar ( O conceito de decomposição e suas representações

Leia mais

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

Construção de Compiladores Aula 16 - Análise Sintática Construção de Compiladores Aula 16 - Análise Sintática Bruno Müller Junior Departamento de Informática UFPR 25 de Setembro de 2014 1 Introdução Hierarquia de Chomsky Reconhecedores Linguagens Livres de

Leia mais

Expressões regulares

Expressões regulares Expressões regulares IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 38 Frase do dia A vida é uma luta inteira

Leia mais

Definições Hierarquia de Chomsky Exemplos de gramáticas. Gramáticas. Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas

Definições Hierarquia de Chomsky Exemplos de gramáticas. Gramáticas. Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Definições Hierarquia de Chomsky Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos (notas da primeira aula 1 Definições básicas 1.1 Conjuntos Definição 1. Um conjunto é uma coleção de objetos, denominados elementos. Notação 1. Para indicar que um elemento

Leia mais

Aula 3: Autômatos Finitos

Aula 3: Autômatos Finitos Teoria da Computação Primeiro Semestre, 25 Aula 3: Autômatos Finitos DAINF-UTFPR Prof. Ricardo Dutra da Silva Um procedimento ue determina se uma string de entrada pertence à uma linguagem é um reconhecedor

Leia mais

Prof. Adriano Maranhão COMPILADORES

Prof. Adriano Maranhão COMPILADORES Prof. Adriano Maranhão COMPILADORES LINGUAGENS: INTERPRETADAS X COMPILADAS Resumo: Linguagem compilada: Se o método utilizado traduz todo o texto do programa, para só depois executar o programa, então

Leia mais

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

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE. DEINFO - UFRPE Julho, 2014 Motivação Introdução O que pode ser computado? E mais intrigantemente, o que não pode ser computado? Motivação Introdução O que pode ser computado? E mais intrigantemente, o

Leia mais

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação SCC-205 TEORIA DA COMPUTAÇÃO E LINGUAGENS FORMAIS Turma 1 2º. Semestre de 2012 Prof. João Luís

Leia mais

Máquina de Turing. Controle finito

Máquina de Turing. Controle finito Máquinas de Turing Máquinas de Turing podem fazer tudo o que um computador real faz. Porém, mesmo uma Máquina de Turing não pode resolver certos problemas. Estes problemas estão além dos limites teóricos

Leia mais

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação Edital 04/2018/DCC/IM/UFRRJ Concurso de Monitoria Estudantil O Chefe

Leia mais

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Apostila 05 Assunto: Linguagens dos tipos 0 e 1 Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA) Linguagens Formais e Autômatos (LFA) Aula de 18/11/2013 Linguagens Recursivamente Enumeráveis, Complexidade (Custo) de Tempo/Espaço, Transdutores para exibir complexidade de Tempo/Espaço 1 Linguagens Recursivamente

Leia mais

Modelos Universais de Computação

Modelos Universais de Computação Modelos Universais de Computação 1 Equivalência entre Variantes de TM TM s definem naturalmente uma classe. Toda variante razoável de TM define a mesma classe de linguagens. (reforça a Tese Church-Turing)

Leia mais

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

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba Questão 01 No processo de construção de compiladores, é essencial compreender e manipular as expressões regulares e suas equivalências. Dentro desse contexto, seja o alfabeto = {a, b, c, d, e} e a seguinte

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos LINGUAGENS FORMAIS E AUTÔMATOS Prova 2-10/06/2011 - Prof. Marcus Ramos NOME: _ Colocar seu nome no espaço acima; A prova pode ser feita à lápis ou caneta; A duração é de três horas; As questões da parte

Leia mais

Aula1 Noções de matemática Discreta Técnicas de Demonstração. Prof. Dr. Ricardo Luis de Azevedo da Rocha

Aula1 Noções de matemática Discreta Técnicas de Demonstração. Prof. Dr. Ricardo Luis de Azevedo da Rocha Aula1 Noções de matemática Discreta Técnicas de Demonstração Prof. Dr. Ricardo Luis de Azevedo da Rocha Matemática Discreta seleção de tópicos de Matemática essenciais para o estudo da Ciência da Computação

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas são sim ou não. Exemplo

Leia mais

Máquinas de Turing 3

Máquinas de Turing 3 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 decidíveis por Máquinas de Turing (Recursivas)

Leia mais

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos SCC-505 - Capítulo 1 Linguagens Regulares e Autômatos Finitos João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo

Leia mais

Teoria da Computação. Computabilidade e complexidade computacional

Teoria da Computação. Computabilidade e complexidade computacional Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade

Leia mais

a n Sistemas de Estados Finitos AF Determinísticos

a n Sistemas de Estados Finitos AF Determinísticos a n Sistemas de Estados Finitos AF Determinísticos 1 Relembrando Uma representação finita de uma linguagem L qualquer pode ser: 1. Um conjunto finito de cadeias (se L for finita); 2. Uma expressão de um

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 4 Análise Léxica Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir

Leia mais

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

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Nome: Teoria da Computação Créditos: 4 60 horas Período: 2010.2 Horário: segundas e quintas das 20:40 às 22:20

Leia mais

1 introdução. capítulo. O que é uma solução computável? Quais são os limites do que pode ser computado? Existem problemas sem solução computacional?

1 introdução. capítulo. O que é uma solução computável? Quais são os limites do que pode ser computado? Existem problemas sem solução computacional? capítulo 1 introdução A ciência da computação é o conhecimento sistematizado da computação. Sua origem é milenar, tendo se desenvolvido em diferentes regiões e épocas. A teoria da computação é a base fundamental

Leia mais

Gramáticas e Linguagens Independentes de Contexto

Gramáticas e Linguagens Independentes de Contexto Gramáticas e Linguagens Independentes de Contexto 6.1 Responde às uestões seguintes considerando a gramática independente de contexto G = (V, {a, b}, P, R), onde o conjunto de regras P é: R XRX S S at

Leia mais

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução. Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela

Leia mais

Linguagens, Reconhecedores e Gramáticas

Linguagens, Reconhecedores e Gramáticas Linguagens, Reconhecedores e Gramáticas Já vimos que Linguagem é um conjunto de cadeias de símbolos sobre um alfabeto/vocabulário, V. É um subconjunto específico de V*. Estas cadeias são denominadas sentenças

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação Segundo Semestre, 2014 Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas

Leia mais

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

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação Universidade Federal de Santa Maria Disciplina de Teoria da Computação Quais são as capacidades e limitações fundamentais dos computadores? Funções Computáveis Algoritmo: descrição finitade uma computação

Leia mais

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) ) Exercicios 7.1 Escreve expressões regulares para cada uma das seguintes linguagens de Σ = {a, b}: (a) palavras com não mais do que três as (b) palavras com um número de as divisível por três (c) palavras

Leia mais

Teoria Ingênua dos Conjuntos (naive set theory)

Teoria Ingênua dos Conjuntos (naive set theory) Teoria Ingênua dos Conjuntos (naive set theory) MAT 131-2018 II Pouya Mehdipour 5 de outubro de 2018 Pouya Mehdipour 5 de outubro de 2018 1 / 22 Referências ALENCAR FILHO, E. Iniciação à Lógica Matemática,

Leia mais

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

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador

Leia mais

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

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

Draft-v0.1. Máquinas de Turing Máquinas de Turing 13 Máquinas de Turing A necessidade de formalizar os processos algorítmicos levou, nas décadas 20 e 30 do século XX, a diversos estudos, entre os quais os de Post, Church e Turing, com vista a estudo formal

Leia mais

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

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30 Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA MC3106 - LINGUAGENS FORMAIS E

Leia mais