Prova 2 de INF1626 Linguagens Formais e Autômatos

Documentos relacionados
Prova 1 de INF1626 Linguagens Formais e Autômatos

Exercícios preparatórios para a Prova 2

Linguagens Formais e Autômatos (LFA)

Algoritmo de Minimização de AFD

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

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

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

Linguagens Formais e Autômatos (LFA)

Prova 1 de INF1626 Linguagens Formais e Autômatos

Linguagens Formais e Autômatos (LFA)

INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares

LFA Aula 07. Equivalência entre AFD e AFND. Equivalência entre ER s e AF s Equivalência entre GR s e AF s. Linguagens Formais e Autômatos

Propriedades das Linguagens Livres do Contexto

Linguagens Formais e Autômatos (LFA)

Lema do Bombeamento Operações Fechadas sobre LR s Aplicações

Linguagens Formais e Autômatos P. Blauth Menezes

Expressões regulares

Linguagens Livres de Contexto

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

Lema do Bombeamento Operações Fechadas sobre LR s Aplicações

Linguagens Formais e Autômatos

a n Sistemas de Estados Finitos AF Determinísticos

Expressões Regulares e Gramáticas Regulares

UNIVERSIDADE DA BEIRA INTERIOR

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

SCC 205 Teoria da Computação e Linguagens Formais

Linguagens Formais e Autômatos (LFA)

Linguagens Livres de Contexto

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

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

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

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

Lema do Bombeamento. Aplicação para Linguagens Regulares e Livres de Contexto. Maria Adriana Vidigal de Lima. Abril

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

a * Minimização de AFD AFD equivalente, com o menor número de estados possível

Linguagens Livres de Contexto

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

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

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

a * Lema do Bombeamento Linguagens regulares e não-regulares

COMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang

Vamos estudar neste capítulo algumas características da classe das linguagens regulares sobre um alfabeto. Entre elas salientámos:

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

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

INF1626 Linguagens Formais e Autômatos em

Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

Aula de 28/10/2013. sticas; Implementação. em Ruby

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

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Problemas de Decisão

Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção

MAC-4722 Linguagens, Autômatos e Computabilidade Lista L3

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

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação

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

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

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação

Linguagens Não-Regulares

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Lema do Bombeamento para Linguagens Livres do Contexto

Autômatos com Pilha: Reconhecedores de LLCs

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Hierarquia de Chomsky Exemplos de gramáticas

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

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

Se o símbolo inicial não fizer parte do conjunto de símbolos férteis, a linguagem gerada pela gramática é vazia.

Análise Léxica. Fundamentos Teóricos. Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores)

Linguagens Regulares. Prof. Daniel Oliveira

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

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha

Compiladores - Análise Ascendente

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

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

Linguagens Formais e Autômatos (LFA)

Compiladores - Análise Ascendente

Compiladores Aula 4. Celso Olivete Júnior.

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

LINGUAGENS SENSÍVEIS AO CONTEXTO E AUTÔMA- TOS LIMITADOS LINEARMENTE

Propriedades de Fecho de Linguagens Regulares.

Como construir um compilador utilizando ferramentas Java

Analisadores Sintáticos LR

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

IV Gramáticas Livres de Contexto

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

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

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

Aula 8: Gramáticas Livres de Contexto

Linguagens Formais e Autômatos P. Blauth Menezes

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

IBM1088 Linguagens Formais e Teoria da

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto

Autômatos Finitos e Não-determinismo

Gramáticas e Linguagens Independentes de Contexto

LINGUAGENS FORMAIS E AUTÔMATOS

Transcrição:

Prova 2 de INF1626 Linguagens Formais e Autômatos Aluno(a): Matrícula: Atenção: O tempo total de prova é de 110 minutos (09:05 às 10:55). Durante a prova não é permitido o uso de qualquer aparelho eletrônico (por exemplo: telefone celular, ipod ou MP3 Player, Tablets, etc.). Se alguém insistir em usar um, sua prova será anulada. Os alunos não devem se ausentar da sala durante a prova. Caso isto ocorra, o(a) professor(a) terá a opção de acatar ou não as questões respondidas após o retorno do aluno à sala. As provas só podem ser entregues depois de decorridos 45 minutos do tempo de realização. Pedidos de revisão de questões feitas a lápis poderão ser acatados ou não, dependendo do estado do manuscrito de prova. Qualquer pedido de revisão deve ser apresentado por escrito, conforme tiver sido comunicado à turma em sala de aula ou por email. Boa prova a todos! 1. [1.5 Pontos] Conceituação Apresente definições corretas e precisas para os seguintes conceitos: a. Gramática Regular à Esquerda A pergunta é sobre uma GRAMÁTICA regular à esquerda, não sobre um Autômato Finito ou Reconhecedor equivalente ou sobre as Linguagens que elas descrevem. O fato de as estruturas sintáticas da linguagem descrita por este tipo de gramática crescerem para a esquerda é sua principal característica e não está errado mencionar o fato na resposta. Entretanto, esta menção não é uma definição (e é, aliás, dispensável na definição). Uma gramática regular à esquerda G é definida por uma quádrupla G=<V,, P, S>, onde: V é o vocabulário (símbolos terminais e não terminais) é o alfabeto de símbolos terminais e S é o símbolo raiz P é o conjunto de produções (regras) do tipo, onde (V- ) e =1, (V- ) { }, { }. Para obter 100% dos pontos, a definição apresentada tem de incluir todas as características acima, enunciadas em termos dos seguintes elementos formais: vocabulário, alfabeto, produções e restrições sobre elas. P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 1

