Draft-v Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra

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

Download "Draft-v Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra"

Transcrição

1 Gramáticas Independentes do Contexto Como vimos nos capítulos anteriores, apesar da classe das Linguagens Regulares serem particularmente bem comportadas tanto em termos de complexidade dos seus algoritmos associados, como em termos da decidibilidade, isto é da existência de algoritmos, da maioria dos seus problemas associados, as suas limitações de expressividade não permitem representar linguagens tão simples como a dos palíndromos de um dado alfabeto. este capítulo iremos introduzir a noção de gramática formal e com ela uma nova classe de linguagens formais: as Linguagens Independentes de Contexto. Definição. (Gramática Independente de Contexto ou CFG) Uma gramática independente de contexto, ou CFG (do inglês Context Free Grammar ), é um quadruplo ordenado hv,, P, i, emque V é um conjunto finito, não vazio que chamamos conjunto de símbolos não terminais; é um conjunto finito, não vazio que designamos por Alfabeto, ou por conjunto de símbolos terminais; P é um subconjunto finito, não vazio, de V ( [ V)? a que chamamos o conjunto das produções; com ( 2 V) designa o chamado símbolo inicial da gramática.. O funcionamento de uma CFG.. Derivação de uma palavra eja G = hv,, P, i uma CFG,,, 2 ( [ V)? e A 2 V. Dizemos que se deriva por G, num passo, de A e escrevemos A ) G se A! for uma produção de G. Da mesma forma dizemos que se deriva por G, emn passos, de, e escrevemos ) n G, se ) G, ) G 2,..., n- ), 09

2 para algumas palavras,..., n- 2 ( [ V)?. ejam, 2 ( [ V)?, dizemos se deriva de por G, e escrevemos se existir n>0tal que )? G ) n G. Definição.2 (linguagem definida por uma CFG) eja G = hv,, P, i uma CFG. A linguagem definida por G é L(G) ={w 2? )? G w}. Exemplo.3 Tomemos a linguagem L = {0 n n n 2 } que sabemos não ser uma linguagem regular. Esta é, no entanto, a linguagem gerada pela gramática G = h{}, {0, }, {! ",! 0},i. ormalmente, representamos, de forma muito mais legível, uma gramática, simplesmente pelo conjunto das suas produções, sendo o não terminal a primeira variável referida o símbolo inicial da gramática, desde que a diferenciação entre o conjunto dos símbolos terminais e o conjunto dos símbolos não terminais seja evidente. Da mesma forma, e para simplificar a leitura, representamos por A! 0 n o conjunto das produções {A! 0,A!,...,A! n } para um mesmo símbolo não terminal A. este caso, a gramática G seria apresentada como! " 0. A primeira produção,! ", estabelece que a palavra vazia, ", pertence à linguagem L. A segunda produção,! 0, estabelece que se tomarmos uma palavra da linguagem L e concatenarmos um 0 à esquerda e um a direita obtemos uma palavra de L. Para mostrar que L = L(G), comecemos por provar que L L(G). eja w 2L(G), isso significa que )? G w, ou seja ((9n) ) n G w). Provemos então por indução sobre n que w 2 L. e n = isso significa que só é aplicada uma produção, e o resultado é uma palavra de?, ora a única forma de uma só produção produzir uma palavra sem símbolos não terminais é a da produção aplicada ser! ", o que implica que w = ", e " 2 L. uponhamos então que, para qualquer palavra w, se ) n G w então w 2 L, e mostremos que então podemos concluir que se ) n+ G w 0 isso implica que w 0 2 L. Como n + 6=, podemos concluir qua a primeira produção aplicada não pode ser aquela que produz " pelo que temos: ) G 0 ) n G 0w 00 = w 0. Ou seja, temos ) n G w 00, para algum w 00. Mas, pela hipótese de indução, isso implica que w 00 2 L. Como w 0 = 0w 00, e w 00 2 L temos que w 0 2 L, obrigatoriamente, e, portanto, todas as palavras geradas pela gramática G são palavras da linguagem L. Falta, então, mostrar que todas as palavras da linguagem L são geradas por G, ou seja L L(G). Primeiro observemos que todas as palavras de L têm comprimento par, ou seja que para qualquer palavra w de L, w = 2n para algum n. Procedamos então por indução sobre o comprimento das palavras de L. e esse comprimento for 0, então a palavra em questão é a palavra vazia, ", que como vimos é gerada por G. uponhamos que todas as palavras de L de tamanho 2n são geradas por G esejaw uma palavra de L com w = 2(n + ). Mas então w = 0 n+ n+, portanto w = 0w 0 com 0

