Você está na página 1de 263

1

Disciplina de Linguagens Formais


Prof. Carlos A. P. Campani 2 de maio de 2006

Copyright c 2005 Carlos A. P. Campani. E garantida a permisso para copiar, distribuir e/ou a modicar este documento sob os termos da Licena de c Documentaao Livre GNU (GNU Free Documentation c License), Verso 1.2 ou qualquer verso posterior a a publicada pela Free Software Foundation; sem Seoes c Invariantes, Textos de Capa Frontal, e sem Textos de Quarta Capa. Uma cpia da licena inclu na seao o c e da c intitulada GNU Free Documentation License. veja: http://www.ic.unicamp.br/~norton/fdl.html.

Objetivos
Formalizar o conceito de linguagem; Apresentar uma classicaao de linguagens baseada c nesta formalizaao; c Fornecer ferramentas para implementar compiladores; Relacionar a hierarquia de linguagens com o conceito de computabilidade.

S mula da Disciplina u
1. Introduao ` Teoria de Linguagens Formais; c a Alfabetos, Sentenas e Linguagens; c Gramticas e Reconhecedores; a Tipos de Gramticas/Linguagens (Hierarquia de a Chomsky);

2. Gramticas Regulares e Autmatos Finitos; a o Deniao de Gramtica Regular (GR); c a Deniao de Autmato Finito; c o Autmato Finito No-Determin o a stico; Relaao entre Autmato Finito e GR; c o Minimizaao de Autmato Finito; c o Expresses Regulares; o Bombeamento para Linguagens Regulares; Mquinas de Moore e Mealy; a

3. Gramticas Livres de Contexto e Autmatos de a o Pilha; Deniao de GLC; c Arvores de Derivaao e Ambigidade; c u Transformaoes em GLC: Eliminao de S c ca mbolos Inteis; Transformaao em uma GLC -Livre; u c Remoao de Produoes Simples; Fatorao; c c ca Eliminaao de Recurso ` Esquerda; c a a Formas Cannicas: Forma Normal de Chomsky; o Forma Normal de Greibach; Autmatos de Pilha (PDA); o Relaao entre PDA e GLC; c

4. Reconhecedor Algoritmo CYK; 5. Linguagens Tipo 0 e Mquinas de Turing; a 6. Linguagens Sens veis ao Contexto e Autmatos de o Fita Limitada; 7. Hierarquia de Chomsky (revisitada).

Bibliograa
Introduction to Automata Theory, Languages, and Computation, Hopcroft e Ullman; Linguagens Formais e Autmatos, Paulo Blauth o Menezes.

Links
(Lminas) a http://www.ufpel.tche.br/~campani/lingformal.pdf (Lminas para impresso) a a http://www.ufpel.tche.br/~campani/lingformal4.ps.gz

INTRODUCAO

10

Introduo ca

Uma linguagem um meio de comunicao utilizado e ca por elementos de uma determinada comunidade. Formada por: Conjunto de palavras; Conjunto de regras gramaticais; Uma linguagem formal quando pode ser e representada atravs de um sistema com sustentao e ca matemtica. Formada por: a Sintaxe (estrutura) foco da nossa disciplina; Semntica (signicado) no interessa para ns. a a o

INTRODUCAO

11

Alfabeto (ou vocabulrio) um conjunto nito de a e s mbolos. Ex: d gitos, letras, etc. {a, b, c, . . . , z} {0, 1} Sentena (ou palavra, ou string) sobre um alfabeto c e qualquer seqncia nita de s ue mbolos do alfabeto. Ex: Seja o alfabeto V = {0, 1}, so sentenas vlidas a c a 001, 1010, etc. O tamanho (ou comprimento) de uma sentena c e dado pelo nmero de s u mbolos que a compe. Ex: o V = {a, b, c}, sentena w = ab, tamanho |w| = 2; c

INTRODUCAO

12

A sentena que no contm s c a e mbolos (tamanho zero) chamada de sentena vazia, sendo denotada por e c (|| = 0); Seja V um alfabeto. Representamos por: V conjunto de todas as sentenas compostas de c s mbolos de V incluindo a sentena vazia; c V + = V {}; Exemplo: V = {0, 1}, V = {, 0, 1, 00, 01, 10, 11, 000, 001, 010, . . .}, V + = {0, 1, 00, 01, 10, 11, 000, 001, 010, . . .}.

INTRODUCAO

13

Linguagem qualquer conjunto de sentenas sobre um e c alfabeto. ou Uma linguagem L sobre um alfabeto V tal que L V . e

INTRODUCAO

14

Tipos de linguagens: nitas, vazias e innitas; Representaao: c Listando as palavras (s nita); o Descriao algbrica. Ex: {an bn cn |n 1}. c e Notaao: c
n vezes

aaa a = an ; Denindo um algoritmo que determina (sim ou no) se uma sentena pertence a uma linguagem a c (Reconhecimento). Ex: autmato nito; o Denindo um mecanismo que gera todas as sentenas da linguagem em alguma ordem c (Gerao). Ex: gramtica. ca a

INTRODUCAO

15

Uma gramtica serve para denir qual o subconjunto a de sentenas que faz parte de uma determinada c linguagem. Ela um dispositivo formal para e especicar uma linguagem potencialmente innita de uma forma nita;

INTRODUCAO

16

Notao Formal de Gramtica ca a Uma gramtica G denida por uma qudrupla a e a G = (N, T, P, S) onde: N conjunto nito de no-terminais; a T conjunto nito de terminais; P conjunto nito de regras de produao; c S s mbolo inicial da gramtica. a Observaoes: N T = , V = N c P = { | V + V }. T, S N,

INTRODUCAO

17

Exemplo: gera nmeros inteiros u G = (N, T, P, I) N = {I, D} T = {0, 1, 2, . . . , 9} P = {I D, I DI, D 0, D 1, . . . , D 9} ou P : I D|DI, D 0|1|2| |9 Exerc cio: Reescrever tentando evitar nmeros tipo u 0015.

INTRODUCAO

18

Convenoes: c S mbolos no-terminais N = {A, B, C, . . . T }; a S mbolos terminais T = {a, b, c, . . . t}; S mbolo terminal ou no-terminal a N T = {U, V, . . . Z}; Seqncias de terminais T = {u, v, . . . z}; ue Seqncias de no-terminais e terminais ue a (N T ) = {, , , . . .}.

INTRODUCAO

19

Derivao () uma operaao de substituiao ca e c c efetuada de acordo com as regras de produo da ca gramtica. a Formalmente: se P e , V . Exemplo: G = ({S, A, B}, {0, 1}, {S AB, A 0|AB, B 1|1B}, S), e S AB ABB 0BB 01B 011B .

INTRODUCAO

20

Uma seqncia de derivaoes com zero ou mais ue c passos ( ): Formalmente: 1 m se 1 2 , 2 3 , . . . , m1 m , 1 , 2 , . . . , m V . Garantindo pelo menos uma substituiao (+ ): c Formalmente: 1 + m se 1 2 , 2 m , 1 , 2 , . . . , m V .

INTRODUCAO

21

Uma sentena de uma linguagem uma seqncia c e ue formada por terminais, obtida a partir do s mbolo inicial da gramtica desta linguagem, atravs de a e derivaoes sucessivas. c Formalmente: S + u. Uma forma sentencial uma seqncia qualquer, e ue composta de terminais e no-terminais, obtida a a partir do s mbolo inicial da gramtica atravs de a e derivaoes sucessivas. c Formalmente: S .

INTRODUCAO

22

A linguagem gerada por uma gramtica a G = (N, T, P, S) o conjunto de todas as sentenas e c da linguagem obtidas da gramtica por derivaoes a c sucessivas. Formalmente: L(G) = {w|w T S w}.

INTRODUCAO

23

Ex: G = ({S}, {0, 1}, P, S) com P = {S 0S1, S 01}. Assim, S 0S1 00S11 03 S13 que igual a 0n 1n e para n 1. Logo, L(G) = {0n 1n |n 1}. Notao: ca
n vezes

aaa a = an .

INTRODUCAO

24

Exerc cio: Seja a seguinte gramtica: a G = ({S, A, B}, {0, 1}, P, S) P = {S ASBB|BSAA|0, A 01|01A, B 10|10B} Obtenha as derivaoes para as seguintes sentenas: c c 1. 0101010; 2. 101000101010101.

INTRODUCAO

25

Tipos de Gramticas segundo a hierarquia de a Chomsky existem quatro tipos: Tipo 0 ou Irrestritas P = { | V + , V }; Tipo 1 ou Sens vel ao Contexto Se P ento || ||. a Outra forma: P = {1 A2 1 2 |1 , 2 V , V + , A N }; Tipo 2 ou Livre de Contexto P = { | N = }; Tipo 3 ou Regular A aB ou A a, ou seja, P = {A aX|A N, a T, X N {}}.

INTRODUCAO

26

Gramticas lineares: a Gramtica linear ` direita Se todas as produoes a a c so da forma A wB ou A w, com w T ; a Gramtica linear ` esquerda Se todas as a a produoes so da forma A Bw ou A w; c a Gramtica linear unitria ` direita linear ` a a a a direita com |w| 1; Gramtica linear unitria ` esquerda linear ` a a a a esquerda com |w| 1. Teorema: As quatro denioes de gramticas lineares c a so equivalentes. a

INTRODUCAO

27

Denio alternativa de gramtica regular: ca a Uma gramtica regular qualquer gramtica linear. a e a

INTRODUCAO

28

Regulares Livres de Contexto Sensiveis ao Contexto Tipo 0

Tipo 3 Tipo 2 Tipo 1 Tipo 0 T

INTRODUCAO

29

Ex: G = ({S, A, B}, {a, b}, P, S) P = {S aB|bA, A a|aS|bAA, B b|bS|aBB} 1. Tipo da gramtica? a 2. L(G)?

INTRODUCAO

30

Respostas: 1. Livre de contexto; 2. L(G) o conjunto de todas as palavras em T que e tem o mesmo nmero de as e bs. u

INTRODUCAO

31

Linguagens classicadas segundo as gramticas em: a 1. Recursivamente enumerveis ou RE a (gramtica Tipo 0) conjuntos recursivamente a enumerveis esto relacionado com a mquina de a a a Turing, funes parciais recursivas e co computabilidade; 2. Linguagem sens ao contexto ou LSC vel (gramtica Tipo 1); a 3. Linguagem livre de contexto ou LLC (gramtica Tipo 2); a 4. Linguagem Regular ou LR (gramtica Tipo 3). a

INTRODUCAO

32

Vamos extender as denioes das gramticas Tipo 1 c a e 2 para permitir produes do tipo S . Isto s co oe poss se S no aparece em lado direito de vel a nenhuma produo. Assim, S somente ser ca a utilizada para originar a sentena vazia; c L(G ) = L(G) {}

Para introduzir S em gramtica que viola a a condio anterior, devemos transforma-la em uma ca equivalente que obedea a restriao; c c Gramticas equivalentes so aquelas que geram a a a mesma linguagem;

INTRODUCAO

33

Para transformar incluiremos um novo s mbolo no-terminal (S ) que passar a ser o novo s a a mbolo inicial. Em seguida, incluiremos em P todas as regras que tenham o s mbolo S no lado esquerdo, substituindo este por S , e incluindo ainda uma regra S ; Ex1: G = ({S, A}, {a}, P, S) com P = {S aA, A a|aA}. Obtemos G = ({S, A}, {a}, P , S) com P = {S aA|, A a|aA};

INTRODUCAO

34

Ex2: G = ({S, A}, {a}, P, S) com P = {S aA, A a|aS}. Obtemos G = ({S , S, A}, {a}, P , S ) com P = {S aA|, S aA, A a|aS};

INTRODUCAO

35