b. Autômato Mínimo Autômato mínimo é o autômato finito determinístico com o menor número de estados possível capaz de reconhecer uma determinada linguagem regular L, sendo que ele é único. Algumas das respostas apresentadas definiam autômatos menores que outros, mas não necessariamente mínimos. Outras não faziam referência à linguagem que o conjunto de autômatos comparados (mínimos e não mínimos) têm de reconhecer, a mesma. Finalmente, algumas respostas eram quase mera paráfrase da pergunta: autômato mínimo é aquele que tem o mínimo de estados possíveis. Todos os casos citados levaram a descontos (maiores ou menores) na pontuação deste item da questão. c. Transdutor Finito Transdutor finito é uma extensão de autômatos finitos determinísticos que se caracterizam pela escrita de símbolos numa fita de saída, além da leitura de símbolos da fita de entrada. Portanto, os transdutores lêem símbolos do alfabeto de entrada e escrevem símbolos do alfabeto de saída. A escrita de símbolos pode ser baseada nos estados percorridos durante a execução do autômato, ou nas transições efetuadas durante essa transição. Várias respostas mencionavam parte das características definitórias dos transdutores, mas não todas elas. Além disto, houve casos de definições circulares (por exemplo: são transdutores que... ou autômatos em que as transduções... ). 2. [2.5 Pontos] Conversão de Gramática para Autômato e Minimização de Autômatos Seja a seguinte gramática regular à direita: S as S ax X b X bs X bc C c C cc P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 2

a) Especifique um Autômato Finito Determinístico que reconheça exatamente a mesma linguagem que a gramática acima especifica. Inicialmente, criamos o autômato não determinístico a partir da gramática: Quem preferiu trabalhar com a expressão regular equivalente, ela é: a + (b a + )* b c* ou, de forma mais simples, (a + b) + c*. Em seguida, é necessário eliminar as transições não determinísticas: Q = {q0,q1,q2,q3} F = {q3} : q0,a,[q0 q1] q1,b,[q0 q2 q3] q2,c,[q2 q3] Criando um novo estado qn1=[q0 q1]: Q = {q0,q1,q2,q3,qn1} F = {q3} : q0,a,qn1 q1,b,[q0 q2 q3] q2,c,[q2 q3] qn1,a,[q0 q1] (qn1) qn1,b,[q0 q2 q3] Criando um novo estado qn2=[q0 q2 q3]: Q = {q0,q1,q2,q3,qn1,qn2} F = {q3,qn2} : q0,a,qn1 q1,b,qn2 q2,c,[q2 q3] qn1,a,qn1 qn1,b,qn2 qn2,a,[q0 q1] (qn1) qn2,c,[q2 q3] Criando um novo estado qn3=[q2 q3]: Q = {q0,q1,q2,q3,qn1,qn2,qn3} F = {q3,qn2,qn3} P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 3

: q0,a,qn1 q1,b,qn2 q2,c,qn3 qn1,a,qn1 qn1,b,qn2 qn2,a,qn1 qn2,c,qn3 qn3,c,qn3 Podemos eliminar os estados q1, q2 e q3, pois são inacessíveis (q0 transita para qn1, e a partir dele temos apenas transições entre estados novos). Assim, o autômato final seria: Q = {q0,qn1,qn2,qn3} F = {qn2,qn3} : q0,a,qn1 qn1,a,qn1 qn1,b,qn2 qn2,a,qn1 qn2,c,qn3 qn3,c,qn3 b) Demonstre que o autômato que você especificou é (ou não é) o autômato mínimo capaz de reconhecer a linguagem em questão. Adicionando o "trap state": P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 4