3 w 0 = 0 n n. Como w 0 = 2n estamos nas condições da hipótese de indução, pelo que podemos garantir que w 0 2L(G), ou seja )? G w 0. Mas então ) G 0 )? G 0w 0 = w, logo w 2L(G), o que termina a demonstração...2 Árvores de Derivação Uma outra forma de apresentar uma derivação de uma palavra por uma árvore é usando, o que se costuma designar por, uma árvore de derivação. Uma árvore de derivação é uma árvore, no sentido de um grafo, que tem como raíz o símbolo inicial da gramática. De cada símbolo não terminal E tem como filhos os nós que representam símbolos E i de uma produção da gramática! E 0 E E n. A palavra cuja derivação é representada pela árvore, é aquela constituída pelos símbolos que constam das folhas da árvore, lidas da esquerda para a direita. Consideremos, por exemplo, a seguinte gramática:! () + A A! 0. Uma árvore de derivação da palavra ( + 0) é: Exercício 34 ( +. Escreve gramáticas para as seguintes linguagens independentes de contexto: a) Linguagem formada pelos palíndromos de alfabeto {0, }. b) A linguagem complementar da linguagem da alínea anterior. c) a i b j c k : i 6= j _ j 6= k 2. Dada a gramática 0 )! ab ba A! a a baa B! b b abb. a) Identifica a linguagem que a gramática gera. b) Para a palavra aaabbabbba encontra uma derivação à esquerda. c) Para a mesma palavra encontra uma derivação à direita. d) Para a mesma palavra escreve uma árvore de derivação. * Exercício 35 Escreve uma CFG para a linguagem complementar de ww : w 2 {0, }?.