Exerc cios: 1. Construa uma gramtica G tal que: a (a) L(G) = {an bm |n 0 m 1}; (b) L(G) = {ai bj ci |i 0 j 1}. 2. Construa uma gramtica regular G tal que: a L(G) = {w|w {0, 1}+ e no tem 1 s consecutivos} a 3. Construa uma gramtica livre de contexto G tal que: a L(G) = {w|w {0, 1, 2}+ e todos os zeros sejam consecutivos}

INTRODUCAO

36

4. Seja G denida por: S aS|bB, B cB|cC, C cS|c Pede-se: (a) determine L(G); (b) construa G tal que L(G ) = L(G) {}; (c) verique se as sentenas abaixo pertencem a L(G): c abccc; bccabcc; abccbbc.

INTRODUCAO

37

5. Construa uma GLC G tal que L(G) seja o conjunto de expresses aritmticas vlidas. Os terminais so o e a a identicadores (id), parnteses (( e )), e os e operadores +, , e unrio. a

GRAMATICAS REGULARES E AUTOMATO FINITO

38

Gramticas Regulares e a Autmato Finito o

O autmato nito (AF) uma mquina abstrata que o e a reconhece linguagens regulares; Modelo matemtico com entradas e sa a das. Se e fornecido ao AF uma seqncia de s ue mbolos como entrada, ele responder se esta seqncia pertence ` a ue a linguagem ou no; a O AF pode assumir um nmero nito de estados; u Um estado resume os estados anteriores pelos quais passou e os s mbolos que j foram lidos na entrada. a

GRAMATICAS REGULARES E AUTOMATO FINITO

39

Denio formal de autmato nito ca o Um autmato nito M sobre um alfabeto um o e sistema (K, , , q0 , F ) onde: K conjunto nito, no vazio, de estados; a alfabeto nito de entrada; funao de transiao de estados, c c :K q0 K estado inicial; F K conjunto de estados nais. {} K ;

GRAMATICAS REGULARES E AUTOMATO FINITO

40

Fita de entrada 0 Cabeote 1 0 0 1 0 1

Controle Finito

(q, a) = p para q, p K e a , signicando que estando no estado q e lendo o s mbolo a na ta de entrada podemos mudar para o estado p avanando o c cabeote uma posiao. c c

GRAMATICAS REGULARES E AUTOMATO FINITO

41

Diagrama de Transio ca Outra maneira de representar um autmato nito; o Grafo direcionado e rotulado; Os vrtices representam os estados, desenhados e como c rculos; As arestas representam as transioes entre dois c estados, sendo o rtulo o s o mbolo reconhecido na entrada; O estado inicial marcado com uma seta; e Os estados nais so indicados por c a rculos duplos.

GRAMATICAS REGULARES E AUTOMATO FINITO

42

Ex:
a

 @ABC GFED q0

@ABC / GFED q1

@ABC 89:; FED / G?>=< q2

M = ({q0 , q1 , q2 }, {a, b}, , q0 , {q2 }), e (q0 , a) = q1 , (q1 , a) = q1 , (q1 , b) = q2 . Logo, T (M ) = {an b|n 1}.

GRAMATICAS REGULARES E AUTOMATO FINITO

43

Tabela de Transiao de Estados c Uma terceira forma de representar um AF; Tabela indicando na vertical os estados, e na horizontal os s mbolos do alfabeto. No cruzamento esto as transioes poss a c veis; O estado inicial indicado por uma seta, e os e estados nais por asteriscos.

GRAMATICAS REGULARES E AUTOMATO FINITO

44

Ex1: q0 q1 *q2 Exerc cio: 1. Descreva formalmente o AF; 2. Desenhe o diagrama de transio equivalente. ca a q1 q1 b q2 -

GRAMATICAS REGULARES E AUTOMATO FINITO

45

Ex2: AF que reconhece sentenas em {0, 1} as quais no c a contm dois ou mais 1s consecutivos. e
0

1 + GFED @ABC ?>=< 89:; @ABC ?>=< 89:; / GFED k q0 q1


0

M = (K, , , q0 , F ), K = {q0 , q1 }, = {0, 1}, F = {q0 , q1 }, com (q0 , 0) = q0 , (q0 , 1) = q1 , (q1 , 0) = q0 . Exerc cio: Apresente a tabela de transiao. c

GRAMATICAS REGULARES E AUTOMATO FINITO

46

Tabela: q0 *q1 0 q0 q0 1 q1 -

GRAMATICAS REGULARES E AUTOMATO FINITO

47

Ex3: Identicadores de linguagens de programao ca S L|LR, R L|D|LR|DR, L a|b|c |z, D 0|1|2| |9


a|b||z|0|1||9

 a|b||z GFED @ABC @ABC 89:; FED / G?>=< q0 q1

Exerc cios: 1. Inteiros com ou sem sinal; 2. Reais (uma casa aps a v o rgula) com sinal opcional.

GRAMATICAS REGULARES E AUTOMATO FINITO

48

Extenso da funo para o dom a ca nio K : 1. (q, ) = q; 2. (q, ua) = ((q, u), a) para u e a ; (q, u) = p signica que M , iniciando no estado q e tendo a seqncia u na ta de entrada, entrar no ue a estado p, aps o cabeote mover-se para a direita |u| o c clulas; e Uma sentena u aceita por M se (q0 , u) = p para c e algum p F , ou seja: T (M ) = {u|(q0 , u) = p p F }; Qualquer conjunto de sentenas aceito por um AF c e dito ser regular (linguagem regular ).

GRAMATICAS REGULARES E AUTOMATO FINITO

49

Exemplo: M = (K, , , q0 , F ), = {0, 1}, K = {q0 , q1 , q2 , q3 }, F = {q0 }. (q0 , 0) = q2 (q1 , 0) = q3 (q2 , 0) = q0 (q3 , 0) = q1 (q0 , 1) = q1 (q1 , 1) = q0 (q2 , 1) = q3 (q3 , 1) = q2

GRAMATICAS REGULARES E AUTOMATO FINITO

50

 1 + GFED @ABC GFED k ?>=< 89:; @ABC q0 q1 T T 1


0

  1 + GFED @ABC GFED k @ABC q2 q3


1

0 0

GRAMATICAS REGULARES E AUTOMATO FINITO

51

q0 q1 q2 q3

0 q2 q3 q0 q1

1 q1 q0 q3 q2

Reconhecimento de 110101: (q0 , 110101) (q1 , 10101) (q0 , 0101) (q2 , 101) (q3 , 01) (q1 , 1) (q0 , ). Assim, 110101 T (M ). Reconhecimento de 1011: (q0 , 1011) (q1 , 011) (q3 , 11) (q2 , 1) (q3 , ). Assim, 1011 T (M ).

GRAMATICAS REGULARES E AUTOMATO FINITO

52

T (M ) = {w|w {0, 1} e w contm um nmero par de 0 s e 1 s}. e u

GRAMATICAS REGULARES E AUTOMATO FINITO

53

Autmato Finito No-Determin o a stico (AFND) Um autmato nito no-determinstico um sistema o a e (K, , , q0 , F ) onde: K conjunto nito, no vazio, de estados; a alfabeto de entrada; : K Partes(K) funao de transiao (no c c a determin stico); q0 K estado inicial; F K conjunto de estados nais.

GRAMATICAS REGULARES E AUTOMATO FINITO

54

Diferena entre AF e o AFND: (q, a) um conjunto c e de estados (possivelmente vazio) ao invs de um e unico estado; Assim, (q, a) = {p1 , p2 , . . . , pk } signica que M estando no estado q e tendo a na posio do cabeote ca c na ta de entrada, move uma clula para a direita e e escolhe qualquer estado entre p1 , p2 , . . . , pk como prximo estado. o

GRAMATICAS REGULARES E AUTOMATO FINITO

55

Extendendo para o dom nio K : 1. (q, ) = {q}; 2. (q, ua) = a ;


p(q,u)

(p, a) para todo u e

Uma sentena u aceita por M se existe um estado c e p F e p (q0 , u); T (M ) = {u|p (q0 , u) p F }.

GRAMATICAS REGULARES E AUTOMATO FINITO

56

Ex: AFND que aceita o conjunto de todas as sentenas c binrias que contm dois 0s ou 1s consecutivos. a e
0|1

GFED @ABC q > 3 }} 0|1 0 }} } }}  }} @ABC / GFED q0 e ee ee ee 1 ee GFED @ABC q1

@ABC 89:; FED / G?>=< q4

0|1 1

@ABC 89:; FED / G?>=< q2

GRAMATICAS REGULARES E AUTOMATO FINITO

57

M = ({q0 , q1 , q2 , q3 , q4 }, {0, 1}, , q0 , {q2 , q4 }) e (q0 , 0) = {q0 , q3 } (q1 , 0) = (q2 , 0) = {q2 } (q3 , 0) = {q4 } (q4 , 0) = {q4 } (q0 , 1) = {q0 , q1 } (q1 , 1) = {q2 } (q2 , 1) = {q2 } (q3 , 1) = (q4 , 1) = {q4 }

GRAMATICAS REGULARES E AUTOMATO FINITO

58

Teorema: Se L um conjunto aceito por um AFND, e ento existe um autmato nito determin a o stico (AFD) que aceita L. (Ou seja, o no determinismo no acrescenta nada a a a no ser praticidade ao AF). a

GRAMATICAS REGULARES E AUTOMATO FINITO

59

Seja M = (K, , , q0 , F ) um AFND que aceita L. Denimos o AFD M = (K , , , q0 , F ) tal que: Os estados de M so constituidos por todos os a subconjuntos do conjunto de estados de M : K = Partes(K) e K = 2K ; Notaao: estados de M so [q1 q2 q3 qi ], onde c a q1 , q2 , q3 , . . . , qi K; Ex: Se K = {q0 , q1 } ento K = {, [q0 ], [q1 ], [q0 q1 ]}; a F o conjunto de todos os estados de K contendo e um estado de F ; q0 = [q0 ];

GRAMATICAS REGULARES E AUTOMATO FINITO

60

Denimos ([q1 q2 q3 qi ], a) = [p1 p2 p3 pj ] se e somente se ({q1 , q2 , . . . , qi }, a) = {p1 , p2 , . . . , pj } = (q1 , a) (q2 , a) (qi , a).

GRAMATICAS REGULARES E AUTOMATO FINITO

61

Prova: T (M ) = T (M ). Por induo sobre o ca tamanho da palavra de entrada w. Devemos mostrar que ([q0 ], w) = [p1 pi ] se e somente se (q0 , w) = {p1 , . . . , pi }. 1. Base: |w| = 0, w = . Ento, ([q0 ], ) = [q0 ] se e a somente se (q0 , ) = {q0 }, que verdadeiro por e deniao; c 2. Hiptese: |w| = n, n 1. o Supor ([q0 ], w) = [p1 pi ] se e somente se (q0 , w) = {p1 , . . . , pi };

GRAMATICAS REGULARES E AUTOMATO FINITO

62

3. Passo: |wa| = n + 1, n 1: ([q0 ], wa) = [q1 qj ] se e somente se (q0 , wa) = {q1 , . . . , qj } que equivale a dizer que ([p1 pi ], a) = [q1 qj ] se e somente se ({p1 , . . . , pi }, a) = {q1 , . . . , qj } que verdade por deniao. e c

GRAMATICAS REGULARES E AUTOMATO FINITO

63

Exemplo: Dado o AFND M = ({q0 , q1 }, {0, 1}, , q0 , {q1 }) e (q0 , 0) = {q0 , q1 } (q0 , 1) = {q1 } (q1 , 0) = (q1 , 1) = {q0 , q1 } . Construir o AFD M equivalente.

GRAMATICAS REGULARES E AUTOMATO FINITO

64

M = (K , {0, 1}, , [q0 ], F ) K = {[q0 ], [q1 ], [q0 q1 ], } F = {[q1 ], [q0 q1 ]} (q0 , 0) = {q0 , q1 } ([q0 ], 0) = [q0 q1 ] (q0 , 1) = {q1 } ([q0 ], 1) = [q1 ] (q1 , 0) = ([q1 ], 0) = (q1 , 1) = {q0 , q1 } ([q1 ], 1) = [q0 q1 ]

GRAMATICAS REGULARES E AUTOMATO FINITO

65

({q0 , q1 }, 0) = (q0 , 0) (q1 , 0) = ([q0 q1 ], 0) = [q0 q1 ] = {q0 , q1 } = {q0 , q1 } ({q0 , q1 }, 1) = (q0 , 1) (q1 , 1) = ([q0 q1 ], 1) = [q0 q1 ] = {q1 } {q0 , q1 } = {q0 , q1 }

GRAMATICAS REGULARES E AUTOMATO FINITO

66

Tabela do AFND: q0 q1 Tabela do AFD equivalente: [q0 ] [q1 ] 0 [q0 q1 ] 1 [q1 ] [q0 q1 ] 0 q0 , q 1 1 q1 q0 , q 1

[q0 q1 ] [q0 q1 ] [q0 q1 ]

GRAMATICAS REGULARES E AUTOMATO FINITO

67

Relao entre AF e GR ca Teorema: Se G = (N, T, P, S) uma GR (Tipo 3) e ento existe um AF M = (K, T, , S, F ) tal que a T (M ) = L(G). Seja M um AFND: os estados de M so as variveis de G, mais um a a estado adicional A, A N . Assim, K = N {A}; estado inicial de M S; e se P tem produao S ento F = {S, A}, caso c a contrrio F = {A}; a

GRAMATICAS REGULARES E AUTOMATO FINITO

68

transioes de M : c 1. (B, a) = A para cada B a P ; 2. (B, a) = C para cada B aC P ; 3. (A, a) = para todo a T . Provar que T (M ) = L(G).

GRAMATICAS REGULARES E AUTOMATO FINITO

69

Exemplo: G = ({S, B}, {0, 1}, P, S), e P : S 0B, B 0B|1S|0 Construir um AF que aceite L(G): M = ({S, B, A}, {0, 1}, , S, {A}) (S, 0) = {B} S 0B (S, 1) = (B, 0) = {B, A} B 0B|0 (B, 1) = {S} B 1S

GRAMATICAS REGULARES E AUTOMATO FINITO

70

Convertendo para um AFD: M = (K , {0, 1}, , [S], F ) K = {, [S], [A], [B], [AS], [AB], [BS], [ABS]} F = {[A], [AS], [AB], [ABS]} ([S], 0) = [B] ([B], 0) = [AB] ([S], 1) = ([B], 1) = [S] ([AB], 0) = (A, 0) (B, 0) = {A, B} = [AB] ([AB], 1) = (A, 1) (B, 1) = {S} = [S] (, 0) = (, 1) =

GRAMATICAS REGULARES E AUTOMATO FINITO

71

Eliminando os estados inacess veis: K = {[S], [B], [AB]} F = {[AB]}

GRAMATICAS REGULARES E AUTOMATO FINITO

72

Teorema: Se M = (K, T, , q0 , F ) um AF ento e a existe uma gramtica do Tipo 3, G = (N, T, P, S), tal a que L(G) = T (M ). Para obter G: N = K; S = q0 ; Produoes: c 1. B aC para toda a transio (B, a) = C; ca 2. B a para toda a transio (B, a) = C, ca quando C F ; Se T (M ) ento L(G) = T (M ); a

GRAMATICAS REGULARES E AUTOMATO FINITO

73

Se q0 F ento T (M ), e L(G) = T (M ) {}. a Neste caso, construir uma L(G ) = L(G) {}; Provar L(G) = T (M ).

GRAMATICAS REGULARES E AUTOMATO FINITO

74

Exemplo: Contruir G = (K , {0, 1}, P , [S]), K = {[S], [B], [AB]}, a partir de M do exemplo anterior: [S] 0[B] ([S], 0) = [B] [B] 0[AB] ([B], 0) = [AB] [B] 0 [AB] F [AB] 0[AB] ([AB], 0) = [AB] [AB] 0 [AB] F [B] 1[S] ([B], 1) = [S] [AB] 1[S] ([AB], 1) = [S]

GRAMATICAS REGULARES E AUTOMATO FINITO

75

Minimizao de AF. ca Um AF M mnimo se: e 1. no possui estados inacess a veis; 2. no possui estados mortos; a 3. no possui estados equivalentes. a

GRAMATICAS REGULARES E AUTOMATO FINITO

76

Construo do AF m ca nimo: 1. retirar de K os estados inacessveis, ou seja, todo estado q K para o qual no exista sentena w tal a c que (q0 , w) = q; 2. retirar de K os estados mortos, ou seja, todo estado que no sendo estado nal e que no conduz a a a nenhum estado nal durante o reconhecimento; 3. construir todas as poss veis classes de equivalncia e de estados;

GRAMATICAS REGULARES E AUTOMATO FINITO

77

4. construir M = (K , , , q0 , F ) conforme segue: K o conjunto das classes de equivalncia e e obtidas; q0 a classe de equivalncia que contm q0 ; e e e F o conjunto de todas as classes de e equivalncia que contm pelo menos um estado e e de F ; o conjunto de transioes tais que e c ([p], a) = [q] para toda a transio (p1 , a) = q1 , ca onde p1 [p] e q1 [q].

GRAMATICAS REGULARES E AUTOMATO FINITO

78

Construo das Classes de Equivalncia: ca e Um conjunto de estados q1 , q2 , . . . , qj est em uma a mesma classe de equivalncia se todas as transies e co poss veis a partir de cada estado conduz o autmato o aos estados qi , qi+1 , . . . , qn , estando estes ultimos todos em uma mesma classe de equivalncia. e

GRAMATICAS REGULARES E AUTOMATO FINITO

79

Algoritmo: 1. Criar um estado para representar as transioes c indenidas; 2. Dividir K em duas classes de equivalncia iniciais, e uma contendo os estados nais e a outra todos os demais estados de K; 3. Dividir sucessivamente as classes obtidas, at que e nenhuma nova classe possa ser obtida.

GRAMATICAS REGULARES E AUTOMATO FINITO

80

Exemplo: q0 q1 q2 q3 q4 q5 a q1 q3 q3 q4 q5 b q5 q2 q2 q3 q1 q5

GRAMATICAS REGULARES E AUTOMATO FINITO

81

Aplicando: 1. estados inacess veis: q4 ; 2. estado morto: q5 ; q0 q1 q2 q3 a q1 q3 q3 b q2 q2 q3

GRAMATICAS REGULARES E AUTOMATO FINITO

82

3. classes de equivalncia: e {q2 , q3 } {q0 , q1 , } {q0 , } {} {} [2] {q1 } [3]


tt tt tt tt t

{q0 } {q2 , q3 } [0] {q0 } [1]

t tt t tt t tt

{q1 }

GRAMATICAS REGULARES E AUTOMATO FINITO

83

4. autmato sem classes de equivalncia: o e [0] [2] [3] a [0] [2] [2] b [0] [2] [2] [0]

[1] [3]

GRAMATICAS REGULARES E AUTOMATO FINITO

84

5. AF m nimo: [0] [3] a [0] b [0] [0]

[1] [3]

GRAMATICAS REGULARES E AUTOMATO FINITO

85

Exerc cios: 1. Minimize o seguinte AF:


 a + GFED GFED k @ABC @ABC q0 q1
a

 GFED @ABC ?>=< 89:; q3 } } eea} b } a }e b }} eee   }} ~ @ABC ?>=< 89:; @ABC / GFED 2 GFED q4 q5
a b

 GFED @ABC ?>=< 89:; q2 e e e

GRAMATICAS REGULARES E AUTOMATO FINITO

86

2. Minimize o seguinte AF:


 GFED @ABC q0
a

 GFED @ABC q1 e ee } eea }} b } ee } } ee } }} ~ b GFED o @ABC GFED @ABC ?>=< 89:; q2 f q > 3 l 2 }} b a }} } }} a }} & GFED @ABC ?>=< 89:; q4

GRAMATICAS REGULARES E AUTOMATO FINITO

87

Expresses Regulares so esquemas para o a representar linguagens regulares; Sintaxe: 1. Todos os s mbolos do alfabeto so ER; a 2. Se R1 e R2 so ER, ento (R1 |R2 ) uma ER a a e (unio); a 3. Se R1 e R2 so ER, ento (R1 R2 ) uma ER a a e (concatenaao); c 4. Se R1 ER, ento (R1 ) uma ER (repetiao). e a e c
+ ? Observaoes: R1 = R1 (R1 ) e R1 = R1 |. c

GRAMATICAS REGULARES E AUTOMATO FINITO

88

Exemplos: (a) = a = {, a, aa, aaa, . . .}; a+ = {a, aa, aaa, . . .}; (a|b) = {, a, b, aa, ab, ba, bb, aaa, . . .}; a|b = {, a, b, bb, bbb, . . .}; a(a|b) = {a, aa, ab, aaa, aab, aba, abb, aaaa, . . .}; (a(a|b)) = {, aa, ab, aaaa, abaa, aaab, . . .}; Identicadores: l(l|d) = {l, ll, ld, lll, . . .}; Inteiro com sinal: (+|)d+ ; Inteiro com/sem sinal: ((+|)d+ )|d+ .

GRAMATICAS REGULARES E AUTOMATO FINITO

89

Bombeamento para Linguagens Regulares (Pumping Lemma) serve para provar que uma dada linguagem regular; e Para provar que sim: AF, GR, ER; Para provar que no: bombeamento; a Prova por reduo ao absurdo; ca Seja M = (K, , , q0 , F ) e K = n; Considere uma entrada w tal que |w| n;

GRAMATICAS REGULARES E AUTOMATO FINITO

90

Assim, o caminho no diagrama de transioes deve c passar por um conjunto de estados Q K mais de uma vez (lao); c
  GFED /o /o /o / ONML /o /o /o / GFED @ABC HIJK @ABC ?>=< 89:; q0 qi Q

GRAMATICAS REGULARES E AUTOMATO FINITO

91

Lema: Seja L uma linguagem regular. Ento, existe a uma constante n tal que se z uma palavra de L, e e |z| n, nos podemos dizer que z = uvw de tal forma que |uv| n, |v| 1 e, para todo i 0, uv i w est a em L.

GRAMATICAS REGULARES E AUTOMATO FINITO

92

Aplicao do bombeamento (aplicado como um ca jogo contra um adversrio): a 1. Selecione uma linguagem L que desejamos provar que no regular; a e 2. O adversrio escolhe um n, a constante do Lema. a Uma vez escolhido o n ele no pode muda-lo; a 3. Selecione uma string z L. Sua escolha depende do n escolhido no passo anterior; 4. O adversrio quebra z nas partes u,v, e w, tal a que |uv| n e |v| 1; 5. Voc encontra a contradiao mostrando que para e c qualquer u, v, e w escolhido pelo adversrio, a existe um i para o qual uv i w no est em L. a a

GRAMATICAS REGULARES E AUTOMATO FINITO

93

Ex: L = {a |n 1} no regular. a e Soluo: Suponha z = an , z L e L regular. Seja ca e z = uvw, onde 1 |v| n e uv i w L para todo i. Em particular, seja i = 2. Ento, a n2 < |uv 2 w| n2 + n, j que |uv 2 w| = |uvw| + |v|, a |uvw| = n2 . Logo, n2 < |uv 2 w| n2 + n < (n + 1)2 . Ou seja, o tamanho de uv 2 w ca entre n2 e (n + 1)2 e no pode ser um quadrado perfeito. Assim, uv 2 w L a e L no regular. a e
2

n2

GRAMATICAS REGULARES E AUTOMATO FINITO

94

Exerc cio: Prove por bombeamento que L = {an bn |n 0} no regular. a e

GRAMATICAS REGULARES E AUTOMATO FINITO

95

Soluo: Suponha z = an bn , z L e L regular. ca e Escolho uv = an , w = bn . Observe que uv i w L para i > 1, j que, neste caso, teriamos am bn para m > n. a Logo, por reduo ao absurdo, L no regular. ca a e

GRAMATICAS REGULARES E AUTOMATO FINITO

96

AF com Sa (Moore e Mealy) no se restringe a da a aceita/rejeita, produz uma string de sa da; Mquina de Mealy sa associada `s transies; a da a co M = (K, , , q0 , F, ) Onde: K conjunto nito de estados; alfabeto nito de entrada; : K K funao de transiao; c c q0 K estado inicial; F K conjunto de estados nais; alfabeto nito de sa da;