Estados não-finais Estados finais (0,1,T) (2,3) Expandindo com (b): (0,T) (1) (2,3) Expandindo com (a): (0)(T) (1) (2)(3) Como todos os estados são distinguíveis, o autômato já era mínimo. 3. [1.5 Pontos] Lema do Bombeamento A linguagem L = {ww w {0,1}*} é regular? Mostre por quê. A linguagem L é formada por todas as cadeias de 0's e 1's (possivelmente vazia) que consistem na concatenação de duas subcadeias idênticas. Supondo que L seja regular, então existe um autômato finito com n estados que a reconhece. Para verificar a validade do lema do bombeamento, iremos considerar a cadeia w = 0 n 1 n 0 n 1 n, que satisfaz uma das condições do lema (w L e w >= n). Bastaria mostrar que não há nenhuma partição possível de w que respeite todas as condições do lema. Vamos então argumentar que, para todas as maneiras de dividir w em três partes xyz (onde xy n e y 1), existe pelo menos um valor para i 0 que de modo que xy i z L. Para a cadeia w escolhida, a subcadeia xy é necessariamente composta apenas de 0's já que devemos observar a condição xy n e sabemos que w=0 n 1 n 0 n 1 n. Qualquer partição incluindo 1 extrapola o limite da condição. Portanto, para xy n, a subcadeia y só pode ser composta de um ou mais 0's. Ao "bombear" essa subcadeia com qualquer valor de i 1, a primeira metade da cadeia w ficará diferente da (ou desbalanceada em relação à) segunda metade, o que implica que a nova cadeia gerada não irá pertencer à linguagem. Portanto, o lema do bombeamento não se aplica, e podemos concluir que L não é regular. A pista clara de que L não é regular está no balanceamento das cadeias que a ela pertencem (formadas pela exata repetição de uma subcadeia de módulo igual à metade do módulo da cadeia completa). Este exemplo de linguagem não regular foi repetidas vezes mencionado em sala ou em exercícios. A maior fonte de erros da questão (menor índice de pontuação da prova) foi a interpretação incorreta da expressão L=ww. A maioria não percebeu que se trata de uma cadeia simétrica (duas cadeias w repetidas). P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 5

4. [1,5 Pontos] Conversão de Autômato Finito para Gramática Regular e Expressão Regular Seja o seguinte Autômato Finito AF: a) Escreva uma Gramática Regular à Direita que expresse exatamente a mesma linguagem que AF reconhece. S 0A A 0B B 0B B 1C C 0B C 1D D 0B D 1D D b) Escreva uma Expressão Regular que represente o padrão de cadeias pertencentes a esta linguagem. Exemplo de Respostas Corretas Conferidas no JFLAP: 000*1(00*1)*1(1 00*1(00*1)*1)* 00(0 10 111*0)*111* 000*1(0*1)*1(00*1(0*1)*1)* Algumas respostas para a expressão regular foram extremamente elegantes. Houve no entanto um número surpreendentes de respostas erradas para a GLR à direita, onde não aparecia regra com terminais apenas (para terminar a derivação). 5. [1,5 Pontos] Minimização de Autômatos Seja o Autômato Finito AF: P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 6

Mostre que/se ele pode ser minimizado para um autômato AFmin, capaz de reconhecer exatamente a mesma linguagem que ele. (Se sua resposta for positiva, construa AFmin.) Adicionando o "trap state": Verificando os estados distinguíveis: Não finais Finais (0,1,2,3,4,5,T) (2,6) Expandindo com 'b': (0,3,4,T) (1,5) (2,6) Expandindo com 'a': (0,3,4) (T) (1,5) (2,6) Expandindo com 'a': (0,3,4) (T) (1) (5) (2,6) Como não é possível fazer mais distinções entre os grupos, os novos estados para o autômato mínimo são: q0 (0,3,4) q1 (1) q2 (5) q3 (2,6) A maioria das respostas, surpreendentemente (face a outra questão que já envolvia conhecimento de minimização de autômatos) apresentou autômatos que não correspondem ao original (não mínimo). Não distinguiram q1 e q5 P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 7

(distintos para a depois de separarmos o trap ). Como resultado, aceitaram subcadeias (aa)+ depois de um b (o que não é autorizado pelo autômato original). 6. [1,5 Pontos] Conversão LR para LL Qual o procedimento de conversão de uma linguagem linear à direita para uma linguagem linear à asquerda? Ilustre a sua resposta utilizando uma linguagem regular de sua escolha. O procedimento consiste em encontrar a gramática regular à direita (GRD) que gera a linguagem reversa (L rev ), pois a partir dela podemos transformar as suas regras para convertê-la na GRE que gera L, da seguinte forma: para cada regra, com e (V- ), crie uma regra ' ' para cada regra, com (V { }), crie uma regra ' Por exemplo, seja a GRD abaixo para a linguagem L = a + b + : S as S B B bb B b Nesse caso, L rev = b + a +. Uma possível GRD para gerar L rev seria: S bs S A A aa A a Ao transformar essa GRD em GRE, obtemos uma gramática que gera (L rev ) rev = L: S' S'b S' A' A' A'a A' a Esta foi a questão mais fácil da prova. A maioria das respostas às quais não foi dada pontuação cheia da questão tinha problemas na apresentação do algoritmo ou procedimento de conversão. A correção tolerou algumas imprecisões ou variações em relação ao algoritmo acima **se** a ilustração estivesse correta. P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 8