4 .2 implificação de gramáticas Lema.4 Dada uma CFG G = hv,, P, i, representando uma linguagem não vazia, podemos encontrar uma gramática G 0 = hv 0,,P 0,i em que, ((8A 2 V 0 )(9w 2? ) A )? G w). 0 Dem. Todos os símbolos não terminais A 2 V para os quais existe uma produção da forma A! w, para alguma palavra w 2?, têm claramente lugar em V 0. e a produção A! X X 2 X n existe em P, com os X i símbolos terminais ou outros símbolos não terminais que já se encontrem incluídos em V 0, isso faz com que possamos incluir A em V 0 também. O conjunto V 0 pode ser obtido como o fecho do processo atrás descrito. Depois de obtido V 0 podemos remover de P todas as produções em que tomem lugar símbolos não terminais não constantes de V 0, obtendo assim P 0. Lema.5 Dada um CFG G = hv,, P, i podemos encontrar uma gramática equivalente G 0 = hv 0,,P 0,i tal que para cada X 2 V 0 [ existem, 2 (V 0 [ )? tal que )? X. Dem. O conjunto V 0 [, pode ser construído por um processo iterativo. Colocamos, primeiramente, em V 0. e A é colocado em V 0 e A! 2 n, então adicionamos todas as variáveis de, 2,..., n a V 0, assim como adicionamos os terminais de, 2,..., n a 0. P 0 éo conjunto das produções que contêm símbolos somente de V 0 [ 0..3 Forma ormal de Chomsky Para muitas das demonstrações sobre as CFL que assentam sobre a sua representação por uma CFG é conveniente apresentar esta última sob uma forma binária. Essa forma é a chamada Forma ormal de Chomsky em que a gramática tem somente produções da forma A! BC em que B e C são símbolos não terminais; ou da forma A! a em que a é um símbolo terminal. e for o símbolo inicial, poderá haver uma produção da forma! ". Teorema.6 (Forma ormal de Chomsky) Qualquer linguagem independente do contexto admite uma gramática que a gera e que se encontra na Forma ormal de Chomsky (CF), ou seja, todas as suas produções são da forma A! BC ou A! a com A, B, C símbolos não terminais e a símbolo terminal, com uma eventual produção! " se for o símbolo inicial. Dem. eja G = hv,, P.i uma CFG. Começamos por introduzir um novo símbolo não terminal 0, fazemolo o novo símbolo inicial e acrescentamos uma produção 0!, sendo o símbolo inicial original. Isto garante que o símbolo inicial não ocorre em nenhum membro direito de uma produção da gramática. A gramática resultante é trivialmente equivalente à original. eguidamente eliminamos todas as produções-" não iniciais, ou seja toda as produções do tipo A! ", em que A 2 V e A não inicial. Para tal procedemos da forma seguinte. Para cada produção A! " (com A não inicial), removemos tal produção e para todas as outras produções, por cada ocorrência 2

5 do símbolo A no lado direito de uma produção (R! uav) acrescentamos uma produção em que essa ocorrência de A foi removida (R! uv). e a produção contiver somente A como membro direito da produção (R! A) então acrescentamos uma produção-" (R! ") a menos que essa produção já tivesse anteriormente sido alvo de remoção por este processo. É fácil ver que cada uma destas transformações preservam a linguagem definida pela gramática. o fim obtemos uma gramática equivalente à inicial sem produções-", a menos de uma eventual produção-" inicial. Eliminam-se as produções unitárias. Para cada produção da forma A! B, remove-seaprodução da gramática e para cada produção B! u acrescenta-se uma produção A! u, a menos que esta produção fosse uma que tivesse sido anteriormente removida por este processo. Estas transformações preservam a linguagem gerada pela gramática, pelo que no fim teremos uma gramática sem produções unitárias equivalente à gramática original. Finalmente rescrevem-se as produções para o formato desejado. Para cada produção da forma A! u u 2 u k, com k 3 sendo os u i símbolos não terminais ou símbolos terminais, substitui-se pelas produções A! u A,A! u 2 A 2,...,A k-2! u k- u k, com A i novos símbolos não terminais. Para cada u i 2, substituímos u i por um novo símbolo não terminal U i e acrescentamos a produção U i! u i. Mais uma vez, cada uma desta transformações preserva a linguagem aceite pela gramática, pelo que no fim do processo temos uma gramática equivalente à original, na Forma ormal de Chomsky. Exemplo.7 Consideremos a gramática seguinte, e utilizemos o processo descrito na demonstração anterior para obter uma gramática equivalente, na Forma ormal de Chomsky Introduzimos um novo símbolo inicial, Eliminamos o "! AA ab A! B B! b ". 0!! AA ab A! B B! b ". 0!! AA ab a A! B " B! b ". Agora temos que eliminar o " que acabamos de introduzir 0!! AA ab a A A A! B " B! b. 3

6 Claro que a produção! pode ser sumariamente eliminada. produções unitárias. Primeiro a produção 0! E podemos começar a eliminar Depois a produção A!, Finalmente a produção A! B, 0! AA ab a A A! AA ab a A A A! B B! b. 0! AA ab a A A! AA ab a A A A! B AA ab a A A B! b. 0! AA ab a A A! AA ab a A A A! B AA ab a A A b B! b. E podemos, introduzindo novos símbolos não terminais, obter a gramática pretendida, 0! AA UB a A A A! A U! a! AA UB a A A A! AA UB a A A b B! b..4 Ambiguidade de gramáticas Definição.8 (gramática ambígua) eja G uma CFG, diz-se que G é, ambígua se existir uma palavra w 2L(G) para a qual existam duas árvores de derivação diferentes (i.e. não isomorfas). Consideremos a seguinte gramática para a linguagem das palavras com alfabeto {0, } em que o número de 0 éomesmoqueonúmerode:! " 0 0 4

7 Para a palavra 000 2L(G) as duas seguintes árvores de derivação são válidas: 0 " 0 " 0 " 0 Portanto a gramática G é uma gramática ambígua. Isto não quer dizer que não seja possíver obter uma outra gramática G 0 não ambígua, para a qual L(G) =L(G 0 ). Com efeito, consideremos a gramática G 0 dada por! T R " T! A AB ABT R! B BA BAR A! C CA C! 0A 0 B! D DB D! B0 0 é uma gramática não ambígua e representa a linguagem pretendida. O truque, neste caso, consistiu em garantir a identificação, sem margem para ambiguidades, qual o caracter que vai finalizar o mais pequeno prefixo da palavra considerada que também pertence à linguagem. A demonstração que esta gramática é não ambígua assenta exactamente na demonstração que o mais pequeno prefixo não vazio que também tenha o mesmo número de 0 ede, ou é 0 (ou 0) ou é da forma 00 (respectivamente 00) emque éuma outra palavra da linguagem. Exercício 36 Provar que a gramática anterior é não ambígua. Mas em geral não é possível encontrar uma gramática não ambígua que represente uma dada linguagem independente de contexto. Definição.9 (linguagem ambígua) Uma linguagem independente de contexto diz-se ambígua se não for possível representá-la por uma gramática independente de contexto que seja não ambígua. A decisão se uma linguagem independente de contexto é ou não ambígua é, em geral, um problema não decidível pelo que não podemos esperar ter um método que, dada uma gramática independente de contexto, encontre uma gramática equivalente que não seja ambígua. A exibição de uma linguagem ambígua é uma tarefa muito mais delicada que a simples exibição de uma gramática ambígua, como se pode verificar pela construção apresentada por Hopcroft e Ullman [HU79]. Uma solução muito mais simples, será apresentada depois de estudado o Lema de Ogden??. 0 " 0 5

8 .4. Eliminação de ambiguidades Apesar da eliminação de ambiguidades ser uma tarefa particularmente difícil, quando não, como vimos atrás, completamente impossível, algumas técnicas permitem eliminar algumas ambiguidades comuns. Esta tarefa não se limita a satisfazer de alguma forma algum tipo de perfecionismo diletante, para muitas das aplicações de gramáticas, é imprescindível que estas não sejam ambíguas, porque isto, ou impede o funcionamento de algum tipo de analizador sintáctico (parser) ou, corresponde a algum tipo de ambiguidade na semântica que está associada à linguagem, o que pode ser inaceitável, como no caso da análise sintática de um compilador..4.. Estabelecimento de precedências Consideremos, por exemplo a linguagem das expressões aritméticas com inteiros, que para simplificar vamos considerar com um só digito. Esta pode ser facilmente descrita pela seguinte CFG! () O O! + -! Mas esta gramática é trivialmente ambígua. Basta considerar a palavra , everificarqueestatem duas diferentes árvores de derivação: 5 O + 4 O 3 A primeira corresponde à avaliação natural, com a multiplicação efectuada antes da adição, e a segunda corresponde à execução das operações pela ordem inversa. O que podemos fazer para evitar este tipo de ambiguidades é reescrever a gramática por forma a deixar explícita qual a ordem pela qual devem ser avaliadas as diversas operações. A esta operação é usual designar por estabelecimento de precedências para as operações. O resultado pode ser o exemplificado pela seguinte gramática. 5 O +! A F A! + - F! F F ()! O 3 6

9 .4..2 Avaliação da esquerda para a direita Mesmo utilizando a gramática anterior, alguma ambiguidades persistem. Como é o caso de , para a qual as duas árvores de derivação seguintes são válidas. F A + F 2 A + F 3 Agora, apesar de se tratar da mesma operação, a ambiguidade é a da ordem pela qual devem ser avaliadas as operações. À primeira àrvore corresponde uma avaliação da esquerda para a direita e à segunda o sentido inverso. Introduzindo mais umas variáveis podemos impedir que a recursão se faça indiferentemente à esquerda ou à direita, e portanto evitar este tipo de ambiguidade. A gramática resultante poderia ser então o seguinte.! FA F A! + - F! F 0 F F 0 F 0! ()! Esta gramática já não é ambígua. Este tipo de transformações, apesar de não ser, de forma alguma, uma solução universal para todas as gramáticas, até porque há linguagens intrinsecamente ambíguas, pode ser aplicada a um grande número de casos de linguagens de programação, sendo portanto uma técnica usual na construção de analisadores léxicos (parsers). Exercício 37 Considera a gramática do Exercício 34. Mostra que a gramática gera a linguagem das palavras de alfabeto {0, } com o mesmo número de 0 e. 2. Mostra qua a gramática é ambígua. 3. Escreve uma gramática não ambígua para a mesma linguagem. F A +.5 Gramáticas Regulares Definição.0 (gramática linear à direita ou à esquerda) eja G = hv,, P, i éumacfg.dizse que G é linear à direita se se todas as regras de G forem da forma A! B ou A!, para A e B não terminais e uma palavra de. Diz-sequeG é linear à esquerda se todas as regras de G forem da forma A! B ou A!. Em ambos os casos diz-se que G é uma gramática regular. F 2 A + F 3 7

10 A seguinte gramática para a linguagem das palavras com alfabeto {0, } que têm um número ímpar de 0s élinearàdireita. A! A 0B B! B 0A " e uma gramática G = hv,, P, i é linear à direita então a gramática G R que se obtem substituindo todas as produções da forma A! B por A! B élinearàesquerdael(g r )=L(G) R. Inversamente, se tivermos uma gramática linear à esquerda revertendo as produções temos uma gramática linear à direita para a linguagem reversa. Exercício 38 Mostra o resultado anterior. As gramáticas regulares correspondem a linguagens regulares. Teorema. e a linguagem L tem uma gramática regular, então L é regular. Dem. uponhamos que L = L(G) e G = hv,, P, i é linear à direita. Introduzindo novos não terminais, podemos modificar G de modo que todas as regras sejam da forma A! B ou A! ". eja G 0 = hv 0,,P 0,i a gramática resultante. A partir de G 0 podemos construir um DFA A = hv 0,,,, Fi tal que (A, )=B se A! B 2 P 0 e A 2 F se A! " 2 P 0. Por indução no tamanho duma palavra podemos mostrar que A )? se e só se qualquer não terminal A 2 V 0. Então em particular 2L(G 0 ) se e só se 2L(A). (A, ) 2 F para e L = L(G) e G = hv,, P, i é linear à esquerda consideramos a gramática reversa G R e obtemos um autómato para L(G R ). Revertendo este autómato temos um autómato finito para L(G). Para a gramática dada acima temos o seguinte DFA A = h{a, B}, {0, },, {A}, {B}i Inversamente, Teorema.2 Uma linguagem L regular tem uma gramática regular. A Dem. eja L = L(A) e A = hq,,, q 0,Fi um DFA. Construímos uma gramática G = hq,, P, q 0 i para L tal que P é constituído pelas regras q i! q j sempre que (q i, )=q j e q i! " se q i 2 F. 0 0 Por indução no tamanho duma palavra pode-se mostrar que q i )? se e só se 2L(q i ).Resulta que 2L(G) se e só se 2L(A). B.6 Lema da Repetição para CFL Para auxiliar a prova que uma linguagem não está em CFL, podemos recorrer a uma propriedade semelhante à encontrada para as linguagens regulares e que se traduziu no chamado Lema da Repetição (Teorema 5.8). Mais uma vez, o que se garante é que para palavras suficientemente grandes tem que haver um padrão para o qual todas as palavras desse padrão têm que pertencer à linguagem em causa. 8

11 Teorema.3 (Lema da repetição para CFL) eja L uma linguagem independente de contexto, então tem-se (9n)(8 )(9u, v, w, x, y)(8i) (( 2 L ^ n ^ = uvwxy ^ vwx apple n ^ vx =) ((i 0 =) uv i wx i y 2 L)))). (.) Dem. eja G uma gramática na forma normal de Chomsky (ver pag. 3), mostremos primeiro que se uma árvore de derivação não contém caminhos de comprimento maior a n, então as palavras derivadas têm que ter um comprimento inferior a 2 n. A demonstração segue por indução sobre n. o caso base, com n =, a proposição é trivial, pois a árvore de derivação não pode conter senão a derivação! com o símbolo inicial e um símbolo terminal. uponhamos então que n>. Então a primeira produção aplicada não pode ser senão do tipo! BC. e as árvores de derivação com raízes em A e B não contêm caminhos de comprimento superior a n -, então cada uma delas não pode gerar palavras de tamanho superior a 2 n-. Logo não poderia gerar palavras de tamanho superior a 2 n. eja G uma gramática na Forma ormal de Chomsky que representa a linguagem L, com m símbolos não terminais e seja n = 2 m. e 2L(L) e n, então como >2 m-, qualquer árvore de derivação de contém um caminho de comprimento pelo menos m +. eja P tal caminho. O caminho P tem m + 2 vértices em que todos, menos o último, são símbolos não terminais. Portanto, pelo princípio de Dirichlet (.), haverá pelo menos um símbolo não terminal, A, que ocorre pelo menos duas vezes em P. ejam v e v 2 vértices em P com o mesmo símbolo não terminal associado A, e supondo que v está mais próximo da raiz da árvore que v 2, sabemos que a distância de v ao símbolo terminal é, no máximo, m +. A sub-árvore T com origem em v, representa a derivação de uma palavra de tamanho, no máximo, 2 m. Isto porque nenhum caminho em T tem comprimento superior a m +. eja a palavra derivada em T. e T 2 for a árvore com origem em v 2 e 2 a palavra por si derivada, podemos escrever = ote-se que 3 e 4 não podem ser os dois ao mesmo tempo " porque a primeira produção em v tem que ser da forma A! BC, e a árvore T 2 está completamente contida numa das árvores com origem em B ou C. Portanto com apple 2 m = n. Mas então e a proposição do teorema resulta trivial. A )? 3 A 4 A )? 2, A )? i 3 2 i 4, 8i 2, Uma consequência deste novo Lema da Repetição, e desta vez uma consequência construtiva é a do colapso, para as linguagens unárias, das linguagens independentes do contexto nas linguagens regulares, expresso no resultado seguinte. Teorema.4 Para o caso do alfabeto unário, a classe das linguagens independentes do contexto é coincidente com a das linguagens regulares. Dem. Que as linguagens regulares são independentes do contexto não depende do tamanho do alfabeto. Consideremos então uma linguagem L, CFL, com alfabeto = {0}. Pelo Lema da Repetição (Teorema.3) sabemos que existe um inteiro n para o qual, todas as palavras,, de tamanho 9