GRAMATICAS REGULARES E AUTOMATO FINITO

97

(q, a) = (p, w), com p, q K, a , e w , signica que o AF, estando no estado q e tendo a na ta de entrada, muda para o estado p e escreve a string w na ta de sa da.

GRAMATICAS REGULARES E AUTOMATO FINITO

98

Exemplo: Seja = {x} e = {a, b}. M uma e mquina de Mealy que reconhece uma palavra a w,|w| 1, tal que w = x+ e produz uma seqncia ue v = (ab)+ , em que |v| = 2|w|. Soluo: ca
 @ABC GFED q0
(x,ab)

@ABC 89:; FED / G?>=< q1 l

(x,ab)

Observaao: arestas so rotuladas com um par (x, y), c a onde x o s e mbolo lido e y a string produzida na e sa da.

GRAMATICAS REGULARES E AUTOMATO FINITO

99

Mquina de Moore sa associada aos estados; a da M = (K, , , q0 , F, , S ) Onde: K conjunto nito de estados; alfabeto nito de entrada; : K K funao de transiao; c c q0 K estado inicial; F K conjunto de estados nais; alfabeto nito de sa da; S : K funao (total) de sa c da;

GRAMATICAS REGULARES E AUTOMATO FINITO

100

Exemplo: o mesmo anterior (xxx x ababab ab). Soluo: ca


