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.

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

Download "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."

Transcrição

1 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 determinísticas. ADC/TC/Cap.7/ /LEI/DEIFCTUC 301

2 cadeia de entrada a a b b a b q 0 q 2 q 1 CONTROLO a b c 0 1 # P i l h a carácter de entrada estado actual símbolo no topo da pilha estado seguinte movida escreve na pilha ADC/TC/Cap.7/ /LEI/DEIFCTUC 302

3 7.1. Autómatos de pilha não-determinísticos Definição 7.1. NPDA Aceitador não determinístico de pilha (NPDA- Nondeterministic PushDown Accepter) M = (Q,,,, q 0, z 0, F ) Q : conjunto finito de estados internos da unidade de controlo : o alfabeto de entrada : (gama) conjunto finito de símbolos chamado alfabeto da pilha : Q ( { }) subconjuntos finitos de Qx * é a função de transição, q 0 Q : estado inicial da unidade de controlo z 0 : símbolo de inicialização da pilha F Q : conjunto de estados finais (aceitadores). ADC/TC/Cap.7/ /LEI/DEIFCTUC 303

4 Notas uma transição pode ter como carácter de entrada, sendo neste caso uma transição- a definição de transição exige um símbolo no topo da pilha; se a pilha estiver vazia, as movidas serão inibidas embora o NPDA possa ter várias escolhas possíveis para as suas movidas, elas devem ter um número finito de possibilidades. de uma movida resulta a escrita de uma cadeia no topo da pilha: abc é escrita a b c ADC/TC/Cap.7/ /LEI/DEIFCTUC 304

5 Operações sobre a pilha push introduzir um carácter adicional pop - apagar um carácter substituição de um carácter por outro inicialização com qualquer símbolo de ; normalmente com o carácter especial # ADC/TC/Cap.7/ /LEI/DEIFCTUC 305

6 transição estado actual símbolo de entrada novo estado (q 0, a, 0) = { (q 1, 10) } símbolo actual no topo da pilha push 1 no topo da pilha ADC/TC/Cap.7/ /LEI/DEIFCTUC 306

