Prova 1 de INF1626 Linguagens Formais e Autômatos

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

Download "Prova 1 de INF1626 Linguagens Formais e Autômatos"

Transcrição

1 Prova 1 de INF1626 Linguagens Formais e Autômatos Guia de correção proposto pelos professores (Clarisse e Bruno) Algumas das questões a seguir admitem várias respostas corretas. Este documento apenas dá exemplos de respostas consideradas corretas. Caso você tenha dado uma resposta diferente da apresentada aqui para uma questão qualquer e não tenha obtido o total de pontos da questão, compare as soluções e procure na diferença o motivo da perda de pontos. A pontuação das questões e critério de correção adotado estão no final. Questão 1 Seja a EBNF abaixo, descrevendo parte das regras sintáticas para expressar a definição de funções ('functions') na linguagem de programação C. Para facilitar o seu entendimento, quaisquer símbolos precedidos por '\' identificam um caso de símbolo reservado da própria EBNF (por exemplo '>', '<','[',']', etc.) que também faz parte das expressões válidas para a definição de funções em C (por exemplo \< ::= <, \{ ::= {, e assim por diante). <function> ::= <type> <literal> ([<params>]) \{ {<declarations>} \} <params> ::= <type> <literal> <type> <literal>; <params> <declarations> ::= <type> <literal>; <literal> = <value>; <literal>; <value> ::= TRUE FALSE <literal> {<number>} <type> ::= bool int <literal> ::= {<letter>} <letter>{<number>}[<literal>] <number> ::= <letter> ::= a b c d e f g h i j k l m n o p q r s t u v w x y z ** Lembrete: Na notação acima, '[ ]' é o indicador de opcionalidade; '{ }' é o indicador de repetição de 1 a n vezes; '< >' é o indicador de símbolo não-terminal; '::=' é o indicador de produção; ' ' é o indicador de alternativas de produção para um mesmo não-terminal. (a) Utilizando a notação α β onde: α é um símbolo não-terminal é o indicador de produção (ou reescrita) do símbolo não-terminal à sua esquerda e β é uma cadeia de símbolos terminais ou não-terminais separados por um espaço em branco (por exemplo 'a B', ou 'a b A', ou 'a B A', etc.) escreva as regras de produção de uma gramática que define exatamente a mesma linguagem que a EBNF acima (ou seja, que define quais são as sentenças sintaticamente corretas que podem ser usadas para expressar 'function' em C). Para simplificar, vamos admitir as seguintes duas regras correspondentes às definições de <number> e <letter>, respectivamente: Number -> 0..9 Letter -> a..z 1. Letter a..z 2. Number Letters Letter Letter Letters 4. Numbers Number Number Numbers 5. Literal Letters Letter Numbers Letter Numbers Literal 6. Type bool int 7. Value true false Literal Numbers 8. Declaration Type Literal ; Literal = Value ; Literal ; 9. Declarations Declaration Declaration Declarations