x

 @ABC GFED q0 ,a

@ABC ?>=< 89:; / GFED q1 ,b

HIJK @ABC GFED / ONML q2 ,ab

Observaao: os vrtices so rotulados com um par c e a (x, y), onde x o nome do estado e y a sa e e da produzida pelo estado.

GRAMATICAS REGULARES E AUTOMATO FINITO

101

Equivalncia das Mquinas de Moore e Mealy e a Excetuando-se a string vazia, os dois modelos de mquina so equivalentes; a a A mquina de Moore sempre gera pelo menos a a palavra associada ao estado inicial, no podendo a assim gerar a sentena vazia; c Prova de equivalncia por simulaao mtua (exceto e c u a sentena vazia); c

GRAMATICAS REGULARES E AUTOMATO FINITO

102

Teorema: A mquina de Mealy simula a mquina a a de Moore. Prova: Suponha MO = (K, , MO , q0 , F, , S ) uma mquina de Moore. Seja: a ME = (K {qe }, , ME , qe , F, ) uma mquina de Mealy, onde ME denido como a e segue: 1. ME (qe , a) = (MO (q0 , a), S (q0 )S (MO (q0 , a))); 2. ME (q, a) = (MO (q, a), S (MO (q, a))).

GRAMATICAS REGULARES E AUTOMATO FINITO

103

 ONML HIJK q0 ,u0 V


a0

a1

HIJK / ONML q1 ,u1

 GFED @ABC qe e ee ee(a1 ,u0 u1 ) ee (a0 ,u0 u0 ) ee  GFED @ABC @ABC / GFED q0 q1 T (a1 ,u1 )
(a0 ,u0 )

GRAMATICAS REGULARES E AUTOMATO FINITO

104

Observe que o estado qe introduzido referenciado e apenas na primeira transiao executada. Seu c objetivo garantir a geraao da sa referente ao e c da estado inicial q0 de MO; Provar por induao. c

GRAMATICAS REGULARES E AUTOMATO FINITO

105

Teorema: A mquina de Moore simula a mquina a a de Mealy;

GRAMATICAS REGULARES E AUTOMATO FINITO

106

Exerc cios: 1. Construa um AF M que aceite: (a) todas as sentenas em {0, 1}+ que apresentem c cada 1 seguido imediatamente de dois zeros; (b) todas as sentenas em {a, b} de modo que todo c a aparea entre dois b; c (c) todas as sentenas de {a, b}+ de modo que o c ultimo s mbolo seja b e o nmero de s u mbolos a seja par. 2. Construa a gramtica regular equivalente a cada um a dos autmatos do exerc anterior. o cio

GRAMATICAS REGULARES E AUTOMATO FINITO

107

3. Dena a expresso regular que representa valores a redondos em reais (Ex: R$1,00 ou R$200,00 ou R$1.000.000,00 ou R$3.000,00).

GRAMATICAS REGULARES E AUTOMATO FINITO

108

4. Seja a seguinte gramtica regular: a S 0S|1S|0A|0C|1B A 0A|0 B 1B|1 C 0A|0 Pede-se: (a) o AFND M tal que T (M ) = L(G); (b) o AFD M tal que T (M ) = T (M ); (c) M tal que T (M ) = T (M ) e M seja m nimo.

GRAMATICAS REGULARES E AUTOMATO FINITO

109

5. Seja G denida por: S aB|aD B bB|bC C cC|cD D d E aB|a Pede-se: (a) o AF M tal que T (M ) = L(G); (b) Determine T (M ); (c) Minimize M .

GRAMATICAS REGULARES E AUTOMATO FINITO

110

6. Seja T (M ) = {abn cm d|0 n 2 m 1}. Pede-se: (a) construa M ; (b) construa G tal que L(G) = T (M ). 7. Construa o AF e a gramtica regular equivalentes a a cada uma das ER a seguir: (a) a(b|ca)d (a|b)+ ; (b) (a(b|ca) (b|c)a )+ .

GRAMATICAS REGULARES E AUTOMATO FINITO

111

8. Projete uma mquina de Moore que recebendo um a valor em reais (ex: R$10.000,00) converta para dlares (suponha relaao 1-1 entre dolar e real logo, o c US$10,000.00). 9. O mesmo que o exerc anterior, usando mquina cio a de Mealy.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

112

Gramtica Livre de Contexto e a Autmato de Pilha o

As GLC tem grande importncia pois atravs delas a e podemos denir a maioria das estruturas de linguagens de programaao; c As linguagens livres de contexto representam um conjunto mais amplo de linguagens que o das linguagens regulares; O autmato de pilha (PDA) um autmato mais o e o poderoso que o AF; AF PDA (PDA simula AF e AF no simula PDA); a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

113

Exteno da denio de GLC para permitir ca ca produes na forma A (chamadas -produes); co co Nova denio: P = {A |A N (N T ) }; ca Uma GLC -livre quando no possui -produoes e a c ou quando possui apenas S , onde S o s e mbolo inicial da gramtica, e S no aparece do lado direito a a de nenhuma regra de produao; c

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

114

Arvores de Derivao para GLCs so ca a representaoes grcas para as derivaoes da GLC c a c (formam uma estrutura hierrquica); a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

115

Seja G = (N, T, P, S) uma GLC. Uma rvore uma a e a rvore de derivao para G se: ca 1. todo nodo tem um rtulo que um s o e mbolo de V ; 2. o rtulo da raiz S; o e 3. se um nodo A tem um ou mais descendentes, ento a A um elemento de N ; e 4. se A1 , A2 , . . . , An so descendentes diretos de A, da a esquerda para a direita, ento a A A1 A2 An P ; 5. se D a unica sub-rvore da raiz e tem rtulo , e a o ento S P . a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

116

Exemplo: G = ({S, A}, {a, b}, P, S), P = {S a|aAS, A SbA|SS|ba}. Derivao: ca S aAS aSbAS aabAS aabbaS aabbaa. Arvore de derivao: ca Sd d  Ac b b

a S a

    

dd dd d

   

cc cc cc

Sb b Ab

bb bb bb

    

bb bb bb b

a a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

117

Profundidade da rvore de derivao o a ca e comprimento do maior caminho entre a raiz e um nodo terminal. No exemplo anterior 3; e Limite de uma rvore de derivao a seqncia a ca e ue formada pela concatenao, da esquerda para a ca direita, das folhas da rvore de derivao; a ca

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

118

Derivaao mais ` esquerda e mais ` direita a rvore c a a a de derivao ignora variaoes na ordem em que os ca c s mbolos so substituidos na derivao. Assim, a ca G = ({E}, {+, , (, ), , id}, P, E) P = {E E + E|E E|(E)| E|id} tomando a sentena (id + id) podemos deriva-la das c duas seguintes formas: 1. E E (E) (E + E) (id + E) (id + id); 2. E E (E) (E + E) (E + id) (id + id);

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

119

Ambas correspondem a mesma rvore de derivao: a ca


~ ~~ ~ ~~ ~

Ed

dd dd dd