7 Transições Operações sobre a a pilha Significado 1. (q 0, a, #) = { (q 1, 0#) } push acrescenta 0 à pilha com # 2. (q 0, b, 1) = {(q 1, )} } pop apaga 1 3. (q 1, b, 0) = { (q 1, 1) } substituição substitui 0 por 1 4. (q 0, b, 1) = { (q 1, 1) } nenhuma não altera 5. (q 1,, 0) = { (q 2, ) } pop apaga 0 sem consumir entrada 6. (q 1,, 0) = { (q 2, 10) } push acrescenta 1 sem consumir entrada ADC/TC/Cap.7/ /LEI/DEIFCTUC 307

8 Exemplo 1 (q 1, a, b) = {(q 2, cd), (q 3, )} Quando o autómato está no estado q 1, se aparecer um a na cadeia de entrada, então acontecerá uma de duas coisas : - a unidade de controlo passa ao estado q 2 - substitui b pela cadeia cd no topo da pilha (fica com mais um carácter) ou - a unidade de controlo passa ao estado q 3 - na pilha substitui b por, isto é, apaga b do topo da pilha (que fica assim com menos um carácter). ADC/TC/Cap.7/ /LEI/DEIFCTUC 308

9 Exemplo 2 NPDA Q = {q 0,q 1,q 2,q 3,} (q 0, a, # ) = {(q 1, 1#), (q 3, )} = {a, b} (q 0,, # ) = {(q 3, )} = {#, 0, 1} z 0 = # (q 1, a, 1 ) = {(q 1, 11)} (q 1, b, 1 ) = {(q 2, )} F= {q 3 } (q 2, b, 1 ) = {(q 2, )} (q 2,, # ) = {(q 3, )} não é uma função total. Se o autómato cair num estado para o qual não está definido, nunca mais de lá sai, estando por isso morto. ADC/TC/Cap.7/ /LEI/DEIFCTUC 309

10 Há duas transições fundamentais 1ª : (q 1, a, 1 )={(q 1, 11)} por cada a que aparece acrescenta um 1 à pilha. 2ª : (q 2, b, 1 ) = {(q 2, )} por cada b que aparece nestas circunstâncias, apaga um 1 da pilha, até que fique apenas o símbolo inicial. i i a passagem do estado q 1 ao estado q 2 acontece quando aparece o primeiro b. ADC/TC/Cap.7/ /LEI/DEIFCTUC 310

11 Que faz então o autómato? Quando atinge q 3? ADC/TC/Cap.7/ /LEI/DEIFCTUC 311

12 O estado q 3 é alcançado quando o NPDA lê uma cadeia de L = {a n b n : n 0} {a}. Pd Pode-se afirmar, por analogia com o que acontece nos DFA, que o NPDA aceita esta linguagem. ADC/TC/Cap.7/ /LEI/DEIFCTUC 312

13 Descrição instantânea de um NPDA Completamente definida pelo tripleto (q, w, u) ) q : estado actual do autómato. w : parte ainda não lida da cadeia de entrada. u:conteúdo da pilha, sendo o topo o símbolo mais à esquerda (convenção). ADC/TC/Cap.7/ /LEI/DEIFCTUC 313

14 Uma movida de uma descrição de base para outra (q,aw,bx) (q,w,yx) 1 2 só é possível se existir a transição (q 1,a,b) = {(q 2,y)} ADC/TC/Cap.7/ /LEI/DEIFCTUC 314

15 movidas com um número arbitrário de passos M indica que a movida se refere ao autómato M. ADC/TC/Cap.7/ /LEI/DEIFCTUC 315

16 Linguagem aceite por um NPDA, L (M) Definição 7.2. Aceitação por um estado final M = (Q,,,, q 0, z 0, F ) L (M) = { w * :(q 0, w, z 0 ) M ( p,, u), p F, u * } É o conjunto de todas as cadeias capazes de colocarem o autómato num estado final (aceitador) no fim da leitura da cadeia. O conteúdo da pilha, u, é irrelevante para esta definição. ADC/TC/Cap.7/ /LEI/DEIFCTUC 316

17 Dfiiã Definição Aceitação por pilha vazia M = (Q,,,,q 0, z 0, F ) L (M) = { w * :(q 0, w, z 0 ) M ( q,, ), para algum q Q} É o conjunto de todas as cadeias capazes de colocarem o autómato com a pilha vazia (depois de lidas completamente) e num estado qualquer. ADC/TC/Cap.7/ /LEI/DEIFCTUC 317

18 As duas definições são equivalentes: Se existe um NPDA que aceita uma linguagem L por um estado final, então existe um NPDA que aceita a mesma L pela pilha vazia.... e vice-versa Ver Hopcroft e Coll. (p ) ADC/TC/Cap.7/ /LEI/DEIFCTUC 318

19 Exemplo 3 Qual o NPDA que aceita L = {w {a, b}* : n a (w) = n b (w)} É necessário contar o número de a s e b s, usando a pilha. A ordem dos a e b não interessa neste caso. algoritmo: define-se um símbolo para contar o número de a s, por exemplo o 0, sempre que aparece um a acrescenta-se um 0 à pilha (push), sempre que aparece um b, apaga-se um zero da pilha (pop), quando não houver mais zeros, restando apenas o símbolo bl de inicialização iiili da pilha, e aparecer um b, acrescenta-se um 1 à pilha (push), quando o topo da pilha for um 1 e aparecer um a,, apaga-se esse 1 (pop). p) ADC/TC/Cap.7/ /LEI/DEIFCTUC 319