2 10. Params Type Literal Type Literal ; Params 11. Function Type Literal ( ) { Declarations } Type Literal ( Params ) { Declarations } A mesma gramática acima pode ser escrita assim: 1. A a..z 2. B Z A A Z 4. Y B B Y 5. L Z A Y A Y L 6. T bool int 7. V true false L Y 8. X T L ; L = V ; L ; 9. D X X D 10. P T L T L ; P 11. S T L ( ) { D } T L ( P ) { D } Estão também implicitamente definidos nas duas gramáticas: O vocabulário da linguagem: a..z, 0..9, bool, int, true, false, (, {, }, ), =, ; O símbolo inicial: Function (ou S) Os símbolos não-terminais: Letter (ou A), Number (ou B), Letters (ou Z), Numbers (ou Y), Literal (ou L), Type (ou T), Value (ou V), Declaration (ou X), Declarations (ou D), Params (ou P) Uma versão regular para a gramática seria: Literal a..z a..z Literal' Literal' a..z Literal' 0..9 Literal' a..z 0..9 Type bool int Value true false a..z a..z Literal' Literal' Declarations bool Declarations' int Declarations' a..z Literal'' a..z Literal''' Declarations' a..z Literal'' 0..9 Literal'' a..z D 0..9 D Literal'' a..z Literal'' 0..9 Literal'' a..z D 0..9 D D D ; } ; Declarations Literal''' a..z Literal''' 0..9 Literal''' a..z V 0..9 V V = V' V' true D false D a..z D a..z Literal'' 0..9 D 0..9 Literal'' Params bool Literal int Literal bool Literal'''' int Literal'''' Literal'''' a..z Literal'''' 0..9 Literal'''' a..z P 0..9 P P P ; Params ; R Function bool F int F F a..z F 0..9 F a..z Q 0..9 Q Q ( Params R ) G G { Declarations (b) A gramática que você propôs em (a) é regular? Por quê?

3 A primeira gramática ilustrada (em suas duas versões) não é regular porque as reescritas definidas pelas regras (cadeias do lado direito) violam uma ou mais das restrições que caracterizam as regras α β das linguagens regulares: 1. α = 1 2. β tem no máximo 1 símbolo não terminal 3. o padrão das cadeias à direita da regra é t T (ou alternativamente T t) ou t, para t=símbolo terminal e T=símbolo não-terminal Obs: Alguns autores não aceitam a alternativa apontada para (3), acima. A segunda gramática ilustrada é regular porque atende às restrições 1, 2 e 3. (c) No autômato mostrado da Figura 1, abaixo, o arco declarations é uma abreviação de todas as e somente as concatenações de símbolos autorizadas pela regra de expansão de declarations (<declarations> ::= <type> <literal>; <literal> = <value>; <literal>;) na EBNF acima. Portanto, o que está omitido por este arco é perfeitamente equivalente ao que está explícito na EBNF. A abreviação está sendo feita para simplificar a questão. Figura 1: Autômato de referência para as perguntas c1,c2,c3 e c4 c1: Este autômato é um autômato finito? A resposta para alunos que apresentaram gramáticas não regulares e corretas em 1a é que, se houver uma gramática regular que descreva todas as e somente as concatenações de símbolos autorizadas pela regra de expansão de declarations (<declarations> ::= <type> <literal>; <literal> = <value>; <literal>;) na EBNF acima, então pode-se dizer que o autômato completo da Figura 1 é finito. Caso contrário, não é. Para alunos que apresentaram gramáticas regulares corretas em 1a a resposta é que o autômato é finito porque, como demonstrado em 1a, a expansão de declarations é uma linguagem regular. c2: É determinístico? Por quê? A resposta para alunos que apresentaram gramáticas não regulares e corretas em 1a é que, tal como apresentado na Figura 1 (i. e. sem considerar os estados e transições correspondentes a declarations ), o autômato é determinístico porque não existe, entre os seus 8 estados explícitos, nenhum para o qual haja duas transições definidas para o mesmo símbolo terminal e também não há arcos λ (lambda), correspondendo a transições com cadeias vazias. Sobre a parte abstraída como declarations, o sub-autômato que processa as cadeias de símbolos corretas será

4 determinístico se não houver, para seus n estados definidos, nem arcos λ, nem duas transições determinadas por um mesmo símbolo (terminal, se a gramática for regular, ou não-terminal, se a gramática não for regular). Alunos que apresentaram gramáticas regulares em 1a, resta saber se a gramática é determinística ou não. c3: Pode ser minimizado? Como? (Se sua resposta for positiva, desenhe o autômato mínimo.) A parte inicial do autômato, que garantidamente corresponde a um sub-autômato finito e determinístico, pode ser minimizada como mostrado na Figura 1A. O autômato foi desenhado no JFLAP e a legenda é: b=bool; i=int; l=letter; n=number. Os rótulos do autômato da Figura 1a correspondem aos estados da Figura 1 (0 =Q0, 1=Q1, etc.). Figura 1A: Autômato minimizado para a parte inicial do autômato da Figura 1 c4: O autômato da Figura 1 reconhece a mesma linguagem que a especificada pela EBNF acima? Se não reconhece, que modificações são necessárias para que passe a reconhecer? Considerando que declarations gera todas as cadeias corretas conforme especificado na EBNF da questão, resta saber se os estados que precedem q6 e sucedem q7 geram os símbolos especificados pela regra 11 da gramática apresentada na questão 1a: 11. Function Type Literal ( ) { Declarations } Type Literal ( Params ) { Declarations } O autômato da Figura 1 não gera expansões corretas para a parte em negrito da regra 11, acima. Note que, por exemplo, ele aceita uma sentença como int ab1 ( ) { } que não é aceita pela EBNF apresentada. Outro problema é a colocação correta do ;, que só deveria aparecer caso houvesse uma lista de mais de um parâmetro para a função. Com um único parâmetro, depois do literal deveria seguir um ). Uma forma de corrigr o autômato da Figura 1 seria o que aparece na Figura 1B:

5 Figura 1B: Autômato corrigido para processar listas de parâmetros corretamente (d) A sentença "int f (bool b) {a=1; b=a; return}" é sintaticamente correta pela EBNF apresentada acima? Se não for, você conseguiria adicionar ou retirar um único símbolo na sentença em questão fazendo então com que ela se torne sintaticamente correta? Mostre como. A sentença em questão não é correta. Para corrigi-la bastaria acrescentar um ; antes de fechar a chave: "int f (bool b) {a=1; b=a; return; }". (e) A expressão regular (letter* + number*)* = true + false + number* denota corretamente um tipo (não necessariamente todos os tipos) de declaração ('declarations') sintaticamente correta da linguagem C pela EBNF acima? Se não denota, por que não denota? Há como corrigi-la para que denote? Como? O tipo de declarations em questão é <literal> = <value>. A ausência de ; no final não é o principal da questão. Para este tipo de declarations, a expressão acima tem dois problemas. Primeiro, ela a expansão da cadeia equivalente a literal permite vários problemas: literais iniciados por uma cadeia de letras, seguida de números, ou iniciados por números, ou até mesmo literais vazios (que é o que o operador de Kleene denota). Uma denotação correta para esta parte seria: letter letter* + letter number (number + letter number)* letter*. O segundo problema é que o lado direito da equação (o que vem depois de = ) admite como alternativa uma iteração de zero números (ou seja, uma cadeia vazia). Isto tampouco funciona. A correção desta parte seria: = true + false + number number*. A notação adotada na expressão regular desta questão é: a + b para denotar a OU b a * para denotar a repetição de 0..N instâncias de a (a + b)* para denotar a repetição de 0..N instâncias de a ou b Para simplificar, estamos também adotando as seguintes definições: letter* denota 0..N letras (a..z) concatenados number* denota 0..N algarismos (0..9) concatenados

6 Questão 2 Seja L uma linguagem que denota expressões aritméticas binárias com operadores infixos para a soma, subtração, multiplicação e divisão de operandos inteiros, e que admite o uso de parênteses balanceados para priorizar o cálculo de parcelas da expressão. São exemplos de expressões sintaticamente corretas em L as listadas a seguir: 1. ( ) / / 7 ou então ( / 7) ((100 - (45 / 2)) * (67 / (23 + 8))) São exemplos de expressões sintaticamente incorretas em L as listadas a seguir: (7-2 / ) 4 ou então 3 + (7-2 ) / 4) ( -7) 6. * (30 + (15 3)) Apresente uma gramática de tipo 2 que gere essa linguagem. Uma possibilidade é a gramática a seguir. Mas há outras, claro. 1. S N O N S O S S O N N O S (S) 2. N N 3. O + - / * Questão 3 O Lema do Bombeamento diz que, para toda linguagem regular LR à qual pertençam infinitas sentenças, existe uma constante p tal que, sendo w uma sentença qualquer de LR, existe uma partição w xyz desta sentença tal que: y 1 xy p qualquer w xy*z também pertence a LR (a) A afirmação a seguir é consistente com o Lema do Bombeamento? SIM, é consistente. Nesta interpretação, não há qualquer garantia de que p seja o comprimento mínimo para o bombeamento. Porém, o lema não depende deste comprimento mínimo. Para qualquer linguagem LR reconhecida por um autômato finito determinístico AFD tal como o apresentado na Figura 2: p é o número de estados do AFD; y é a menor cadeia não nula aceita pelo sub-autômato que tem qn como estado inicial e final (veja retângulo pontilhado na Figura 2); x é a cadeia de símbolos derivada pelas transições previstas entre q0 e qn; e z é a cadeia de símbolos derivada pelas transições previstas entre qn e qm. Figura 2: AFD de referência para a questão 3.

7 (b) Utilize o Lema do Bombeamento para mostrar que uma das duas linguagens a seguir não é regular: L = a n! para n > 0 L = a n + b m para n, m > 0 e n m Seja P a assertiva para uma sentença w qualquer de L verifica-se o Lema do Bombeamento e Q a assertiva L é uma linguagem regular. A tabela de verificação para P Q é: P Q P Q V V V F V F F F V V F V P é condição necessária mas não suficiente para L ser regular Assim, se existir uma sentença w de L para a qual o Lema do Bombeamento não se verifique, L não é regular. Se existir, L pode ser regular ou não. No caso de L=a n!, para uma cadeia w qualquer de L, se w=xyz então xz tem de pertencer também a L (caso de zero iterações da cadeia y) e portanto xz = n!. Seja n=2 (cadeia aaaa) o xyz = 2! o xz = n! e n<2 (já que retiramos a cadeia y) Se n=1 então xz = 1! (cadeia a ) => y =2!-1!=1 Ora, iterando y duas vezes teríamos: 1!+2*1=m!=3 Se n=0 então xz = 0! (cadeia vazia) => y =0!-1!=0 Ora, esta condição viola a restrição de que y >0 Como chegamos a uma inverdade nas duas hipóteses acima, concluímos que existe pelo menos uma sentença w de L para a qual o Lema do Bombeamento não se aplica. Ou seja, L não é uma linguagem regular. Esta mesma situação ocorre com outras cadeias de L, como se vê a seguir: Seja n=3 (cadeia aaaaaaaaa) o xyz = 3! o xz = n! e n<3 (já que retiramos a cadeia y) Se n=2 então xz = 2! (aaaa) => y =3!-2!=5 Ora, iterando y duas vezes teríamos: 2!+2*5=m!=14 Se n=1 então xz = 1! (a) => y =3!-1!=8 Ora, iterando y duas vezes teríamos: 1!+2*8=m!=17 No caso de L, há duas respostas possíveis: a) apontar que o uso de + (ou) na definição da linguagem torna a ocorrência de cadeias alternativa e independente, anulando a possibilidade de haver a e b nas cadeias bem formadas. Logo a linguagem seria cabalmente regular, pois uma das alternativas sempre teria zero ocorrência daqueles símbolos. Havia um erro de impressão nesta questão que foi corrigido em sala de prova pelos professores.

8 b) apontar que se o + for interpretado como concatenação entre cadeias de a e b, o que daria sentido não trivial à restrição, as sentenças válidas têm cadeias de a n b m para n,m > 0 e n m. Há duas situações a examinar: ou n>m ou n<m. Se w=a n b m e n>m (i.e. há mais a do que b em w) então poderíamos: a) bombear qualquer y para w=xyz se y=aa* contanto que: o A extração de aa* (zero iterações de y) não gerasse uma cadeia que não pertence a L. Porém, isto não é possível porque: Se y=a, o lema não se aplica para a cadeia w=a n b n-1 Exemplo: w=aab ou w=aaabb ou w=aaaabbb e assim por diante Se y=aaa* e y =k, o lema não se aplica para a cadeia w=a k+n b n Exemplo: seja k=2 w=aaab ou w=aaaabb ou w=aaaaabbb e assim por diante b) bombear qualquer y para w=xyz se y=ab contanto que: o A extração de ab (zero iterações de y) não gerasse uma cadeia que não pertence a L. Porém, isto não é possível porque: Se y=ab, o lema não se aplica se m=1, pois a extração do único b da cadeia w levaria a cadeias de a, somente, que não atendem às restrições de L. c) bombear qualquer y para w=xyz se y=bb* contanto que: o A extração de bb* (zero iterações de y) não gerasse uma cadeia que não pertence a L. Porém, isto não é possível porque: Se y=b a extração de y não funcionaria para cadeias a n b m se m=1 Se y=bbb* se y =k, o lema não se aplica para cadeias do tipo w=a k+n b k Exemplo: k=1: a n>1 b; k=2: a n>2 bb; e assim por diante. Como chegamos a impossibilidades nas três hipóteses acima, concluímos que existem sentenças w de L para a qual o Lema do Bombeamento não se aplica. Ou seja, L não é uma linguagem regular. OBS: A mesma conclusão pode ser atingida explorando-se a opção de n<m, examinando-se as mesmas hipóteses.

9 As provas estão sendo corrigidas pelos professores e deverão ser entregues ou no dia 13 ou no dia 15 de setembro, próximos. Alunos que desejem revisão de correção devem solicitá-la por escrito, em folha contendo, para cada questão cuja correção está sendo posta em dúvida: o motivo do questionamento (i.e. uma justificativa para que seja dada à questão uma pontuação diferente da que foi dada pelos professores) anexo com a prova (tanto as folhas de enunciado, quanto as de resposta) o institucional do aluno (i.e. no domínio puc-rio.br ; os professores não se responsabilizam pela entrega de mensagens fora deste domínio). A resposta ao pedido de revisão será encaminhada por ao aluno. Atenção: o pedido de revisão obviamente não pode ser encaminhado por (pois as folhas de prova têm de estar anexas).

INF1626 Linguagens Formais e Autômatos em

INF1626 Linguagens Formais e Autômatos em Revisão para a P1 Pontos Selecionados da Matéria Profa. Clarisse S. de Souza 1 Minimização de Autômatos O que é um Autômato Mínimo? Dado um autômato qualquer, como saber se ele é um Autômato Mínimo? E

Leia mais

Prova 2 de INF1626 Linguagens Formais e Autômatos

Prova 2 de INF1626 Linguagens Formais e Autômatos 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

Leia mais

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

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes Questões do POSCOMP 2011 A resposta certa está assinalada em vermelho. Por que é correta e por que as demais alternativas são incorretas?

Leia mais

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

Lema do Bombeamento Operações Fechadas sobre LR s Aplicações a n Lema do Bombeamento Operações Fechadas sobre LR s Aplicações (H&U, 969),(H&U, 979), (H;M;U, 2) e (Menezes, 22) Lema do Bombeamento para LR Como decidir que uma linguagem é ou não regular? Não bastaria

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha

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

Prova 1 de INF1626 Linguagens Formais e Autômatos

Prova 1 de INF1626 Linguagens Formais e Autômatos Prova 1 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

Leia mais

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

Lema do Bombeamento Operações Fechadas sobre LR s Aplicações a n Lema do Bombeamento Operações Fechadas sobre LR s Aplicações (H&U, 969),(H&U, 979), (H;M;U, 2) e (Menezes, 22) Lema do Bombeamento para LR Como decidir que uma linguagem é ou não regular? Não bastaria

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

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

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

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS Acadêmico: Cleison Vander Ambrosi Orientador: José Roque Voltolini da Silva Roteiro da Apresentação Introdução Motivação

Leia mais

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

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo Gramática regular 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 / 41 Frase do dia Através de três métodos

Leia mais

SCC-ICMC-USP. Trabalho em Grupo 1 SCC-0205

SCC-ICMC-USP. Trabalho em Grupo 1 SCC-0205 Trabalho em Grupo 1 SCC-0205 2 o. Semestre de 2010 Professor: João Luís G. Rosa - e-mail: joaoluis@icmc.usp.br Monitor PAE: Fernando Alva - e-mail: falva@icmc.usp.br versão 1-23/8/2010 1 Objetivo Desenvolver

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

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

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

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

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

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

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

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

Folha 3 - Análise léxica

Folha 3 - Análise léxica Folha 3 Análise léxica 1. Escrever um programa em FLEX que permite contar o número de ocorrências de uma cadeia de caracteres contida num ficheiro de texto. 2. Escrever um programa em FLEX que permite

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

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

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

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

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

Lema do Bombeamento Linguagens Livres de Contexto

Lema do Bombeamento Linguagens Livres de Contexto Lema do Bombeamento Linguagens Livres de Contexto Agenda Lema do Bombeamento para CFL s Motivação Teorema Prova Exemplos de provas usando o lema 0 Bombeando FA s 1 x y z 1 0 1 0 Strings de comprimento

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

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

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

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO LINGUAGEM LIVRE DE CONTEXTO As Linguagens Livres de Contexto é um reconhecedor de linguagens, capaz de aceitar palavras corretas (cadeia, sentenças) da linguagem. Por exemplo, os autômatos. Um gerador

Leia mais

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática

Leia mais

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

a * Lema do Bombeamento Linguagens regulares e não-regulares a * Lema do Bombeamento Linguagens regulares e não-regulares 1 Lema do Bombeamento para LR Como decidir que uma linguagem não é regular? Toda linguagem regular satisfaz o Lema do bombeamento (LB). Lemas

Leia mais

Gramática. Gramática. Gramática

Gramática. Gramática. Gramática Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática

Leia mais

O que é Linguagem Regular. Um teorema sobre linguagens regulares. Uma aplicação do Lema do Bombeamento. Exemplo de uso do lema do bombeamento

O que é Linguagem Regular. Um teorema sobre linguagens regulares. Uma aplicação do Lema do Bombeamento. Exemplo de uso do lema do bombeamento O que é Linguagem Regular Um teorema sobre linguagens regulares Linguagem regular Uma linguagem é dita ser uma linguagem regular se existe um autômato finito que a reconhece. Dada uma linguagem L: É possível

Leia mais

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 09 Gramáticas e Linguagens Livres de Contexto (Hopcroft, 2002) 18/01/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Classes Gramaticais Linguagens

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

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

Autómatos de Pilha e Linguagens Livres de Contexto

Autómatos de Pilha e Linguagens Livres de Contexto Folha Prática Autómatos de Pilha e Linguagens Livres de Contexto 1 Autómatos de Pilha e Linguagens Livres de Contexto Autómatos de Pilha Não Determinísticos (APND) 1. Considere a seguinte tabela de transição

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisão

Leia mais

Linguagens Formais e Problemas de Decisão

Linguagens Formais e Problemas de Decisão 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

Leia mais

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

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam Linguagens Naturais LINGUAGENS FORMAIS Definições Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam São muito ricas, mas também ambíguas e imprecisas. Ex.: João

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

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

1 Expressões Regulares e Linguagens

1 Expressões Regulares e Linguagens 1 1 Expressões Regulares e Linguagens Linguagem de Programação o Pesquisa em Textos o Componentes de Compiladores Intimamente Relacionadas com AFNDs São capazes de definir todas e somente as linguagens

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

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1 AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1 AF NÃO-Determinístico (AFND) Consideremos uma modificação no modelo

Leia mais

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 1. Linguagens Regulares Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br www.each.usp.br/lauretto

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

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Análise Léxica A primeira fase da compilação Recebe os caracteres de entrada do programa e os converte em um fluxo de

Leia mais

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1 AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1 AF NÃO-Determinístico (AFND) Consideremos uma modificação no modelo

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 Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

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 do Rio de Janeiro Departamento de Ciência da Computação

Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação Não são aceitas respostas sem justificativa. Explique tudo o que você fizer. Linguagens Formais o semestre de 999 Primeira Prova

Leia mais

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

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.

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

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

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2) SCC-505 - Capítulo 2 e (versão 2) 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 http://www.icmc.usp.br/~joaoluis

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

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

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

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

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 05 AFND: com e sem movimentos vazios 05/12/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula passada... Reconhecedores genéricos Autômatos finitos

Leia mais

Autómatos Finitos Determinísticos (AFD)

Autómatos Finitos Determinísticos (AFD) Folha Prática Autómatos Finitos 1 Autómatos Finitos Determinísticos (AFD) 1. Determine e implemente computacionalmente um AFD que aceita todas as cadeias de cada uma das seguintes linguagens sobre o alfabeto

Leia mais

Apêndice A. Pseudo-Linguagem

Apêndice A. Pseudo-Linguagem Apêndice A. Pseudo-Linguagem Apostila de Programação I A.1 Considerações Preliminares Os computadores convencionais se baseiam no conceito de uma memória principal que consiste de células elementares,

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

Folha 4.2 Análise sintática ascendente

Folha 4.2 Análise sintática ascendente Folha 4.2 Análise sintática ascendente 1. Considere a gramática G = (S, T, P, S) que representa o cabeçalho de métodos na linguagem Java (sem os modificadores de acesso), onde T = {S, Type, Param, Exception,

Leia mais

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA) Linguagens Formais e Autômatos (LFA) Aula de 28/08/2013 Sobre as respostas das duplas aos exercícios cios propostos 1 Fatos extraídos dos scores das duplas Tempo médio de resposta - A série inteira de

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

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

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

Folha 2 Autómatos e respectivas linguagens

Folha 2 Autómatos e respectivas linguagens Folha 2 Autómatos e respectivas linguagens 1. Considere a linguagem L formada por todas as sequências sobre o alfabeto { 0, 1, 2 } cujo somatório seja divisível por 3. Construa um autómato finito A que

Leia mais

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

Aula de 28/10/2013. sticas; Implementação. em Ruby Linguagens Formais e Autômatos (LFA) Aula de 28/10/2013 Propriedades Formais Relevantes das LLC s; Lema do Bombeamento; Linguagens LL e LR; Gramáticas LC Determinísticas sticas; Implementação em Ruby 1

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

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

LR's: Lema do Bombeamento e Propriedades de Fechamento

LR's: Lema do Bombeamento e Propriedades de Fechamento Linguagens Formais e Autômatos LR's: Lema do Bombeamento e Propriedades de Fechamento Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hfp://dcc.ufmg.br/~nvieira) Introdução

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

Expressões Regulares e Gramáticas Regulares

Expressões Regulares e Gramáticas Regulares Universidade Católica de Pelotas Escola de informática 053212 Linguagens Formais e Autômatos TEXTO 2 Expressões Regulares e Gramáticas Regulares Prof. Luiz A M Palazzo Março de 2007 Definição de Expressão

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

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Dados em Algoritmos Quando escrevemos nossos programas, trabalhamos com: Dados que nós fornecemos ao programa Dados

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

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

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

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Tipos de variáveis comuns em linguagens em geral Identificadores

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

Gramáticas ( [HMU00], Cap. 5.1)

Gramáticas ( [HMU00], Cap. 5.1) Gramáticas ( [HMU00], Cap. 5.1) Vimos que a seguinte linguagem não é regular L = {0 n 1 n n 0} Contudo podemos fácilmente dar uma definição indutiva das suas palavras: 1. ɛ L 2. Se x L então 0x1 L L é

Leia mais

Análise Sintática II: Analisadores Descendentes Preditivos

Análise Sintática II: Analisadores Descendentes Preditivos Análise Sintática II: Analisadores Descendentes Preditivos Exercícios LL(1) = Left to right, Left-most derivation, 1 símbolo look-ahead 1. LL(1): definição 2. Para toda produção A -> α β Se β =>* λ, então

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 Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

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

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

Leia mais

Compiladores Aula 4. Celso Olivete Júnior.

Compiladores Aula 4. Celso Olivete Júnior. Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula de hoje... Revisão: gramáticas Relações em uma gramática: Cabeça, Último, Primeiro (First) e Seguinte (Follow) Capítulo 4 (seção 4.4.2) do livro

Leia mais

a * Expressões Regulares (ER) Conversão de AF para ER no JFLAP Equivalências entre AFD, AFND, AF-, ER, GR

a * Expressões Regulares (ER) Conversão de AF para ER no JFLAP Equivalências entre AFD, AFND, AF-, ER, GR a * Expressões Regulares (ER) Conversão de AF para ER no JFLAP Equivalências entre AFD, AFND, AF-, ER, GR 1 Expressões Regulares (ER) Uma ER sobre um alfabeto é definida como: a) é uma ER e denota a linguagem

Leia mais

Estruturas de Dados em Python

Estruturas de Dados em Python Estruturas de Dados em Python Carlos Camarão de Março de 7 Introdução Na segunda parte do curso vamos aprender a programar com estruturas (ou coleções) de dados, em Python. Python é uma linguagem orientada

Leia mais

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

MAC-4722 Linguagens, Autômatos e Computabilidade Lista L3 MAC-4722 Linguagens, Autômatos e Computabilidade Lista L3 Athos Coimbra Ribeiro NUSP: ****** 3 de Abril de 26 Problema.46 (itens a,c, e d) Solução a) L = { n m n m, n } Usamos o lema do bombeamento para

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

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

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

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares 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

Algoritmos. Conceitos e Comandos

Algoritmos. Conceitos e Comandos Algoritmos Conceitos e Comandos Trabalho - Reposição Arquitetura Funcional do Computador Para próxima aula 16/03/2018 Valerá duas presenças. Variável Uma variável é um local na memória principal, isto

Leia mais

Expressões Regulares. Tiago Alves de Oliveira

Expressões Regulares. Tiago Alves de Oliveira Expressões Regulares Tiago Alves de Oliveira Introdução As expressões regulares consistem em uma maneira de representar um padrão de caracteres. Expressão Regular descreve um conjunto de cadeias de caracteres,

Leia mais

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

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000) Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q

Leia mais

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se

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