( E id

         

Ec

cc cc cc c

Ec +

cc cc cc c

E id

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

120

Derivaao mais ` esquerda: s c a mbolo substituido e sempre o no-terminal mais ` esquerda na forma a a sentencial; Derivaao mais ` direita: s c a mbolo substituido e sempre o no-terminal mais ` direita na forma a a sentencial; Nas duas derivaoes mostradas a pouco, a primeira c e mais ` esquerda e a segunda mais ` direita; a a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

121

Exemplo: id + id id Derivaao mais ` esquerda: E E + E id + E c a id + E E id + id E id + id id Derivaao mais ` direita: E E + E c a E + E E E + E id E + id id id + id id Observaao: se w L(G) e G uma GLC, ento w c e a tem pelo menos uma rvore de derivaao e, a c correspondendo a esta rvore existe uma s derivao a o ca mais ` esquerda e uma s derivaao mais ` direita. a o c a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

122

Uma GLC ambgua se para a mesma sentena e c existe mais de uma rvore de derivao; a ca Exemplo: id + id id

Ea + E id

aa aa aa

E id

Ea

aa aa aa

E id

E id

E aaa aa aa Ea E aa aa aa + E

id

id

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

123

Uma linguagem inerentemente ambgua aquele em e que todas as GLC que a geram so amb a guas. Exemplo: L = {an bn cm dm |n 1 m 1} {an bm cm dn |n 1 m 1}

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

124

Representada pela seguinte gramtica: a G = ({S, X, Y, Z, W }, {a, b, c, d}, P, S) S XY |Z X ab|aXb Y cd|cXd Z aW d|aZd W bc|bW c

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

125

Exemplo de derivaao: abcd c


SV

VV VV VV

S ZV

X b

YU c

UU UU UU

a b

VV VV VV VV VV VV

WV

d c

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

126

Transformaoes de GLC tem o objetivo de c simplicao e preparao para aplicaes ca ca co posteriores. Observao: a gramtica transformada ca a deve ser equivalente ` original. a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

127

Eliminao de s ca mbolos inteis u Um s mbolo intil se ele no aparece na derivaao e u a c de nenhuma sentena. c estril no gera nenhuma seqncia de terminais e a ue pertencente a uma sentena; c inalcanvel no aparece em nenhuma forma ca a sentencial da gramtica. a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

128

Determinao do conjunto de s ca mbolos frteis: e 1. Construir o conjunto N0 = e fazer i = 1; 2. Repetir (a) Ni = {A|A P (Ni1 T ) }; (b) i = i + 1; at que Ni = Ni1 ; e 3. Ni o conjunto de s e mbolos frteis. e Observaao: se o s c mbolo inicial no zer parte dos a s mbolos frteis, ento a linguagem gerada pela e a gramtica vazia. a e

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

129

Exemplo: G = ({S, A, B, C, D}, {a, b, c, d}, P, S), P = {S aA, A a|bB, B b|dD, C cC|c, D dD}. Soluo: ca 1. N0 = ; 2. N1 = {A, B, C}; 3. N2 = {S, A, B, C}; 4. N3 = {S, A, B, C} = N2 . Conjunto dos s mbolos frteis: {S, A, B, C}. e Gramtica simplicada: a G = ({S, A, B, C}, {a, b, c}, P , S), P = {S aA, A a|bB, B b, C cC|c}.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

130

Determinao do conjunto de s ca mbolos alcanaveis: c 1. Construir o conjunto V0 = {S} (S=s mbolo inicial) e fazer i = 1; 2. Repetir (a) Vi = {X|A X P A Vi1 , (N T ) X V } Vi1 ; (b) i = i + 1; at que Vi = Vi1 ; e 3. Vi o conjunto de s e mbolos alcanveis. ca

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

131

Exemplo: G do exemplo anterior. G = ({S, A, B, C}, {a, b, c}, P , S), P = {S aA, A a|bB, B b, C cC|c}. Soluo: ca 1. V0 = {S}; 2. V1 = {a, A} 3. V2 = {a, b, B} 4. V3 = {b} V0 = {S, a, A}; V1 = {S, a, A, b, B};

V2 = {S, a, A, b, B} = V2 .

Conjunto de s mbolos alcanaveis: {S, A, B, a, b}. c Gramtica simplicada: a G = ({S, A, B}, {a, b}, P , S), P = {S aA, A a|bB, B b}.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

132

Transformaao de GLC qualquer em GLC -livre: c 1. Reunir em um conjunto os no-terminais que a derivam direta ou indiretamente a sentena vazia: c Ne = {A|A N A + }; 2. Construir o conjunto de regras P como segue: (a) incluir em P todas as regras de P , com excesso a daquelas da forma A ; (b) para cada ocorrncia de um s e mbolo Ne do lado direito de alguma regra de P , incluir em P mais uma regra, substituindo este s mbolo por . Isto , para cada regra de P tipo A B, B Ne e e , V , incluir em P a regra A ;

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

133

3. Se S Ne , adicionar a P as regras S S e S , incluindo este novo no-terminal S em a N = N {S }. Caso contrrio, trocar os nomes de a S por S e de N por N ; 4. A nova gramtica ser denida por: a a G = (N , T, P , S ).

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

134

Exemplos: 1. P : S aB, B bB|. Soluo: Ne = {B} e ca P : S aB|a, B bB|b; 2. P : S bDCe, D dD|, C cC|. Soluao: c Ne = {D, C} e P : S bDCe|bCe|bDe|be, D dD|d, C cC|c; 3. P : S aS|. Soluo: Ne = {S} e ca P : S S|, S aS|a.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

135

Remoo de Produes Simples produes simples ca co co so produes na forma A B, onde A, B N : a co 1. Transformar a GLC em GLC -livre, se necessrio; a 2. Para todo no-terminal de N , construir um a conjunto com os no-terminais que ele pode derivar a em zero ou mais passos. Isto , A N , construir e NA = {B|A B}; 3. Se B P e no produo simples, adicione a a e ca P as produoes A para todo A tal que c B NA ; 4. a GLC equivalente sem produoes simples c e G = (N, T, P , S).

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

136

Exemplos: 1. P : S bS|A, A aA|a. Soluo: NS = {S, A}, ca NA = {A}, e P : S bS|aA|a, A aA|a; 2. P : S aSb|A, A aA|B, B bBc|bc. Soluo: ca NS = {S, A, B}, NA = {A, B}, NB = {B}, e P : S aSb|aA|bBc|bc, A aA|bBc|bc, B bBc|bc.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

137

Fatoraao de GLC c Uma GLC est fatorada se ela determin a e stica, isto , no possui produes cujo lado direito inicie com o e a co mesmo conjunto de s mbolos ou com s mbolos que gerem seqncias que iniciem com o mesmo conjunto ue de s mbolos. Por exemplo, uma gramtica fatorada a no poderia apresentar as seguintes regras: a A aB|aC , pois ambas inicial com o terminal a. Outro exemplo de gramtica no-fatorada : a a e S A|B A ac B ab .

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

138

Para fatorar: 1. as produes que apresentam no-determinismo co a direto, da forma A | sero substituidas por a A A A |

sendo A um novo no-terminal; a 2. o no-determinismo indireto retirado fazendo, nas a e regras de produao, as derivaes necessrias para c co a torna-lo um no-determinismo direto, resolvido com a o passo anterior.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

139

Exemplos: 1. P : S aA|aB, A aA|a, B b. Soluao: c P : S aS , S A|B, A aA , A A|, B b; 2. P : S Ab|ab|baA, A aab|b. Soluao: c (no-determinismo indireto) a P : S aabb|bb|ab|baA, A aab|b e P : S aS |bS , S abb|b, S b|aA, A aab|b.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

140

Fatoraao importante pois na implementao de c e ca um compilador, o mesmo deve seguir uma gramtica a que no apresente no-determinismo pois, caso a a contrrio, no processo de reconhecimento haveria a retornos (backtracking) que acabam reduzindo a ecincia do algoritmo de reconhecimento. e

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

141

Teorema: Toda LLC sem pode ser denida por uma gramtica que no contm s a a e mbolos inteis, u -produes, nem produes simples. co co Prova: Conseqncia dos algoritmos apresentados. ue

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

142

Eliminao da Recurso ` Esquerda ca a a Um no-terminal A recursivo se A + A, a e , V . Se = , ento A recursivo ` esquerda. a e a Se = , recursivo ` direita. A recursividade pode e a ser direta ou indireta. Uma gramtica recursiva ` esquerda se possui pelo a e a menos um no-terminal recursivo ` esquerda. Se a a possui pelo menos um no-terminal recursivo ` a a direita, ela chamada recursiva ` direita. e a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

143

A importncia da recursividade ` esquerda que a a e alguns tipos de compiladores podem executar o processo de reconhecimento como chamadas de rotinas (procedimentos ou funes). Assim, uma co gramtica recursiva ` esquerda, tal como por a a exemplo A Aa|a, acaba gerando um lao innito c A Aa Aaa Aaaa e o processo de reconhecimento no naliza nunca. a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

144

Algoritmo: 1. recurses diretas: substituir cada regra o A A1 |A2 | |An |1 |2 | |m , onde nenhum i comea por A, por: c A 1 A |2 A | |m A A 1 A |2 A | |n A |

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

145

2. recurses indiretas: o (a) ordene os no-terminais de G em uma ordem a qualquer (A1 , A2 , . . . , An ); (b) para i de 1 at n faa e c para j de 1 at (i 1) faa e c troque Ai Aj por Ai 1 |2 | |k , onde 1 , 2 , . . . , k so os lados direitos das a Aj -produes (ou seja, Aj 1 | |k ); co m para elimine as recurses diretas das Ai -produoes; o c m para.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

146

Exemplo: P : S Aa, A Sb|cA|a. Soluo: ca (A1 = S, A2 = A), n = 2, e 1. i = 1 (no faz j pois o lao de 1 at 0); a c e e Eliminando as recurses diretas das S-produes: o co no faz nada (pois no tem); a a 2. i = 2 e j = 1: Trocar produoes tipo A S: c P : S Aa, A Aab|cA|a; Eliminar as recurses diretas das A-produoes: o c P : S Aa, A cAA |aA , A abA |.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

147

Exerc cio: Elimine a recurso ` esquerda da GLC a a P : S Aa|b, A Bb|a, B Sb|b.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

148

Forma Normal de Chomsky (FNC) A FNC uma forma cannica. Uma GLC est na e o a FNC se ela -livre e apresenta todas as produoes e c da forma A BC ou A a , onde A, B, C N e a T .

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

149

Teorema: Toda LLC -livre pode ser gerada por uma GLC na FNC.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

150

Para converter uma GLC G = (N, T, P, S) -livre para a FNC: 1. obter G = (N , T, P , S) a partir de G, removendo de G as produoes simples, de modo que c L(G ) = L(G); 2. nas regras de G em que o lado direito apresenta mais de um termo, substituir cada terminal a T por um novo no-terminal Aa , incluindo para cada a destes novos no-terminais uma nova regra Aa a, a resultando em G = (N , T, P , S);

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

151

3. substituir cada regra do tipo A B1 B2 Bm , m3

onde A, B1 , . . . Bm so no-terminais, pelo conjunto a a de regras: A B 1 B1 B1 B 2 B2 . . . Bm2 Bm1 Bm onde B1 , B2 , . . . , Bm2 so novos no-terminais; a a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

152

4. a gramtica na FNC G = (N , T, P , S). a e

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

153

Exemplo: Obtenha a FNC. P : S A|ABA A aA|a B bB|b Soluo: ca 1. P : S aA|a|ABA A aA|a B bB|b

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

154

2. P : S Aa A|a|ABA A Aa A|a B Ab B|b Aa a Ab b

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

155

3. P : S Aa A|a|AB B BA A Aa A|a B Ab B|b Aa a Ab b

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

156

Forma Normal de Greibach (FNG) A FNG tambm uma forma cannica. Uma GLC e e o est na FNG se ela -livre e apresenta todas as a e produes na forma: co A a , onde A N , a T , e N .

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

157

Teorema: Toda LLC -livre pode ser gerada por uma GLC na FNG.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

158

Algoritmo: 1. achar G = (N , T, P , S) tal que L(G ) = L(G) e G est na FNC; a 2. ordenar os no-terminais de G em uma ordem a qualquer N = (A1 , A2 , . . . , Am ); 3. modicar as regras de P de modo que, se Ai Aj P , ento j > i; a 4. a gramtica obtida no passo anterior, G , a apresentar todas as regras de Am com o lado a direito iniciando por terminal. Por substituies co sucessivas dos primeiros termos das regras Ai anteriores, coloca-se estas tambm na mesma e forma;

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

159

5. se no item 3 tiverem sido inclu dos novos no-terminais Bi (para retirar recurses ` a o a esquerda), fazer tambm para as regras e correspondentes a estes, as devidas substituioes c dos primeiros termos (que sero sempre terminais a ou Ai ); 6. A G est na FNG. a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

160

Exemplo: Obtenha a FNG. P : S AS|a A SA|b Soluo: ca 1. G j est na FNC; a a 2. Renomear os no-terminais: S = A1 e A = A2 ; a P : A1 A2 A1 |a A2 A1 A2 |b

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

161

3. se Ai Aj P , ento j > i. A unica regra a a modicar : e A2 A1 A2 . Substituindo A1 nesta regra: A2 A2 A1 A2 |aA2 |b .

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

162