20 Teremos assim as seguintes transições: (q 0,, #) = {(q f, #)} (q 0, a, #) = {(q 0, 0#)} (q 0, b, #)) = {(q 0, 1#)} (q 0, a, 0) = {(q 0, 00)} (q 0, b, 0) = {(q 0, )} (q 0, a, 1) = {(q 0, )} 0 0 (q 0, b, 1) = {(q 0, 11)} M = ({q 0, q f }, {a,b}, {#, 0, 1},, q 0, #, {q f }) ADC/TC/Cap.7/ /LEI/DEIFCTUC 320

21 O não-determinismo no autómato A transição com na entrada introduz não-determinismo: (q 0,, #) = {(q f, #)} (q 0, a, #) = {(q 0, 0#)} Quando aparece um a à entrada, pode acontecer uma de duas coisas: o autómato t transita para o estado q f sem consumir o a da entrada (transição - ) o autómato consome o carácter de entrada, escreve 0 na pilha e mantém-se em q 0. ADC/TC/Cap.7/ /LEI/DEIFCTUC 321

22 Grafo do PDA A etiqueta de cada aresta é da forma (notação de Linz e do JFLAP): Pilha a, 1 ; 01 0 q 0 q 1 Estando o autómato no estado q 0, se lê a e se a pilha estiver com 1 no topo, p, o autómato passa ao estado q 1, faz o pop da pilha (apaga 1) e depois o push e 01 ( esceve o 1 seguido do zero, topo à esquerda, 0) ADC/TC/Cap.7/ /LEI/DEIFCTUC 1 322

23 Grafo do PDA A etiqueta de cada aresta é da forma (notação de Taylor e do Deus Ex Máquina): a, 1 ; 01 Pilha q 0 q 1 1 Estando o autómato no estado q 0, se lê a e se a pilha estiver com 1 no topo, o autómato passa ao estado q 1, faz o pop da pilha (apaga 1) e depois o push de 0 e 1 (escreve 0 seguido de 1, topo à direita, 1) ADC/TC/Cap.7/ /LEI/DEIFCTUC 323 0

24 Grafo do PDA a, # ; # 0 a, # ; 0# b, # ; 1# b, # ; # 1 2 ( a verde notação JFLAP) 3 a, 0 ; 0 0, # ; # q 0 4 q f 7 5 b, 1 ; 1 1 b, 0; 6 (Taylor, p.538) a, 1 ; ( a azul notação DEM) 1. (q 0,, #) = {(q f, #)} 2. (q 0, a, #) = {(q 0, 0#)} 3. (q 0, b, #) = {(q 0, 1#)} 4. (q 0, a, 0) = {(q 0, 00)} 5. (q 0, b, 0) = {(q 0, )} 6. (q 0, a, 1) = {(q 0, )} 7. (q 0, b, 1) = {(q 0, 11)} ADC/TC/Cap.7/ /LEI/DEIFCTUC 324

25 aabbabba produz as seguintes movidas: (q 0, aabbabba, #) (q 0, abbabba, 0#) (q 0, bbabba, 00#) (q 0, babba, 0#) (q 0, abba, #) (q 0, bba, 0#) (q 0, ba, #) (q 0, a, 1#) (q 0,, #) (q f,#) e portanto é aceite. Este exemplo vem implementado no Deus Ex Máquina, directoria de exemplos de PDA, Example Ver também em Taylor, pp 540. ADC/TC/Cap.7/ /LEI/DEIFCTUC 325

26 Exemplo 4 Desenhar o grafo do NPDA da linguagem (Taylor, 541). L = {a n b m : 0 n < m, m 2 } a, 0 ; 0 0 b, 0 ; b, # ; # a, #; # 0 q 0 b, # ; # b, 0 ; q 1 b#;# b, # q f Este problema está implementado no Deus Ex Máquina ficheiro Example na directoria Pushdown Automata. ADC/TC/Cap.7/ /LEI/DEIFCTUC 326

27 7.2. Autómatos de pilha e linguagens livres de contexto Para toda a linguagem livre de contexto existe um NPDA que a aceita. É mais fácil de demonstrar para gramáticas na forma normalizada da Greibach, em que todas as produções são da forma A ax, a T, Tx V*. ADC/TC/Cap.7/ /LEI/DEIFCTUC 327

28 NPDA s para gramáticas livres de contexto o NPDA implementa a derivação pela extrema-esquerda de qualquer cadeia. as variáveis da parte direita da forma sentencial colocam-se na pilha. a parte esquerda da forma sentencial, composta pelos símbolos terminais, é idêntica à entrada lida. começa-se colocando o símbolo inicial na pilha. para simular A a x (forma normal de Greibach) - coloca-se A no topo da pilha - introduz-se a como símbolo de entrada - a variável na pilha é removida e substituída por x ADC/TC/Cap.7/ /LEI/DEIFCTUC 328

29 a a A # x # A ax ADC/TC/Cap.7/ /LEI/DEIFCTUC 329

30 Exemplo 5 Projectar um NPDA que aceite e a linguagem ge gerada pela gramática S asbb a transformar a gramática na forma de Greibach S asa a A bb B b O autómato correspondente terá 3 estados {q 0, q 1, q 2 } sendo q 2 =q f. ADC/TC/Cap.7/ /LEI/DEIFCTUC 330

31 1º colocar o símbolo inicial S na pilha: (q 0,, #) = { (q 1, S#)}. S # 2º simular a produção S asa, remove S da pilha e colocando lá SA lendo a à entrada simular a produção S a, a substituindo i na pilha S por (q 1, a, S) = { (q 1, SA), (q 1, )} S A # # ADC/TC/Cap.7/ /LEI/DEIFCTUC 331

32 3º simular a produção A bb b b (q 1, b, A) = { (q 1, B)} 4º simular a produção B b A # B # (q 1, b, B) = { (q 1, )} # 5º completar a derivação quando aparece # no topo da pilha (q 1,, #) = { (q f, #)}. ADC/TC/Cap.7/ /LEI/DEIFCTUC 332

33 S asbb a S asa a A bb, B b. a, S ; a, S ; SA q 0, # ; S# 0, # ; # q 1 q f (Notação JFLAP) b, A ; B b, B ; L (G) ={a a n b 2(n-1) : n 1} ADC/TC/Cap.7/ /LEI/DEIFCTUC 333

34 Exemplo 6 Seja a CFG em forma normal de Greibach S aa ab A aab abb B b 3.1 L (G) = { a n b n : n 1} ADC/TC/Cap.7/ /LEI/DEIFCTUC 334

35 derivação pela extrema esquerda de aaaabbbb S aa (de 1.1) aaab (de 2.1) aaaabb (de 2.1) aaaabbbb (de 2.2) aaaabbbb (de 3.1) aaaabbbb (de 3.1) aaaabbbb (de 3.1) aaaabbbb (de 3.1) ADC/TC/Cap.7/ /LEI/DEIFCTUC 335

36 Produção Movida Grafo Carregar S (q 0,, #) = { (q 1, S#)} q 0, # ; S# q 1 Notação JFAP S aa (q 1, a, S) = { (q 1, A)} q 1 a, S ; A S ab (q 1, a, S) = { (q 1, B)} q 1 a, S ; B A aab (q 1, a, A) = { (q 1, AB)} q 1 a, A ; AB Notação JFLAP q 1 A abb (q 1, a, A) = { (q 1, BB)} a, A ; BB B b (q 1, b, B) = { (q 1, )} q 1 b, B ; aceitar a cadeia (q 1,, #) ={(q f, #)} q, # ; # 1 q f ADC/TC/Cap.7/ /LEI/DEIFCTUC 336

37 S aa ab A aab abb B b a, S ; A a, S ; B, # ; S# q 0 q 1, # ; # q f (Notação JFLAP) a, B ; a, A ; BB 3 estados para a, A ; AB qualquer gramática de Greibach L (G) = { a n b n : n 1 } ADC/TC/Cap.7/ /LEI/DEIFCTUC 337

38 Teorema 7.1 Para qualquer que linguagem ge L livre decontexto, o,existe eum NPDA M que a aceita, i.e, existe um M tal que L = L (M) se L éumacflsem, então existe uma CFG na forma normal de Greibach para L. contrói-se uma NPDA para simular as derivações pela extrema-esquerda dessa gramática. A forma de Greibach é apenas para facilitar o desenvolvimento. O teorema aplica-seatodaacfg. a a ADC/TC/Cap.7/ /LEI/DEIFCTUC 338

39 Qual o número mínimo de estados de um NPDA, para uma linguagem definida por uma gramática de Greibach? - no exemplo obtiveram-se três ; - o estado q 0 pode ser eliminado (fica não-determinístico); - passa a ser aceite a, S ; A, # ; S# a, B ; q 1 a, S ; B, #;# # a, A ; BB q f Et Este resultado ltd é geral: para qualquer CFL com,existe um NPDA com dois estados, sem, três estados. a, A ; AB (Notação JFLAP) ADC/TC/Cap.7/ /LEI/DEIFCTUC 339

40 Se quisermos evitar a introdução do, pode-se utilizar um símbolo especial na pilha, $, para inicializar a gramática: (q 0, λ,, #)) = { (q 0,S$)} E agora começa-se com a gramática de Greibach. a, S ; A a, S ; B Finalmente: para qualquer CFL,$;# $ ; # sem λ existe um q 1 q, # ; S$ f NPDA com dois estados, a, B ; a, A ; BB aa;ab a, AB (Notação JFLAP) ADC/TC/Cap.7/ /LEI/DEIFCTUC 340

41 Gramáticas livres de contexto para NPDA s O inverso do teorema e anterior também é verdadeiro: de dado do um NPDA, existe para ele uma CFG. Para o provar baste reverter o processo construtivo, de modo que a gramática simule as movidas do NPDA. Teorema 7.2. Se uma linguagem L é aceite por algum NPDA M, então L é uma linguagem g livre de contexto Dem: Linz,189 ADC/TC/Cap.7/ /LEI/DEIFCTUC 341

42 7.3. Autómatos de pilha determinísticos i e linguagens livres de contexto determinísticas Um autómato de pilha determinístico DPDA Deterministic PushDown Accepter nunca tem escolha possível nas suas movidas. ADC/TC/Cap.7/ /LEI/DEIFCTUC 342

43 Definição 7.4. DPDA Um PDA M= (Q,,,, q 0, z 0, F ) diz-se determinístico se for um PDA que obedece às seguintes restrições para todo o q Q, a { }, b : 1. Dado um símbolo de entrada e um símbolo no topo da pilha, só é possível uma movida, no máximo. (q, a, b) contém no máximo um elemento (uma só movida possível) 2. Quanto é possível uma transição- para alguma configuração, não existe nenhuma alternativa que consuma caracteres de entrada para essa mesma configuração. se (q,, b) não é vazia, então (q, c, b) deve ser vazia para todo o c ADC/TC/Cap.7/ /LEI/DEIFCTUC 343

44 Diferenças entre DFA e DPDA DFA DPDA não admite transições - admite transições - é uma função total há equivalência entre os determinísticos e os não determinísticos não é necessariamente uma função total não há equivalência entre os determinísticos e os não determinísticos ADC/TC/Cap.7/ /LEI/DEIFCTUC 344

45 Semelhanças entre DFA e DPDA RE r = a*b a a DFA b q 1 q 0 q f b b a DPDA a, # ; # q 0 b, # ; # q 0 q f a, # ; # q f b, #;# (a pilhanão é usada) q 1 b,# ;# a, # ; # ADC/TC/Cap.7/ /LEI/DEIFCTUC 345

46 Dfiiã Definição Linguagem CFL determinística i Uma linguagem L diz-se livre de contexto determinística (DCFL) se e só se existir um autómato de pilha determinístico DPDA M que a aceite, L = L(M) ADC/TC/Cap.7/ /LEI/DEIFCTUC 346

47 Exemplo CFL : L = { a n b n : n 1 } DPDA M = ({q 0, q 1, q 2 }, }{ab}{#1} {a, b}, {#,1},, q 0, #{q #, f }) (q 0, a, # ) = {(q 1, 1#)}, (inicia a contagem dos a s) (q 1, a, 1 ) = {(q 1, 11)}, (conta os a s ) (q 1, b, 1 ) = {(q 2, )}, (detecta o primeiro b) (q 2, b, 1 ) = {(q 2, )}, (conta os b s) (q 2,, # ) = {(q f, )} ( aceita se nº a s s = nº b s). aceita L. Logo L é CFL determinística. ADC/TC/Cap.7/ /LEI/DEIFCTUC 347

48 L = { a n b n : n 1 } a, 1 ; 11 b,1 ; b, 1 ; q a, # ; 1#, # ; 0 q 1 q 2 q f (notação JFLAP) ADC/TC/Cap.7/ /LEI/DEIFCTUC 348

49 L = { a n b n : n 0 } a, 1 ; 11 b,1 ; b, 1 ; q a, # ; 1#, # ; 0 q 1 q 2 q f (notação JFLAP) ADC/TC/Cap.7/ /LEI/DEIFCTUC 349

50 L = { a n b n : n 0 } a, 1 ; 11 b,1 ; q f a, # ; 1# q 1 b, 1 ; q 2, # ; ADC/TC/Cap.7/ /LEI/DEIFCTUC 350

51 7.4. Gramáticas para linguagens livres de contexto determinísticas pode-se fazer o seu parsing facilmente (gramáticas-s, mas não só) gramáticas LL (Left scan, Leftmost derivations) gramáticas LR (Left scan, Rightmost derivations) em Compiladores (3º ano) ver a implementação no JFLAP ADC/TC/Cap.7/ /LEI/DEIFCTUC 351

52 Bibliografia An Introduction to Formal Languages and Automata, Peter Linz, 3rd Ed., Jones and Bartelett Computer Science, 2001 Models of fcomputation and dformal llanguages, R. Gregory Taylor, Oxford University Press, Introduction to Automata Theory, Languages and Computation, 2nd Ed., John Hopcroft, Rajeev Motwani, Jeffrey Ullman, Addison Wesley, Elements for the Theory of Computation, Harry Lewis and Christos Papadimitriou, 2nd Ed., Prentice Hall, Introduction th the Theory of Computation, Michael Sipser, PWS Publishing Co, ADC/TC/Cap.7/ /LEI/DEIFCTUC 352

CAPÍTULO 7 AUTÓMATOS DE PILHA

CAPÍTULO 7 AUTÓMATOS DE PILHA CAPÍTULO 7 AUTÓMATOS DE PILHA 7.1 Introdução 247 7.2 O Autómato de Pilha, PDA-Push Down Automata 247 7.3 Autómatos de Pilha Não-Determinísticos 249 7.4. Autómatos de pilha e linguagens livres de contexto

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

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

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375 Capítulo 9 Máquinas de Turing 9.1. A máquina de Turing (TM) padrão 9.2. Combinações de máquinas de Turing 9.3. A Tese de Turing ADC/TC/Cap.9/2009-10/LEI/DEIFCTUC 375 Linguagens regulares Autómatos finitos

Leia mais

Outras Máquinas de Turing

Outras Máquinas de Turing Capítulo 10 Outras Máquinas de Turing 10.1. Pequenas variações da TM padrão 10.2. MT s com dispositivos de armazenamento mais complexos 10.3. MT s não-determinísticas 10.4. A Máquina de Turing Universal

Leia mais

Gramáticas Regulares

Gramáticas Regulares Capítulo 3 Expressões Regulares, Linguagens Regulares es e Gramáticas Regulares 3.1. Expressões Regulares (RE) 3.2. Relação entre ER e Linguagens Regulares (LR) 3.3. Gramáticas Regulares (GR) 3.4. Síntese

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

13.2. Sistemas de Post Sistemas de rescrita Cálculo Lambda. ADC/TC/Cap.13/ /LEI/DEIFCTUC 497

13.2. Sistemas de Post Sistemas de rescrita Cálculo Lambda. ADC/TC/Cap.13/ /LEI/DEIFCTUC 497 Capítulo 13 Outros modelos de computação 13.1. 1 Funções recursivas 13.2. Sistemas de Post 13.3. Sistemas de rescrita 13.4. Cálculo Lambda 497 Máquinas de Turing (1936): os modelos de computação mais gerais

Leia mais

Linguagem (formal) de alfabeto Σ

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

Leia mais

Os limites da computação algorítmica

Os limites da computação algorítmica Capítulo 12 Os limites da computação algorítmica 12.1. Problemas que não podem ser resolvidos pelas MT. 12.2. Problemas indecidíveis para LRE 12.3. Problema da correspondência de Post 12.4. Problemas indecidíveis

Leia mais

Linguaguens recursivamente enumeráveis e recursivas

Linguaguens recursivamente enumeráveis e recursivas Linguaguens recursivamente enumeráveis e recursivas Uma linguagem diz-se recursivamente enumerável (r.e) ou semi-decidível se é aceite por uma máquina de Turing. SD: classe de linguagens recursivamente

Leia mais

Linguagens recursivamente enumeráveis

Linguagens recursivamente enumeráveis Linguagens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário, M

Leia mais

Linguaguens recursivamente enumeráveis

Linguaguens recursivamente enumeráveis Linguaguens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário,

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

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada. Autómatos de Pilha Um autómato de pilha (não determinístico) (AP) é um autómato finito não determinístico com transições ɛ, acrescido de uma memória infinita a pilha mas em que o modo de acesso à informação

Leia mais

Regulares (RL) 4.1. Propriedades d de fecho das RL ADC/TC/CAP.4/ /LEI/DEIFCTUC 192

Regulares (RL) 4.1. Propriedades d de fecho das RL ADC/TC/CAP.4/ /LEI/DEIFCTUC 192 Capítulo 4 Propriedades das Linguagens Regulares (RL) 4.1. Propriedades d de fecho das RL 4.2. Pertença e finitude it das RL 4.3. Identificação de linguagens não regulares 192 4.1. Propriedades de fecho

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

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

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

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

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

Leia mais

Revisões de Conjuntos

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

Leia mais

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

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

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

Aula 7: Autômatos com Pilha

Aula 7: Autômatos com Pilha Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar

Leia mais

SCC Introdução à Teoria da Computação

SCC Introdução à Teoria da Computação SCC-0505 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 - São Carlos http://www.icmc.usp.br/~joaoluis/ joaoluis@icmc.usp.br

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

CAPÍTULO 6 SIMPLIFICAÇÃO DE GRAMÁTICAS LIVRES DE CONTEXTO E FORMAS NORMAIS

CAPÍTULO 6 SIMPLIFICAÇÃO DE GRAMÁTICAS LIVRES DE CONTEXTO E FORMAS NORMAIS CAPÍTULO 6 SIMPLIFICAÇÃO DE GRAMÁTICAS LIVRES DE CONTEXTO E FORMAS NORMAIS 6.1 Introdução 215 6.2 Métodos para transformar gramáticas 215 6.2.1 Eliminação do carácter 216 6.2.2 Uma regra geral para substituir

Leia mais

Capítulo 5. Linguagens livres de contexto

Capítulo 5. Linguagens livres de contexto Capítulo 5 Linguagens livres de contexto 5.1. Gramáticas livres de contexto 5.2. Parsing e ambiguidade 5.3. CFG e linguagens de programação 221 5.1. 1Gramáticas ái livres de contexto na parte esquerda

Leia mais

Capítulo 1. Introdução e

Capítulo 1. Introdução e Capítulo 1. Introdução e definições básicas 1.1. Linguagens 1.2. Gramáticas 1.3. Autómatos 1.4. Os três paradigmas da computação 1 1.1. 1 Linguagens 1. Alfabeto, ={símbolos}, conjunto não vazio de símbolos

Leia mais

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo. Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015 DECOM ICEB - UFOP Nome legível: Matrícula: As questões podem devem ser respondidas na própria prova, a caneta ou a lápis.

Leia mais

SCC-5832 Teoria da Computação

SCC-5832 Teoria da Computação Teoria da Computação SCC-5832 Teoria da Computação 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 - São Carlos

Leia mais

Teoria da Computação

Teoria da Computação e Linguagens Algébricas Teoria da Computação Simão Melo de Sousa Computer Science Department University of Beira Interior, Portugal e Linguagens Algébricas Plano 1 Introduction Contexto 2 Constituição

Leia mais

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

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

Leia mais

Autómatos determísticos de k-pilhas

Autómatos determísticos de k-pilhas Autómatos determísticos de k-pilhas dados de entrada a a a3 an controlo finito (S, Σ, Γ, δ, Z, s 0, F ) δ (S Σ Γ k ) (S, (Γ ) k ) Departamento de Ciência de Computadores da FCUP MC Aula 3 Dados um estado

Leia mais

IV Gramáticas Livres de Contexto

IV Gramáticas Livres de Contexto IV Gramáticas Livres de Contexto Introdução Definições de GLC 1 G = (Vn, Vt, P, S) onde P = {A α A Vn α (Vn Vt) + } 2 GLC ε - LIVRE : S ε pode pertencer a P, desde que: S seja o símbolo inicial de G S

Leia mais

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

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

Leia mais

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato? Computação efectiva Que linguagens podem ser reconhecidas por algum tipo de autómato? O que é ser computável? Que linguagens são computáveis? Existem linguagens que não são computáveis? Isto é, existem

Leia mais

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC URL:

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC   URL: INE5317 Linguagens Formais e Compiladores Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Plano de Ensino OBJETIVO GERAL: Estudar a teoria das linguagens

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

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

Linguagens livres de contexto e autômatos de pilha

Linguagens livres de contexto e autômatos de pilha Capítulo 6: Linguagens livres de contexto e autômatos de pilha José Lucas Rangel, maio 1999 6.1 - Introdução. Os aceitadores, ou reconhecedores, das linguagens livres de contexto são os chamados autômatos

Leia mais

SCC Teoria da Computação e Linguagens Formais

SCC Teoria da Computação e Linguagens Formais SCC-0205 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 - São Carlos http://www.icmc.usp.br/~joaoluis/ joaoluis@icmc.usp.br

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

Máquinas de Turing: uma introdução

Máquinas de Turing: uma introdução Máquinas de Turing: uma introdução Nelma Moreira Armando Matos Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto email: {nam,acm}@ncc.up.pt 1996 Revisão: Maio 2001 1

Leia mais

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

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

Leia mais

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

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

Autômatos com Pilha: Reconhecedores de LLCs

Autômatos com Pilha: Reconhecedores de LLCs Autômatos com Pilha: Reconhecedores de LLCs 1 Autômatos com Pilha (AP) Definições alternativas para Linguagens Livres de Contexto Extensão de AFND com uma pilha, que pode ser lida, aumentada e diminuída

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

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

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1 Máquinas Universais Um modelo de computação diz-se universal se todo o problema efectivamente computável o for nesse modelo. Um modelo universal é suficientemente poderoso para se aceitar a si próprio:

Leia mais

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Pró-Reitoria de Ensino de Graduação Coordenação do Curso de Bacharelado em Sistemas de Informação Site: http://www.bsi.ufrpe.br E-mail: coordenacao@bsi.ufrpe.br

Leia mais

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

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

Leia mais

Autómatos 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

UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS EXATAS - DCE PLANO DE CURSO DISCIPLINA

UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS EXATAS - DCE PLANO DE CURSO DISCIPLINA UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS EXATAS - DCE PLANO DE CURSO DISCIPLINA CÓDIGO DENOMINAÇÃO CRÉDITOS C. HORÁRIA DCE241 Teoria da Computação 04 75 horas TEM COMO

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

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP Ementa Gramáticas. Linguagens Regulares, Livres-de-Contexto e Sensíveis-ao- Contexto. Tipos de Reconhecedores. Operações

Leia mais

Noções de grafos (dirigidos)

Noções de grafos (dirigidos) Noções de grafos (dirigidos) Grafo G = (V, E) é um conjunto de vértices (ou nós) V e um conjunto de arcos E V V. 1 2 5 3 4 G = ({1, 2, 3, 4, 5}, {(1, 2), (2, 3), (2, 4), (3, 2), (3, 4), (4, 4)}) Um arco

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

Revisão. Fases da dacompilação

Revisão. Fases da dacompilação 1 Revisão Prof. Julio Arakaki Julio Arakaki 1 Fases da dacompilação Código fonte Análise Léxica tokens e lexemas Análise Sintática Árvore Sintática Abstrata (ASA) Análise Semântica ASA decorada Geração

Leia mais

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

Leia mais

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha Linguagem Livre de Contexto Autômato de Pilha Programas SCC-5832 - Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha João Luís Garcia Rosa 1 1 Instituto de Ciências Matemáticas e de Computação

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

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

UFCG IQuanta DSC. Cheyenne R. G. Isidro Bernardo Lula Júnior

UFCG IQuanta DSC. Cheyenne R. G. Isidro Bernardo Lula Júnior Um Algoritmo para Transformar Autômatos Finitos Não- Determinísticos em Autômatos Finitos Quânticos Preservando o Número de Estados e a Linguagem Reconhecida Cheyenne R. G. Isidro cha@dsc.ufcg.edu.br Bernardo

Leia mais

SCC-5832: II. Ling. Livres de Contexto e Autômatos de Pilha

SCC-5832: II. Ling. Livres de Contexto e Autômatos de Pilha SCC-5832 - Capítulo 2 e João Luís Garcia Rosa 1 1 Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos joaoluis@icmc.usp.br 2009 Sumário 1 Lema do Bombeamento para Linguagens

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

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

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior. LFA Aula 04 Autômatos Finitos 16/11/2016 Celso Olivete Júnior olivete@fct.unesp.br 1 Classificação das Linguagens segundo Hierarquia de Chomsky Máquina de Turing Máquina de Turing com fita limitada Autômato

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

a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP

a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP 1 ACP Assim como LR tem um autômato equivalente (AF) as LLC tem também

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

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

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Autômato com pilha IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Departmento de Computação e Matemática FFCLRP Universidade de São Paulo E.E.S Ruiz (DCM USP)

Leia mais

CAPÍTULO 3 EXPRESSÕES REGULARES, LINGUAGENS REGULARES E GRAMÁTICAS REGULARES

CAPÍTULO 3 EXPRESSÕES REGULARES, LINGUAGENS REGULARES E GRAMÁTICAS REGULARES CAPÍTULO 3 EXPRESSÕES REGULARES, LINGUAGENS REGULARES E GRAMÁTICAS REGULARES 3.1 Introdução 117 3.2 Expressões Regulares 117 3.3 Regras algébricas para expressões regulares 126 3.4 Relação entre expressões

Leia mais

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

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND) DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 2ª chamada - Resolução 2h + 30min 07/Fev/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1

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

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

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

Teoria da Computação. 2006/2007 Trabalho prático nº 2. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1

Teoria da Computação. 2006/2007 Trabalho prático nº 2. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1 2006/2007 Trabalho prático nº 2 Trabalho realizado por: Pedro Oliveira (501062444) Rui Costa (501062452) Turma: TP1 1 - Introdução O objectivo deste trabalho foi desenvolver um Simplificador de Gramáticas

Leia mais

Teoria da Computação (BBC244)

Teoria da Computação (BBC244) Teoria da Computação (BBC244) Professor: Anderson Almeida Ferreira anderson.ferreira@gmail.com http://www.decom.ufop.br/anderson Sala COM 10 DECOM-UFOP Ementa Gramáticas. Linguagens. Operações com Linguagens.

Leia mais

SCC 205 Teoria da Computação e Linguagens Formais

SCC 205 Teoria da Computação e Linguagens Formais Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC 205 Teoria da Computação e Linguagens Formais Autômatos com pilha Lista 3 1. Dê um

Leia mais

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

Linguagens Formais e Autômatos. Tiago Alves de Oliveira Linguagens Formais e Autômatos Tiago Alves de Oliveira Ementa Linguagens Regulares; Máquinas de Turing; O Problema da Parada da Máquina de Turing; Autômatos Finitos; Linguagens Livres de Contexto; Autômatos

Leia mais

CAPÍTULO 5 LINGUAGENS LIVRES DE CONTEXTO

CAPÍTULO 5 LINGUAGENS LIVRES DE CONTEXTO CAPÍTULO 5 LINGUAGEN LIVRE DE CONTEXTO 5.1. Introdução 181 5.2 Gramáticas livres de contexto 181 5.2.1. Definição e exemplos 183 5.2.2 Derivação pela extrema direita e pela extrema esquerda 188 5.2.3.Árvores

Leia mais

Linguagens Livres do Contexto. Adaptado de H. Brandão

Linguagens Livres do Contexto. Adaptado de H. Brandão Linguagens Livres do Contexto Adaptado de H. Brandão Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres do Contexto; Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres

Leia mais

Construção de Compiladores

Construção de Compiladores Construção de Compiladores Parte 1 Introdução Linguagens e Gramáticas F.A. Vanini IC Unicamp Klais Soluções Motivação Porque compiladores? São ferramentas fundamentais no processo de desenvolvimento de

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

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

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND) DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 1ª chamada - Resolução 2h + 30min 31/Jan/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1

Leia mais

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. http://www.consiste.dimap.ufrn.br/ david/enseignement/2003.

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. http://www.consiste.dimap.ufrn.br/ david/enseignement/2003. UFRN/DIMAp/DIM0330 Linguagens formais http://www.consiste.dimap.ufrn.br/ david/enseignement/2003.1/dim0330 1/36 Autômatos a pilha David Déharbe UFRN/DIMAp Campus Universitário, Lagoa Nova, 59072-970 Natal,

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 Definição formal de um AF Determinístico Um AF Determinístico (AFD) é denotado formalmente por uma quíntupla (Q,,, qo, F) onde: Q é o conjunto de estados

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

MT como calculadoras de funções parciais

MT como calculadoras de funções parciais MT como calculadoras de funções parciais Uma máquina de Turing pode ser vista como uma calculadora de funções parciais dos inteiros nos inteiros: f : N k p N Suponhamos que os inteiros estão codificados

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

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

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

Problemas Computáveis

Problemas Computáveis Indecidibilidade Problemas Computáveis Máquinas de Turing ou Problemas Computáveis ou Linguagens Recursivamente Enumeráveis LER (*) podem ser divididas em 2 classes: as MT que sempre param (Algoritmos),

Leia mais

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

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