12 superior a n admitem uma factorização = uvwxy, com vwx apple n por forma que para qualquer i se tem uv i wx i y 2 L. Como se trata de palavras compostas somente do caracter 0 podemos então permutar os factores e afirmar que 8i uwy(vx) i 2 L. eja uwy = m e vx = `. Então 0 m+i` 2 L, 8i 0. Podemos fazer m 0 = m mod ` e 0 m+i` i 0 = 0 m 0 +i` i 0. Mas, então, L = { 2 L ^ apple n} [ [ [ 0 m+i` i 0, `applen mapplen ou seja, éuma reunião finita de linguagens regulares, e portanto também regular..7 Ambiguidade de Linguagens Há linguagens que são intrinsecamente ambíguas, ou seja, todas as CFG que as geram são ambíguas. O teorema seguinte garante a sua existência, dando o exemplo de uma linguagem nessas condições. Teorema.5 ACFLL = a i b j c k i = j _ j = k é uma linguagem (intrinsecamente) ambígua. Dem. Que L é uma CFL é evidente pois podemo-la construir como união de duas CFL s: {a n b n c, n, m 0} e {a n b m c m n, m 0}. ejag = hv, P, i uma CFG que gere a L. eja, então, n a constante do Lema de Ogden na sua versão??. Consideremos a palavra z = a m b m c m+m! com m = max(n, 3) e marquemos em z todos os a s. Então, sabemos que há uma factorização z = uvwxy eumavariávela 2 V, talque, )? uay, A )? vax e A )? w. Portanto, 8i 0, uv i wx i y 2 L. Tomemos i = 2, temos = uv 2 wx 2 y 2 L e vx tem, no máximo, mb s, pois esse é o número total de b s em z. Como m 3, entãom! >m. Logo b apple 2m < m + m! apple c. Pelo que a igualdade que é satisfeita por forma que 2 L éentre onúmerodea s e o número de b s, ou seja, a = b. Portanto vx a = vx b,e vx a, pois vx contém pelo menos uma posição marcada. abemos que tanto v como x têm todos os caracteres iguais porque senão não seria uma palavra de L. Assim v = a j e x = b j para algum 0 apple j apple m. eja i = m! +. Para obter uma derivação de j = u i wx i y = a m+m! b m+m! c m+m! temos que usar, i vezes, a sub-derivação A )? vax. Podemos, agora, fazer exactamente o mesmo, com z = a m+m! b m c m marcando, desta vez, todos os c s. mis uma vez, obtemos uma factorização z = u v w x y euma variável A 2 V com )? u A y, A )? v A x e A )? w.maisumavez,v = b k e x = c k.e tomarmos l = m! +, para obtermos uma derivação de k = u v l w x l y = a m+m! b m+m! c m+m! temos que usar k vezes a sub-derivação A )? v A x. Estas duas derivações são distintas. Para verificar isso basta observar que a primeira obtém todos os seus b s, excepto m - j, atravésdasub-derivaçãoa )? a j Ab j, enquanto na segunda todos os b s, excepto m - k, são obtidos pela sub-derivação A )? b l A c l. 20

Draft-v0.2. Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra

Draft-v0.2. Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra 10 Gramáticas Independentes do Contexto Como vimos nos capítulos anteriores, apesar da classe das Linguagens Regulares serem particularmente bem comportadas tanto em termos de complexidade dos seus algoritmos

Leia mais

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1 Árvores (ordenadas) Recordemos que, uma árvore é grafo (não dirigido) em que o número de vértices excede em 1 o número de arcos. Um vértice é acessível a todos os outros: a raiz. Os vértices que são acessíveis

Leia mais

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

Vamos estudar neste capítulo algumas características da classe das linguagens regulares sobre um alfabeto. Entre elas salientámos: 5 Propriedades de LR Vamos estudar neste capítulo algumas características da classe das linguagens regulares sobre um alfabeto. Entre elas salientámos: São fechadas para determinas operações sobre linguagens:

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

Aula 8: Gramáticas Livres de Contexto

Aula 8: Gramáticas Livres de Contexto Teoria da Computação Primeiro Semestre, 2015 Aula 8: Gramáticas Livres de Contexto DAINF-UTFPR Prof. Ricardo Dutra da Silva Veremos agora maneira de gerar as strings de um tipo específico de linguagem,

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

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

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

Compiladores - Gramáticas

Compiladores - Gramáticas Compiladores - Gramáticas Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa

Leia mais

Compiladores - Gramáticas

Compiladores - Gramáticas Compiladores - Gramáticas Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa

Leia mais

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268 Capítulo 6 Simplificação de gramáticas livres de contexto e Formas Normais 61 6.1. Métodos para transformar gramáticas ái 62 6.2. Duas formas Normais (Chomsky e Greibach) 268 6.1. Métodos para transformar

Leia mais

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

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto UNIVESIDADE ESTADUAL DE MAINGÁ DEPATAMENTO DE INFOMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 A classe de linguagens livres de contexto é fechada

Leia mais

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

Leia mais

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

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

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma Formas normais Em muitas aplicações, é útil que as GIC tenham regras de tipos especiais. Para tal é necessário que se possa transformar qualquer gramática numa equivalente (isto é que gere a mesma linguagem)

Leia mais

Gramáticas e Linguagens independentes de contexto

Gramáticas e Linguagens independentes de contexto Capítulo 6 Gramáticas e Linguagens independentes de contexto 6.1 Gramáticas Nesta secção vamos introduzir gramáticas formais para caracterização das linguagens, estudando fundamentalmente as gramáticas

Leia mais

Marcos Castilho. DInf/UFPR. 21 de março de 2019

Marcos Castilho. DInf/UFPR. 21 de março de 2019 21 de março de 2019 Análise sintática: introdução Dada uma gramática G e uma palavra w Σ, como saber se w L(G)? Isto é, como saber se S = G w? Derivações à esquerda e ambiguidade w L(G) se S = G w; Sabemos

Leia mais

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto. As linguagens regulares são I.C Proposição 16.1. Qualquer linguagem regular é independente de contexto. Dem. Seja L Σ uma linguagem regular, e seja r uma expressão regular tal que L = L(r).Por indução

Leia mais

Geradores e relações

Geradores e relações Geradores e relações Recordamos a tabela de Cayley de D 4 (simetrias do quadrado): ρ 0 ρ 90 ρ 180 ρ 270 h v d 1 d 2 ρ 0 ρ 0 ρ 90 ρ 180 ρ 270 h v d 1 d 2 ρ 90 ρ 90 ρ 180 ρ 270 ρ 0 d 2 d 1 h v ρ 180 ρ 180

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

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

Gramática Livre de Contexto

Gramática Livre de Contexto Gramática Livre de Contexto Prof. Yandre Maldonado - 1 Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) Forma Normal de Greibach (FNG) Prof. Yandre Maldonado e Gomes

Leia mais

Dada uma gramática G = (V, T, P, S), tal que ε ² L(G), construir G, sem produções-ε, de modo a que L(G) = L(G ).

Dada uma gramática G = (V, T, P, S), tal que ε ² L(G), construir G, sem produções-ε, de modo a que L(G) = L(G ). 2EVHUYDo}HV Enquanto que todas as Linguagens Regulares são reconhecíveis por utómatos 'HWHUPLQLVWDV (Finitos), nem todas as Linguagens Independentes do Contexto são reconhecíveis por utómatos 'HWHUPLQLVWDV

Leia mais

Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal:

Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal: a n b n 1 Exemplo preliminar Considere a linguagem dos Palíndromos Lpal: radar, Roma é amor, 0110, 11011,... ou seja, quando w = w r Lpal é regular? usando o Lema do Bombeamento: Suponha Lpal regular,

Leia mais

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC) Linguagens Formais e Autômatos Simplificação de Gramáticas Livre do Contexto (GLC) Cristiano Lehrer, M.Sc. Gramática Simplificada Gramática simplificada é uma gramática livre do contexto que não apresenta

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

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

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

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

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 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 inacessíveis; Forma Normal de Chomsky (FNC) e Forma Normal

Leia mais

Gramática Livre de Contexto

Gramática Livre de Contexto Prof. Yandre Maldonado - 1 Gramática Livre de Contexto Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) (FNG) Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br

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

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

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

Leia mais

Automata e Linguagens Formais

Automata e Linguagens Formais Automata e Linguagens Formais 6 Prof. Carlos H. C. Ribeiro carlos@ita.br Análise Sintática (Parsing) GLCs ambíguas Grafos de GLCs Estratégias para parsing Exemplos de parsers Análise Sintática (Parsing)

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

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

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais:

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais: Espaços Euclidianos Espaços R n O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais: R n = {(x 1,..., x n ) : x 1,..., x n R}. R 1 é simplesmente o conjunto R dos números

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

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

LLC's: Lema do Bombeamento e Propriedades de Fechamento

LLC's: Lema do Bombeamento e Propriedades de Fechamento Linguagens Formais e Autômatos LLC'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) Sumário

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

Autómatos de pilha e Gramáticas independentes de contexto

Autómatos de pilha e Gramáticas independentes de contexto Autómatos de pilha e Gramáticas independentes de contexto Proposição 15.1. A classe de linguagens aceites por autómatos de pilha está contida a classe das linguagens independentes de contexto. Dem. Seja

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

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,

Leia mais

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,

Leia mais

Autómatos de pilha e GIC

Autómatos de pilha e GIC Autómatos de pilha e GIC Proposição 17.1. A classe de linguagens aceites por autómatos de pilha está contida na classe das linguagens independentes de contexto. Dem. Seja L uma linguagem independente de

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

14.1 Linguagens decidíveis ou Turing reconhecíveis

14.1 Linguagens decidíveis ou Turing reconhecíveis Linguagens decidíveis ou Turing reconhecíveis Problemas decidíveis para Linguagens Regulares Teorema Seja A linguagem A DFA é decidível A DFA = {A : A é um DFA e aceita } Dem Basta mostrar como construir

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

Gramáticas Livres de Contexto

Gramáticas Livres de Contexto Gramáticas Livres de 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 / 42 Frase do dia Quando vires

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

Problemas decidíveis para LICs

Problemas decidíveis para LICs Problemas decidíveis para LICs Dada uma gramática independente de contexto G, L(G) =? Dada uma gramática independente de contexto G, L(G) é finita? Dada uma gramática independente de contexto G, L(G) é

Leia mais

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

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

Leia mais

Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática

Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática Ambiguidade Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática De maneira equivalente, se existe mais de uma derivação mais à esquerda para uma cadeia Ou se

Leia mais

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

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

Leia mais

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

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente SCC-505 - Capítulo 3 Linguagens Sensíveis ao Contexto e 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

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

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

Leia mais

Análise Sintática Introdução

Análise Sintática Introdução Análise Sintática Introdução Renato Ferreira Linguagens e Automatas Linguagens formais são importantes em Computação Especialmente em linguagens de programação Linguagens regulares A linguagem formal mais

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

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

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Soluções para a Lista 4 Universidade Federal do ABC Aritanan Gruber aritanan.gruber@ufabc.edu.br http://professor.ufabc.edu.br/ aritanan.gruber Os exercícios marcados com

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 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

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

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

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

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

Construção de Compiladores Aula 17 - Análise Sintática Descendente Construção de Compiladores Aula 17 - Análise Sintática Descendente Bruno Müller Junior Departamento de Informática UFPR 3 de Novembro de 2014 1 Análise Sintática Descendente Eliminação de retrocessos Converter

Leia mais

Unidade 5 - Subespaços vetoriais. A. Hefez e C. S. Fernandez Resumo elaborado por Paulo Sousa. 10 de agosto de 2013

Unidade 5 - Subespaços vetoriais. A. Hefez e C. S. Fernandez Resumo elaborado por Paulo Sousa. 10 de agosto de 2013 MA33 - Introdução à Álgebra Linear Unidade 5 - Subespaços vetoriais A. Hefez e C. S. Fernandez Resumo elaborado por Paulo Sousa PROFMAT - SBM 10 de agosto de 2013 Às vezes, é necessário detectar, dentro

Leia mais

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise sintática Parte 02 Prof. geovanegriesang@unisc.br Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores

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

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERIDADE DA EIRA INTERIOR Teoria da Computação Eng. Informática 2º emestre Frequência 2 (7 valores) Resolução 30/maio/2017 A. Expressões regulares e autómatos finitos 1. [1.25] Usando o método de eliminação

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

Problemas decidíveis para LICs

Problemas decidíveis para LICs Problemas decidíveis para LICs Dada uma gramática independente de contexto G, L(G) =? Dada uma gramática independente de contexto G, L(G) é finita? Dada uma gramática independente de contexto G, L(G) é

Leia mais

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO LICENCIATURA EM CIÊNCIAS DA COMPUTAÇÃO TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO José Carlos Costa Dep. Matemática e Aplicações Universidade do Minho Braga, Portugal 31 de Maio de 2010

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

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

1 Congruências e aritmética modular

1 Congruências e aritmética modular 1 Congruências e aritmética modular Vamos considerar alguns exemplos de problemas sobre números inteiros como motivação para o que se segue. 1. O que podemos dizer sobre a imagem da função f : Z Z, f(x)

Leia mais

Tópicos de Matemática. Teoria elementar de conjuntos

Tópicos de Matemática. Teoria elementar de conjuntos Tópicos de Matemática Lic. em Ciências da Computação Teoria elementar de conjuntos Carla Mendes Dep. Matemática e Aplicações Universidade do Minho 2010/2011 Tóp. de Matemática - LCC - 2010/2011 Dep. Matemática

Leia mais

Espaços vectoriais reais

Espaços vectoriais reais ALGA - 00/0 - Espaços Vectoriais 49 Introdução Espaços vectoriais reais O que é que têm em comum o conjunto dos pares ordenados de números reais, o conjunto dos vectores livres no espaço, o conjunto das

Leia mais

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

Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção Shift e reduce Shift: move o foco uma posição à direita A B C x y z A B C x y z é uma ação shift Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção Se A x y é uma produção, então

Leia mais

7.1. Autómatos de pilha não-determinísticos (NPDA) 7.3. Autómatos de pilha determinísticos e linguagens livres de contexto determinísticas.

7.1. Autómatos de pilha não-determinísticos (NPDA) 7.3. Autómatos de pilha determinísticos e linguagens livres de contexto determinísticas. Capítulo 7 Autómatos de pilha 7.1. Autómatos de pilha não-determinísticos (NPDA) 7.2. Autómatos de pilha e linguagens livres de contexto 7.3. Autómatos de pilha determinísticos e linguagens livres de contexto

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)

Leia mais

AFNs, Operações Regulares e Expressões Regulares

AFNs, Operações Regulares e Expressões Regulares AFNs, Operações Regulares e Expressões Regulares AFNs. OperaçõesRegulares. Esquematicamente. O circulo vermelho representa o estado inicial q 0, a porção verde representa o conjunto de estados de aceitação

Leia mais

Linguagens e Programação Gramáticas. Paulo Proença

Linguagens e Programação Gramáticas. Paulo Proença Linguagens e Programação Gramáticas Gramáticas Ferramenta para a descrição e análise de linguagens; Baseada num conjunto de regras que especificam o modo de construção das frases válidas na linguagem;

Leia mais

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

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

Leia mais

Conceitos básicos de Teoria da Computação

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

Leia mais

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

Linguagens Livres de Contexto

Linguagens Livres de Contexto Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011

Leia mais

CAPÍTULO 8 PROPRIEDADES DAS LINGUAGENS LIVRES DE CONTEXTO

CAPÍTULO 8 PROPRIEDADES DAS LINGUAGENS LIVRES DE CONTEXTO CPÍTULO 8 PROPRIEDDES DS LINGUGENS LIVRES DE CONTEXTO 8.1 Introdução 275 8.2 Dois lemas de bombagem 266 8.2.1 Lema de bombagem para linguagens livres de contexto 275 8.2.2 Lema de bombagem para linguagens

Leia mais

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

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

Leia mais

Cálculo Diferencial e Integral I

Cálculo Diferencial e Integral I Cálculo Diferencial e Integral I Texto de apoio às aulas. Amélia Bastos, António Bravo Dezembro 2010 Capítulo 1 Números reais As propriedades do conjunto dos números reais têm por base um conjunto restrito

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

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

Aula 1: Introdução ao curso

Aula 1: Introdução ao curso Aula 1: Introdução ao curso MCTA027-17 - Teoria dos Grafos Profa. Carla Negri Lintzmayer carla.negri@ufabc.edu.br Centro de Matemática, Computação e Cognição Universidade Federal do ABC 1 Grafos Grafos

Leia mais

Lógica Proposicional

Lógica Proposicional Lógica Proposicional Lógica Computacional Carlos Bacelar Almeida Departmento de Informática Universidade do Minho 2007/2008 Carlos Bacelar Almeida, DIUM LÓGICA PROPOSICIONAL- LÓGICA COMPUTACIONAL 1/28

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

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

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

Leia mais

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 2. Conceitos Básicos da Teoria da Computação

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 2. Conceitos Básicos da Teoria da Computação Curso: Ciência da Computação Turma: 6ª Série Aula 2 Conceitos Básicos da Computação pode ser definida como a solução de um problema ou, formalmente, o cálculo de uma função, através de um algoritmo. A

Leia mais

formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas

formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas Capítulo 11 Uma hierarquia de linguagens formais e autómatos 11.1. Linguagens g recursivas e recursivamente enumeráveis. 11.2. Gramáticas não-restringidas 11.3. Gramáticas e linguagens dependentes do contexto

Leia mais

5 Congruências lineares. Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução matemática e divisibilidade

5 Congruências lineares. Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução matemática e divisibilidade Matemática Discreta 2008/09 Jorge André & Vítor Hugo Fernandes Departamento de Matemática FCT/UNL Programa 1 Parte 1 - Conjuntos e Aplicações 1 Conjuntos 2 Relações Binárias 3 Aplicações 4 Indução matemática

Leia mais