Retirando a recurso ` esquerda de a a


A A 1 1 2

A2 A2 A1 A2 | aA2 | b , obteremos: P : A1 A2 A1 |a
A 1 A 2 A

A2
A

aA2 B2 | b
1 A

B2

B2

A1 A2 B2 |

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

163

Retirando o por substituioes: c P : A1 A2 A1 |a A2 aA2 B2 |bB2 |aA2 |b B2 A1 A2 B2 |A1 A2

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

164

4. Fazendo as substituioes nais para tornar todos os c lados direitos na forma A a, A N , a T e N : P : A1 aA2 B2 A1 |bB2 A1 |aA2 A1 |bA1 |a A2 aA2 B2 |bB2 |aA2 |b B2 aA2 B2 A1 A2 B2 |bB2 A1 A2 B2 | aA2 A1 A2 B2 |bA1 A2 B2 |aA2 B2 | aA2 B2 A1 A2 |bB2 A1 A2 |aA2 A1 A2 | bA1 A2 |aA2

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

165

Gramtica de Operadores uma GLC que no a e a possui produoes A BC, onde A, B, C N , e c , V . Ou seja, uma GLC em que no aparecem a dois no-terminais juntos em um lado direito. Ex: a P : E E + E|E E|E E|id. Importncia: a expresses aritmticas de linguagens de programao. o e ca

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

166

Autmato de Pilha o Mquina abstrata que reconhece as LLC; a Chamado tambm de Push-down Automata e (PDA); Consiste de: controle nito; ta de entrada; pilha. Caracter stica: ser no-determin a stico.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

167

Fita de entrada 0 Cabeote 1 0 0 1 0 1

Controle Finito

Z Y X Pilha

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

168

Movimentos do PDA: 1. Um s mbolo lido e o cabeote avana para o e c c prximo s o mbolo; 2. -move movimento vazio, no qual o cabeote c no se move, no importando qual o s a a e mbolo que est sendo apontado na ta de entrada. a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

169

Linguagem Aceita por um PDA Dois tipos de reconhecimento: 1. pilha vazia; 2. estado nal. Observaoes: c No reconhecimento por pilha vazia o conjunto de estados nais irrelevante; e Os dois tipos so equivalentes (resultam na mesma a classe de linguagens); Classe reconhecida: LLC.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

170

Denio Formal de PDA ca M = (K, , , , q0 , z0 , F ) Onde: K conjunto nito de estados; alfabeto nito de entrada; alfabeto nito da pilha; : K ( {}) Partes(K ) funo de ca transiao (mapeamentos); c q0 K estado inicial; z0 s mbolo inicial da pilha; F K conjunto nito de estados nais.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

171

Tipos de mapeamentos: 1. (q, a, z) = {(p1 , 1 ), (p2 , 2 ), . . . , (pm , m )}, onde q, p1 , . . . , pm K, a , z , e 1 , . . . , m . Signicado: M est no estado p, com a na entrada e z no a topo da pilha; M pode mudar para o estado pi , 1 i m, substituindo z por i no topo da pilha; M avana o cabeote para o prximo s c c o mbolo.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

172

2. (q, , z) = {(p1 , 1 ), (p2 , 2 ), . . . , (pm , m )}. Signicado: M est no estado p, com z no topo da pilha; a no interessa o que est na ta de entrada; a a M passa ao estado pi , 1 i m, trocando z por i no topo da pilha; o cabeote no se move (movimento vazio); c a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

173

Dependendo de || temos as seguintes poss veis aes co do PDA em relao ` pilha: ca a 1. || 2 troca o s mbolo no topo da pilha e empilha outros (a pilha cresce); 2. || = 1 troca o s mbolo no topo (pilha permanece com o mesmo tamanho); 3. || = 0 ( = ) desempilha o s mbolo do topo (a pilha decresce de tamanho).

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

174

Convenao: costuma-se representar a pilha na c horizontal, com o topo da pilha sendo aquele s mbolo que est mais ` esquerda. a a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

175

Um autmato de pilha determin o e stico se: 1. para qualquer q K, z e a {}, (q, a, z) nunca contm mais de um elemento; e 2. para cada q K e z , sempre que (q, , z) = ento (q, a, z) = para todo a . a Observaao: o segundo item impede que ocorra a c escolha entre um movimento envolvendo um s mbolo na entrada e um -move.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

176

Exemplo: PDA que aceita, por pilha vazia, L = {wcwR |w {0, 1} } , onde wR a seqencia reversa de w. e u M = ({q1 , q2 }, {0, 1, c}, {z0 , z, u}, , q1 , z0 , ) (q1 , 0, z0 ) = {(q1 , zz0 )} (q1 , 0, z) = {(q1 , zz)} (q1 , 0, u) = {(q1 , zu)} (q1 , c, z0 ) = {(q2 , z0 )} (q1 , c, z) = {(q2 , z)} (q1 , c, u) = {(q2 , u)} (q2 , 0, z) = {(q2 , )} (q2 , , z0 ) = {(q2 , )} (q1 , 1, z0 ) = {(q1 , uz0 )} (q1 , 1, z) = {(q1 , uz)} (q1 , 1, u) = {(q1 , uu)} (q2 , 1, u) = {(q2 , )}

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

177

Chama-se congurao de um PDA a um par (q, ) ca onde q K e , signicando que o PDA est no a estado q, com armazenado na pilha; passagem de uma congurao para outra: ca a : (q, z)
M

(p, ) ,

onde: a {}, , , z , e (p, ) (q, a, z);

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

178

Extendendo para seqncias: ue a1 a2 an : (q1 , 1 )


M

(qn+1 , n+1 ) ,

onde: a1 , a2 , . . . , an {}, q1 , q2 , . . . , qn+1 K, 1 , 2 , . . . , n+1 , e ai : (qi , i ) M (qi+1 , i+1 ), para todo 1 i n; convenao: : (q, ) c
M

(q, ).

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

179

A descrio instantnea de um PDA formada pelo ca a e seu estado atual, o contedo da pilha e o restante da u seqncia de entrada a ser lida. Representa a ue situao do reconhecimento em um determinado ca instante; Convenao: c (q, bc, xyzz0 ) , signicando que o autmato est no estado q, com bc o a restando na entrada (cabeote esta sobre o s c mbolo b), e a pilha contm xyzz0 , com x no topo. e

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

180

Exemplo: reconhecimento da sentena 01c10: c (q1 , 01c10, z0 ) (q1 , 1c10, zz0 ) (q1 , c10, uzz0 ) (q2 , 10, uzz0 ) (q2 , 0, zz0 ) (q2 , , z0 ) (q2 , , ) (pilha vazia) Produes usadas: (q1 , 0, z0 ) = (q1 , zz0 ), co (q1 , 1, z) = (q1 , uz), (q1 , c, u) = (q2 , u), (q2 , 1, u) = (q2 , ), (q2 , 0, z) = (q2 , ), (q2 , , z0 ) = (q2 , ).

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

181

Linguagem aceita por um PDA T (M ) linguagem aceita por estado nal: T (M ) = {w|w : (q0 , z0 )
M

(q, ), , q F } ;

N (M ) linguagem aceita por pilha vazia: N (M ) = {w|w : (q0 , z0 )


M

(q, ), q K} .

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

182

Exemplo: M , no-determin a stico, aceitando por pilha vazia N (M ) = {wwR |w {0, 1} } .

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

183

Soluo: M = ({q1 , q2 }, {0, 1}, {z0 , z, u}, , q1 , z0 , ) ca (q1 , 0, z0 ) = {(q1 , zz0 )} (q1 , 1, z0 ) = {(q1 , uz0 )} (q1 , 0, z) = {(q1 , zz), (q2 , )} (q1 , 0, u) = {(q1 , zu)} (q1 , 1, z) = {(q1 , uz)} (q1 , 1, u) = {(q1 , uu), (q2 , )} (q2 , 0, z) = {(q2 , )} (q2 , 1, u) = {(q2 , )} (q1 , , z0 ) = {(q2 , )} (q2 , , z0 ) = {(q2 , )}

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

184

Reconhecimento de 001100: 0 : (q1 , z0 ) 0 : (q1 , zz0 ) 1 : (q1 , zzz0 ) 1 : (q1 , uzzz0 ) 0 : (q2 , zzz0 ) 0 : (q2 , zz0 ) : (q2 , z0 ) (q1 , zz0 ) (q1 , zzz0 ) (q1 , uzzz0 ) (q2 , zzz0 ) (q2 , zz0 ) (q2 , z0 ) (q2 , )

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

185

Esta linguagem no poderia ser reconhecida por um a PDA determin stico. Por que? Diferente do que ocorre com os autmatos nitos, em o que AFD AFND, nos autmatos de pilha, o PDA determin stico PDA no determin a stico; Isto particiona as LLC em LLC determin sticas e no-determin a sticas (LLC determin sticas LLC no-determin a sticas).

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

186

Representaao Grca de PDA c a


(a,x)xx (b,x) (b,x)


(a,z0 )xz0 GFED j @ABC 89:; ?>=< @ABC / GFED q0 q1
(,z0 )

@ABC / GFED q2

Convenao: (a, w) z, signicando que a est c a na entrada, w est no topo da pilha e z ser a a empilhado (se z = ento desempilha). a (q0 , a, z0 ) = {(q1 , xz0 )} (q1 , a, x) = {(q1 , xx)} (q1 , b, x) = {(q2 , )} (q2 , b, x) = {(q2 , )} (q2 , , z0 ) = {(q0 , )}

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

187

Linguagem reconhecida: L(M ) = {an bn |n 0}

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

188

Relao entre PDA e LLC: GLC PDA e ca PDA GLC; Teorema: Se L uma LLC, ento existe um PDA M e a tal que L = N (M ); Algoritmo para construir M : 1. Colocar G = (N, T, P, S) na FNG. Assumimos que L(G); 2. M = ({q1 }, T, N, , q1 , S, ). Para cada regra A a P corresponde: (q1 , a, A) (q1 , ) ; Provar L(G) = N (M ).

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

189

Exemplo: PDA para reconhecer a linguagem gerada pela seguinte gramtica: a G = ({S, A}, {a, b}, {S aAA, A bS|aS|a}, S) Soluo: ca M = ({q1 }, {a, b}, {S, A}, , q1 , S, ) (q1 , a, S) = {(q1 , AA)} (q1 , b, A) = {(q1 , S)} (q1 , a, A) = {(q1 , S), (q1 , )}

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

190

Teorema: Se L uma linguagem reconhecida por e algum PDA ento L LLC; a e

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

191

Algoritmo para construir G: Seja M = (K, , , , q0 , z0 , ). Ento, G = (N, , P, S), a onde: N conjunto de objetos na forma [q, A, p], q, p K e A , unido com {S}; P obtido da seguinte forma: 1. S [q0 , z0 , q] para cada q K; 2. [q, A, p] a[q1 , B1 , q2 ][q2 , B2 , q3 ] [qm , Bm , qm+1 ] para cada q, q1 , q2 , . . . , qm+1 K, onde p = qm+1 , a {}, A, B1 , B2 , . . . , Bm , tal que (q, a, A) (q1 , B1 B2 Bm ). Se m = 0 ento a q1 = p, (q, a, A) (p, ) e a produo ca e [q, A, p] a.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

192

Exemplo: Seja M = ({q0 , q1 }, {0, 1}, {X, z0 }, , q0 , z0 , ) e (q0 , 0, z0 ) = {(q0 , xz0 )} (q0 , 0, x) = {(q0 , xx)} (q0 , 1, x) = {(q1 , )} (q1 , 1, x) = {(q1 , )} (q1 , , x) = {(q1 , )} (q1 , , z0 ) = {(q1 , )} Construir G = (N, T, P, S).

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

193

Soluao: c N = {S, [q0 , x, q0 ], [q0 , x, q1 ], [q1 , x, q0 ], [q1 , x, q1 ], [q0 , z0 , q0 ], [q0 , z0 , q1 ], [q1 , z0 , q0 ], [q1 , z0 , q1 ]} T = {0, 1} Produoes: c S [q0 , z0 , q0 ]|[q0 , z0 , q1 ] Pela regra 2: [q0 , z0 , q0 ] 0[q0 , x, q0 ][q0 , z0 , q0 ]|0[q0 , x, q1 ][q1 , z0 , q0 ] Ou seja,
z}|{ z}|{ z}|{
q q A p B2 z}|{ z}|{ z}|{ z }| { z}|{ a q1 B1 = qm+1 =p

(pela regra 1)

[ q0 , z0 , q0 ] 0 [ q0 , x , q0 ][q0 , z0 , ( q0 , 0 , z0 ) = {( q0 , x
A z}|{ z}|{ z}|{ a

z}|{

q0

para p = q0

z}|{ z}|{ z}|{

q1

B1 B2 =Bm

z0

)}

(m = 2)

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

194

Observe que repetimos o lado direito da regra para B2 = q0 e B2 = q1 :


p=q0

[q0 , z0 , q0 ] 0[q0 , x, q0 ][ q0 , z0 , q0 ]|0[q0 , x, q1 ][ q1 , z0 , q0 ] Repetindo, agora para p = q1 (j que a regra exige p K): a
p=q1

z}|{

B2 =q0 B2 =q0

z}|{

z}|{

B2 =q1 B2 =q1

z}|{

z}|{

[q0 , z0 , q1 ] 0[q0 , x, q0 ][q0 , z0 ,

z}|{

qm+1 =p

z}|{

qm+1 =p

q1

]|0[q0 , x, q1 ][q1 , z0 ,

z}|{

q1

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

195

Exemplicando para casos em que m = 0:


q a A p m=0

( q0 , 1 , x ) = {( q1 , )}
q A p a

[ q0 , x , q1 ] 1 Outro caso (a = ):
q a A

(p = q1 = q1 )

m=0

( q1 , , x ) = {( q1 , )}
q A p a

[ q1 , x , q1 ]

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

196

Soluo completa: ca S [q0 , z0 , q0 ]|[q0 , z0 , q1 ] 0[q0 , x, q0 ][q0 , z0 , q0 ] |0[q0 , x, q1 ][q1 , z0 , q0 ] [q0 , z0 , q1 ] [q0 , x, q0 ] [q0 , x, q1 ] 0[q0 , x, q0 ][q0 , z0 , q1 ] |0[q0 , x, q1 ][q1 , z0 , q1 ] 0[q0 , x, q0 ][q0 , x, q0 ] |0[q0 , x, q1 ][q1 , x, q0 ] 0[q0 , x, q0 ][q0 , x, q1 ] |0[q0 , x, q1 ][q1 , x, q1 ] |1 [q1 , z0 , q1 ] [q1 , x, q1 ] 1|

[q0 , z0 , q0 ]

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

197

Observe que no existem produoes para os a c no-terminais [q1 , x, q0 ] e [q1 , z0 , q0 ]. Assim, simplicando: a S [q0 , z0 , q1 ] [q0 , z0 , q1 ] 0[q0 , x, q1 ][q1 , z0 , q1 ] [q0 , x, q1 ] 0[q0 , x, q1 ][q1 , x, q1 ]|1 [q1 , z0 , q1 ] [q1 , x, q1 ] 1|

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

198

Provar N (M ) = L(G).

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

199

Exerc cios: 1. Sejam G e G abaixo, representadas por seu conjunto de produoes: c P : S A2D|D2A|2 A A1|B1|1 B B1|B0 C 0B|0 D 0D|0

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

200

P : S A|B|AB A aB|bS|b B AB|Ba|cB C AS|AB|b Pede-se: (a) mostre a derivao mais ` esquerda de 00211 para ca a G e a derivao mais ` direita de bb para G ; ca a (b) monte as rvores de derivaao destas duas a c derivaes; co (c) retire todos os s mbolos inteis das duas u gramticas. a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

201

2. Seja G = ({S}, {a, b}, {S SaS|b}, S). (a) G amb ua? (justique); e g (b) caso seja amb ua, existe alguma gramtica g a equivalente que no seja amb ua? a g

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

202

3. Seja G = ({A, B, C, D}, {a, b, c}, P, A), e P : A ab|aBc| B CBa|Aa C Db|c D Bab|Da| Pede-se: (a) transformar em uma gramtica equivalente -livre; a (b) elimine todas as recurses ` esquerda da gramtica o a a obtida no item anterior, se houver; (c) fatore a gramtica obtida no item anterior, se a necessrio. a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

