Linguagens Formais e Problemas de Decisão
|
|
- Ilda Corte-Real
- 5 Há anos
- Visualizações:
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
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 maisModelos 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 maisI.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 maisProblema 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 maisLinguagens 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 maisConceitos 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 maisTeoria 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 maisFundamentos 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 maisLinguagens 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 maisDecidibilidade. 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 maisINE5317 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 maisLinguagens 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 maisUm 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 maisLinguagens 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 maisIBM1088 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 maisTeoria 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 maisUniversidade 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 maisLinguagem (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 maisConceitos 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 maisTeoria 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 maisAlfabeto, 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 maisUNIVERSIDADE 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 maisTeoria 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 maisRedutibilidade. 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 maisFundamentos 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 mais1 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 maisProf. 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 maisConceitos 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 maisProf. 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 maisTeoria 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 maisINE5317 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 maisPropriedades 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 maisLinguagens 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 maisProcedimentos 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 maisCurso 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 maisAutô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 maisTeoria 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 maisBCC244. 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 maisHistó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 maisNotas 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 maisConceitos 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 maisMá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 maisSegunda 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 maisLema 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 maisAlfabeto 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 maisConceitos 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 maisRevisõ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 maisLFA. 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 maisCapí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 maisDefiniçõ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 maisCapí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 maisLINGUAGENS 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 maisIntroduçã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 maisLista 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 maisNotas 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 maisLINGUAGENS 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 maisExpressõ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 maisModelos 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 maisModelos 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 maisLinguagens 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 maisLinguagens 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 maisCOMPILADORES. 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 maisAulas 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 maisLista 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 maisLinguagens 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 maisConstruçã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 maisExpressõ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 maisDefiniçõ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 maisLinguagens 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 maisAula 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 maisProf. 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 maisIntroduçã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 maisUniversidade 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 maisMá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 maisMINISTÉ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 maisApostila 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 maisLinguagens 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 maisModelos 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 maisConcurso 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 maisLINGUAGENS 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 maisAula1 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 maisAula 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 maisMá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 maisSCC 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 maisTeoria 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 maisa 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 maisComo 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 maisUNIVERSIDADE 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 mais1 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 maisGramá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 maisCapí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 maisLinguagens, 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 maisAula 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 maisJuliana 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 maisExercicios. 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 maisTeoria 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 maisCompiladores. 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 maisApostila 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 maisDraft-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 mais2. 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