203

4. Seja G = ({S, A, B, C}, {a, b, c}, P, S), onde P : S Aa A BC B Sb| C cC| Pede-se: (a) transforme G em -livre; (b) elimine as produoes simples; c (c) elimine as recurses ` esquerda. o a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

204

5. Transforme as GLC abaixo em equivalentes -livre e elimine as produes simples: co P : E TP P +T P | T FQ Q F Q| F (E)|id P : S cSc|BA A aA| B bB|CA| C cCc|AS

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

205

6. Elimine as recurses ` esquerda: o a P : E E + T |E T |T T T F |T /F |F F F P |P P (E)|id P : S BaS|Da| A Sa| B SAa D Db|b

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

206

7. Fatore as seguintes GLC: P : S abC|abD C cC|cD|ba D dD|dC|ba P : S bcD|Bcd B bB|b D dD|d

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

207

8. Obtenha a FNC e a FNG: P : S aSb|cC C Dd|d D cC 9. Obtenha a FNG: P : S AA|0 A SS|1

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

208

10. Obtenha a FNC de G = ({S, T, L}, {a, b, +, , , /, [, ]}, P, S), onde: P : S T + S|T S|T T L T |L/T |L L [S]|a|b

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

209

11. Construa autmatos de pilha que reconheam as o c seguintes linguagens: (a) L = {w|w {a, b} tal que o nmero de a seja o dobro do de b}; u (b) L = {w|w {0, 1} tal que o nmero de 0 seja igual ao de 1}. u

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

210

12. Uma estrutura de lista pode ser denida como: (a) uma lista vazia; e (b) a (tomo) uma lista; a e (c) se l1 , l2 , . . . , lk so listas, para k 1, ento a a (l1 , l2 , . . . , lk ) uma lista. e Pede-se: (a) Dena uma GLC que gere estruturas de listas; (b) Desenhe uma rvore de derivao para a sentena a ca c ((a, a), , (a)); (c) Construa um PDA que reconhea listas; c (d) Escreva os movimentos que o PDA realiza para reconhecer a sentena acima. c

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

211

13. Dada a gramtica G = ({S, A, B}, {a, b, c}, P, S), a onde: P : S aAA|Bc A aS|BS|a B b|bB Pede-se: (a) verique se a sentena abaaaa pertence ` L(G) c a atravs de derivaes mais ` esquerda; e co a (b) construa um PDA correspondente a G; (c) mostre o reconhecimento da mesma sentena c abaaaa pelo PDA, atravs de descriao instantnea. e c a

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

212

14. Seja o PDA M = ({q0 , q1 }, {a, b}, {z0 , x}, , q0 , z0 , ), onde: (q0 , b, z0 ) = {(q0 , xz0 )} (q0 , b, x) = {(q0 , xx)} (q0 , a, x) = {(q1 , x)} (q0 , , z0 ) = {(q0 , )} (q1 , b, x) = {(q1 , )} (q1 , a, z0 ) = {(q0 , z0 )}

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

213

Pede-se: (a) construa uma GLC que gera a linguagem N (M ); (b) mostre a seqncia de descries instantneas do ue co a PDA ao reconhecer alguma sentena w de N (M ) c com |w| 4.

GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA

214

15. Seja G denida por: P : S 0AS|1BS| A 0AA|1 B 1BB|0 Pede-se: (a) construa o PDA equivalente a G; (b) mostre, atravs de descries instantneas, o e co a reconhecimento (ou no) das seguintes sentenas: a c i. 001011; ii. 111001.

ALGORITMO CYK

215

Algoritmo CYK

Algoritmo reconhecedor de LLC proposto por Cocke, Younger e Kasami (1965); Constru sobre uma GLC na FNC; do Gera bottom-up todas as rvores de derivaao da a c entrada w em tempo O(|w|3 );

ALGORITMO CYK

216

Algoritmo: 1. Suponha G = (N, T, P, S), e w = a1 a2 a3 an uma entrada a ser vericada. V (r, s), onde s o nmero e u de linha e r o nmero de coluna, representa as u clulas de uma matriz triangular ilustrada a seguir: e

ALGORITMO CYK

217

X X X s s=1 X . . . X a1 X X X . . . X a2 X X . . . X a3 r X . . . X an

ALGORITMO CYK

218

2. Variveis que geram diretamente terminais a (A a): para r de 1 at n faa V (r, 1) = {A|A ar P } e c m para

ALGORITMO CYK

219

3. Produao que gera duas variveis (A BC): c a para s de 2 at n e faa c para r de 1 at n s + 1 e faa c V (r, s) = para k de 1 at s 1 e faa c V (r, s) = V (r, s) {A|A BC P, B V (r, k) C V (r + k, s k)} m para m para m para

ALGORITMO CYK

220

4. Condiao de aceitaao: se o s c c mbolo inicial da gramtica estiver no vrtice V (1, n). a e

ALGORITMO CYK

221

Observaes: O limite da iteraao para r co c e (n s + 1) pois a tabela triangular; Os vrtices e e V (r, k) e V (r + k, s k) so as ra da sub-rvore a zes a de derivaao de V (r, s); Se uma clula for vazia c e signica que ela no gera nenhuma sub-rvore. a a

ALGORITMO CYK

222

Exemplo: G = ({S, A}, {a, b}, P, S), onde P = {S AA|AS|b, A SA|AS|a}, e a entrada e w = abaab. A tabela resolvida ilustrada a seguir: e S, A S, A S, A S, A A a S, A S A S b S, A S A a S, A A a S b

ALGORITMO CYK

223

Soluo: ca 1. s = 2, r = 1, k = 1: A BC, B V (1, 1) e C V (2, 1). V (1, 2) = {S, A} = {S, A}; 2. s = 2, r = 2, k = 1: B V (2, 1) e C V (3, 1). V (2, 2) = {A} = {A}; 3. s = 2, r = 3, k = 1: B V (3, 1) e C V (4, 1). V (3, 2) = {S} = {S}; 4. s = 2, r = 4, k = 1: B V (4, 1) e C V (5, 1). V (4, 2) = {S, A} = {S, A}; 5. s = 3, r = 1, k = 1: B V (1, 1) e C V (2, 2). V (1, 3) = {S} = {S};

ALGORITMO CYK

224

6. s = 3, r = 1, k = 2: B V (1, 2) e C V (3, 1). V (1, 3) = {S} {S, A} = {S, A}; 7. s = 3, r = 2, k = 1: B V (2, 1) e C V (3, 2). V (2, 3) = = ; 8. s = 3, r = 2, k = 2: B V (2, 2) e C V (4, 1). V (2, 3) = {S} = {S}; 9. s = 3, r = 3, k = 1: B V (3, 1) e C V (4, 2). V (3, 3) = {S, A} = {S, A}; 10. s = 3, r = 3, k = 2: no precisa. a 11. s = 4, r = 1, k = 1: B V (1, 1) e C V (2, 3). V (1, 4) = {S, A} = {S, A};

ALGORITMO CYK

225

12. s = 4, r = 1, k = 2, 3: no precisa; a 13. s = 4, r = 2, k = 1: B V (1, 1) e C V (2, 3). V (2, 4) = {S, A} = {S, A}; 14. s = 4, r = 2, k = 2, 3: no precisa; a 15. s = 5, r = 1, k = 1: B V (1, 1) e C V (2, 4). V (1, 5) = {S, A} = {S, A}; 16. s = 5, r = 1, k = 2, 3, 4: no precisa. a

ALGORITMO CYK

226

Exerc cio: Reconhea usando o algoritmo CYK. c P : S AB|BC, A BA|a, B CC|b, C AB|a e entrada w = baaba.

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

227

Linguagens Tipo 0 e Mquinas a de Turing

As mquinas de Turing (TM) foram propostas como a um modelo matemtico para representar a procedimentos algor tmicos; So um formalismo para denir computabilidade a conceito relacionado com os problemas que podem ser resolvidos de forma mecnica (algor a tmica); Tese de Church: a mquina de Turing computa a exatamente o conjunto das funes que so co a computveis em um sentido intuitivo e informal; a

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

228

Mquinas de Turing so simultaneamente: a a mecanismos para reconhecer linguagens Tipo 0 ou linguagens recursivamente enumerveis ou a conjuntos recursivamente enumerveis; a mecanismos para computar funes parciais co recursivas;

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

229

Os conjuntos recursivamente enumerveis so os a a conjuntos mais amplos que podem ser reconhecidos (ou gerados) algoritmicamente;

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

230

As funoes computadas por TM so chamadas de c a funes parciais recursivas: co parciais a mquina pode entrar em um a lao innito, signicando que a funo no est c ca a a denida para um determinado valor de entrada; recursivas por razes histricas, so assim chamadas o o a pois as funoes computadas podem ser denidas c por um formalismo recursivo;

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

231

Modelo de Mquina de Turing a


Fita de Trabalho/Entrada a 1 a 2 a 3 ... ai ... an B B ...

cabeote

Controle Finito

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

232

TM formada por: e Fita de Trabalho/Entrada onde inicialmente e posta a sentena a ser reconhecida; formada por c clulas que podem armazenar um s e mbolo; limitada ` esquerda e innita ` direita; a a Cabeote permite ler/escrever s c mbolos da/na ta; Controle Finito controla o cabeote; representa o c programa sendo computado pela mquina; a

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

233

Movimentos de TM: 1. trocar de estado; 2. gravar um s mbolo na clula da ta sobre a qual e est o cabeote; a c 3. reduao do tamanho da string armazenada (basta c escrever um branco sobre o s mbolo do extremo direito da string armazenada); 4. ampliaao do tamanho da string armazenada (basta c escrever um no-branco na posiao imediatamente ` a c a direita da string); 5. mover o cabeote uma clula para a esquerda ou c e para a direita;

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

234

Observaao: no podemos escrever um branco a c a no ser na ultima posiao ` direita da string a c a armazenada (no podemos dividir a string a armazenada em duas ou introduzir brancos ` a esquerda). S podemos estar em uma clula com o e branco se esta for a imediatamente seguinte ao ultimo s mbolo ` direita da string; a

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

235

Uma mquina de Turing denida por: a e M = (K, , , , q0 , F ) Onde: K conjunto nito de estados; conjunto nito de s mbolos de entrada; conjunto nito de s mbolos da ta (incluindo branco);

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

236

: K K {L, R, } funao (parcial) de c movimento, onde L o movimento do cabeote e c para a esquerda, R o movimento do cabeote e c para a direita, e signica que o cabeote c permanece onde est. Observe-se que s poss a oe vel escrever branco na ta no extremo direito da string armazenada. O movimento do cabeote c e executado aps a escrita do s o mbolo na ta; q0 K estado inicial; F K conjunto de estados nais.

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

237

A congurao de uma mquina de Turing ca a e representada por (q, , i) Onde: q K estado atual da mquina; a ( {B}) string armazenada na ta; i posiao do cabeote. c c

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

238

a 1 a 2 a 3 ...

ai

...

an B

...

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

239

A descrio instantnea de TM denida como: ca a e 1 q2 onde: q K estado corrente da mquina; a 1 , 2 seqncias de s ue mbolos representando os lados direito e esquerdo do cabeote. c Observaao: assume-se que o cabeote est c c a apontando para o s mbolo mais ` esquerda de 2 . Se a 2 = ento o cabeote est apontando para B. Se a c a 1 = ento o cabeote est na primeira posiao da a c a c string armazenada (i = 1).

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

240

Movimentos de TM: Se 1 i n, x ( {B}) e (q, ai ) = (p, x, R) ento (q, a1 a2 ai an , i) a (p, a1 a2 ai1 xai+1 an , i + 1); Se 2 i n, x ( {B}) e (q, ai ) = (p, x, L) ento (q, a1 a2 ai an , i) a (p, a1 a2 ai1 xai+1 an , i 1); Se 1 i n, x ( {B}) e (q, ai ) = (p, x, ) ento a (q, a1 a2 ai an , i) (p, a1 a2 ai1 xai+1 an , i);

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

241

Se x ( {B}) e (q, B) = (p, x, ) ento a (q, a1 a2 an , n + 1) (p, a1 a2 an x, n + 1); Se x ( {B}) e (q, B) = (p, x, L) ento a (q, a1 a2 an , n + 1) (p, a1 a2 an x, n); Se x ( {B}) e (q, B) = (p, x, R) ento a (q, a1 a2 an , n + 1) (p, a1 a2 an x, n + 2); Se (q, an ) = (p, B, ) ento a (q, a1 a2 an , n) (p, a1 a2 an1 , n); Se (q, an ) = (p, B, L) ento a (q, a1 a2 an , n) (p, a1 a2 an1 , n 1);

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

242

Se (q, B) = (p, B, ) ento a (q, a1 an , n + 1) (p, a1 an , n + 1); Se (q, B) = (p, B, L) ento a (q, a1 an , n + 1) (p, a1 an , n).

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

243

Linguagem aceita por TM Seja M = (K, , , , q0 , F ), ento: a L(M) = {w|w q F, , i 0(q0 , w, 1) (q, , i)}.

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

244

Parada de TM se uma TM aceita uma linguagem L ento ela pra para todas as palavras de L; a a Existem duas possibilidades de no reconhecer uma a palavra: 1. o processo de reconhecimento trancar antes de ser encontrado um estado nal; 2. a palavra no reconhecida pois a mquina no a e a a pra (funo parcial). a ca

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

245

Relao entre TM e Gramtica Tipo 0 ca a Teorema: Se L gerada por uma gramtica Tipo 0 e a ento L pode ser reconhecida por uma mquina de a a Turing; Teorema: Se L reconhecida por uma mquina de e a Turing ento L gerada por uma gramtica Tipo 0. a e a

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

246

Exemplo: L = {0n 1n |n 1}. Soluo: ca M = (K, , , , q0 , F ) K = {q0 , q1 , q2 , q3 , q4 , q5 } = {0, 1} = {0, 1, x, y, B} F = {q5 }

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

247

(q0 , 0) = (q1 , x, R) (q1 , 0) = (q1 , 0, R) (q1 , 1) = (q2 , y, L) (q2 , y) = (q2 , y, L) (q2 , x) = (q3 , x, R) (q2 , 0) = (q4 , 0, L) (q4 , 0) = (q4 , 0, L) (q4 , x) = (q0 , x, R) (q3 , y) = (q3 , y, R) (q3 , B) = (q5 , B, ) (q1 , y) = (q1 , y, R)

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

248

Reconhecimento de 0011: (q0 , 0011, 1) (q1 , x011, 2) (q1 , x011, 3) (q2 , x0y1, 2) (q4 , x0y1, 1) (q0 , x0y1, 2) (q1 , xxy1, 3) (q1 , xxy1, 4) (q2 , xxyy, 3) (q2 , xxyy, 2) (q3 , xxyy, 3)

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

249

(q3 , xxyy, 4) (q3 , xxyy, 5) (q5 , xxyy, 5)

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

250

Funao computada por TM podemos considerar a c mquina de Turing tambm como um mecanismo a e para computar funoes parciais recursivas (funoes c c sobre strings); Se considerarmos a tripla (q0 , , F ) como sendo um programa p, ento podemos considerar a funo Mp a ca como sendo a funo computada pelo programa p na ca mquina M. a

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

251

Existem diversas variaes da denio de mquina co ca a de Turing: 1. TM no-determin a stica; 2. ta innita em ambas as direoes; c 3. TM com mais de um cabeote; c 4. TM com mais de uma ta; 5. combinaoes destas possibilidades; c Todas so equivalentes ` deniao original (TM a a c original simula todas as suas variaes); co Isto uma evidncia da correao da tese de Church. e e c

LINGUAGENS TIPO 0 E MAQUINAS DE TURING

252

Exerc cios: 1. Dena uma TM para reconhecer L = {w|w {0, 1} w = wR } (pal ndromes); 2. Dena uma TM para reconhecer L = {an bn cn |n 0} e mostre o reconhecimento de aabbcc.

LSC E AUTOMATOS DE FITA LIMITADA

253

LSC e Autmatos de Fita o Limitada

Um autmato de ta limitada Linear Bounded o Automata (LBA) uma mquina de Turing e a no-determinstica em que o cabeote nunca a c abandona aquelas clulas sobre as quais a sentena e c de entrada foi gravada; O LBA o reconhecedor das linguagens sens e veis ao contexto (LSC);

LSC E AUTOMATOS DE FITA LIMITADA

254

Denio formal de LBA ca M = (K, , , , q0 , F ) Onde: K conjunto nito de estados; conjunto nito de s mbolos de entrada; conjunto nito de s mbolos da ta; : K Partes(K {L, R, }) ; q0 K estado inicial; F K conjunto nito de estados nais.

LSC E AUTOMATOS DE FITA LIMITADA

255

Observaao: o conjunto possui dois s c mbolos especiais e $ que so os limites ` esquerda e ` a a a direita da sentena de entrada. c

LSC E AUTOMATOS DE FITA LIMITADA

256

Linguagem aceita por um LBA: L = {w|w q F, , i 0(q0 , w$, 1) (q, , i)}. Teorema: Se L uma LSC ento L aceita por e a e algum LBA. Teorema: Se L reconhecida por um LBA ento e a L {} uma LSC. e

HIERARQUIA DE CHOMSKY (REVISITADA E AMPLIADA)

257

Hierarquia de Chomsky (revisitada e ampliada)

Relembrando:

Regulares Livres de Contexto Sensiveis ao Contexto Tipo 0

Tipo 3 Tipo 2 Tipo 1 Tipo 0 T

HIERARQUIA DE CHOMSKY (REVISITADA E AMPLIADA)

258

Nos extremos da hierarquia (AF e TM linguagens regulares e Tipo 0) existe equivalncia entre e determinismo e no-determinismo (mesma classe de a linguagens reconhecidas); Para o autmato de ta limitada no se sabe se o a determinismo e no-determinismo aceitam a mesma a classe de linguagens ou classes diferentes (questo em a aberto; no existe prova matemtica); a a

HIERARQUIA DE CHOMSKY (REVISITADA E AMPLIADA)

259

Para o PDA sabemos que no existe equivalncia a e entre determinismo e no-determinismo; a Linguagens livres de contexto determin sticas (LLCD) e linguagens livres de contexto no-determin a sticas (LLCND); As LLCD so a classe de linguagens que pode ser a reconhecida por um compilador de forma eciente (em tempo polinomial); So a classe mais importante pois representam a a sintaxe da maioria das linguagens de programao; ca As LLCD so geradas pelas gramticas LR; a a

HIERARQUIA DE CHOMSKY (REVISITADA E AMPLIADA)

260

Teorema: Se L uma LLC e o complemento de L e (T L) no , ento L no LLCD. a e a a e

HIERARQUIA DE CHOMSKY (REVISITADA E AMPLIADA)

261

Regulares LLC Determinsticas LLC Nodeterminsticas Sensveis ao Contexto Tipo 0

Tipo 3 LLCD LLCND Tipo 1 Tipo 0 T

HIERARQUIA DE CHOMSKY (REVISITADA E AMPLIADA)

262

E possivel caracterizar toda a hierarquia de Chomsky ampliada apresentada at aqui usando-se apenas o e autmato de pilha; o Denimos PDA(n) como sendo um autmato de o pilha que possui n pilhas. Ento: a 1. PDA(0) equivalente ao AF; e 2. PDA(1) = PDA caracterizando as LLCD e LLCND dependendo da existncia ou no de e a no-determinismo; a 3. PDA(n) TM, para n 2 (por que?). Logo, PDA(n) PDA(2), para todo n > 2 adicionar mais pilhas no muda nada (por que?). a

HIERARQUIA DE CHOMSKY (REVISITADA E AMPLIADA)

263

FIM

Você também pode gostar