A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teoria da Computação Professor: Ciro Meneses Santos FIC– Ciência da Computação Bibliografia: ---------------- GERSTING, Judith L. Fundamentos matemáticos.

Apresentações semelhantes


Apresentação em tema: "Teoria da Computação Professor: Ciro Meneses Santos FIC– Ciência da Computação Bibliografia: ---------------- GERSTING, Judith L. Fundamentos matemáticos."— Transcrição da apresentação:

1 Teoria da Computação Professor: Ciro Meneses Santos FIC– Ciência da Computação Bibliografia: GERSTING, Judith L. Fundamentos matemáticos para a ciência da computação.LTC – Tirajú Asmuz; MENEZES, Paulo Blauth. Teoria da computação: máquinas universais e computabilidade. Porto Alegre: Sagra Luzzatto, HOPCROFT, John E, etal - INTRODUÇÃO À TEORIA DE AUTÔMATOS, LINGUAGENS E COMPUTAÇÃO – Campus – 2002.

2 Uma gramática é uma quádrupla ordenada G={V,T,P,S} onde: V : conjunto finito de símbolos não-terminais; T : conjunto finito de símbolos terminais P: conjunto finito de pares, denominados regras de produção tal que a primeira componente é palavra (V,T) + e a segunda componente é palavra de (V,T)*; S : elemento de V denominado variável inicial. Uma regra de produção (, ) é representada por. As regras de produção definem as condições de geração das palavras da linguagem. Uma sequência de regras de produção da forma 1, 2,..., n pode ser abreviada como uma única produção da forma : 1 | 2 |...| n Gramática

3 Uma gramática G é um mecanismo para gerar sua linguagem L(G). A aplicação de uma regra de produção é denominada derivação de uma palavra. A aplicação sucessiva de regras de produção permite derivar as palavras da linguagem representada pela gramática. Uma derivação é a substituição de uma subpalavra de acordo com uma regra de produção. Sucessivos passos de derivação são definidos: * : zeros ou mais passos de derivação; + : um ou mais passos de derivação sucessivas; i : exatos i passos, onde i é um número natural Continuação...

4 O elemento fundamental das gramáticas são as regras. Uma regra é um par ordenado(u,v), tradicionalmente escrito na forma u v, onde u e v são palavras que podem conter símbolos de dois alfabetos disjuntos, um com símbolos denominados não-terminais, e outro com símbolos denominados terminais. As variáveis não-terminais são símbolos auxiliares para a geração das palavras da linguagem, enquanto que o conjunto de terminas nada mais é do que o alfabeto da linguagem definida. Dada uma gramática G com o símbolo de partida S, usamos para definir L(G), a linguagem gerada por G. w está em L(G) sse S w Continuação

5 Seja G uma gramática G = (V,, R, P) seja w 1 e w 2 palavras sobre G. Então w 1 w 2. Se é uma produção de G, w 1 contém uma cópia de e w 2 é obtido de w1 através de substituição de por. w 1, w 2, w 3,.... w n são palavras sobre G w 1 w 2, w 2 w 3,..., w n-1 w n Então w 1 w n gera indiretamente através de n produções w 1 w n L = { w * S w }

6 Nos exemplos a seguir, serão usadas letras maiúsculas ou strings para representar variáveis não-terminais e minúscula ou dígitos para representar variáveis terminais. Exemplo de Regra: aAB baA (R1) | A a (R2) Tal regra específica que dada uma palavra que contenha a subpalavra aAB, tal subpalavra pode ser substituída por baA Dada a palavra aABB aplicando-se a regra de derivação acima sendo denotada por: aABB baAB (R1) bbaA (R1) bbaa (R2) Continuação...

7 Derivação A cada passo da derivação: (1) escolher o não terminal para substituir (2) escolher a alternativa para o não terminal Derivação mais à esquerda: substitui-se o não terminal mais a esquerda em qualquer forma sentencial a cada passo. Derivação mais à direita: substitui-se o não terminal mais a direita em qualquer forma sentencial a cada passo. mais à esquerda ou à direita

8 Seja a gramática G constituída da variável de partida P e das regras abaixo sobre ={a,b} 1)S aS 2)S B 3)B b 4)B P aS (1) aaS (1) aaaS (1) aaaB (2) aaab (3) Um exemplo de derivação: P aS (1) a (4) Isto mostra que ab é uma sentença da linguagem gerada por G; ab L (G) Derivação L(G)={a n b m n 0, 0 m 1} er =( a* (b, ) )

9 Seja a gramática G constituída da variável de partida P e das regras abaixo sobre ={a,b} 1)S aSa 2)S B 3)B b P aSa (1) aaSaa (1) aaaSaaa (1) aaaBaaa (2) aaabaaa (3) Um exemplo de derivação: P aSa (1) aBa (2) aba (3) Isto mostra que ab é uma sentença da linguagem gerada por G; ab L (G) Derivação L(G)={a n ba n n 0 }

10 Seja a gramática G constituída da variável de partida P e das regras abaixo sobre ={a,b,c} 1)P aAbc 2)A aAbC 3)A 4)Cb bC 5)Cc cc P aAbc (1) aaAbCbc (2) aaAbbCc (4) aaAbbcc (5) aabbcc (3) Um exemplo de derivação: P aAbc (1) abc (3) Isto mostra que abc é uma sentença da linguagem gerada por G; abc L (G) Derivação L(G)={a n b n c n n 1}

11 Seja a gramática G constituída da variável de partida id e das regras: (1)id id letra (2)id id digito (3)id letra (4)letra |a|b|...|z| (5)digito |0|1|...|9| id id letra id digito letra letra digito letra a 5 c id id letra id digito letra id digito digito letra letra digito digito letra b 5 2 s Derivação

12 Seja a gramática G =(V,,P,E) onde V ={E,T,N,D}, ={+,-,(,),0,1,...9} constituída da variável de partida E, e das regras: (1) E E + T |E - T | T (2) T (E)|N (3) N DN |D (4) D 0|1|...|9| E E + T E – T + T N – N + (E) DN – D + (T) DD – D + (N) DD – D + (DN) DD – D + (DD) 20 – 4 + (61) Derivação

13 Gramática Regular: Uma gramática G e regular se ela obedece a convenção da produção vazia S, e para qualquer produção (exceto S ) é uma variável não terminal única e é da forma a ou aW, onde a é um símbolo terminal e W é uma variável não terminal. S S a S aW Hierarquia de Chomshy Este tipo de gramática e muito útil, porém não pode ser utilizado quando há necessidade controle de ocorrência de símbolos. Ex: a cada abrir chave { tem que haver um fechar chave }

14 Gramática regular: A linguagem a+ é gerada pela gramática regular: S aA A aA | A linguagem a* é gerada pela gramática regular: S aA | A linguagem (a, b) + é gerada pela gram á tica regular: S aA | bA A aA | bA |

15 Gramática regular: A linguagem a(ba)* é gerada pela gramática regular: S aA A bB| B aA A linguagem (a,b)*(aa, bb) é gerada pela gramática regular: S aS|bS|aA|bB A a B b

16 A linguagem (a,b)*abb é gerada pela gramática regular: S aS|bS|aA A bB B b Continuação... A linguagem (01) + é gerada pela gramática regular: S 0A | A 1S

17 A linguagem (01) + (0, ) é gerada pela gramática regular: S 0A A 1S | 1B B 0 | Continuação... A linguagem (0(0,1)) + 0 é gerada pela gramática regular: S 0A A 0B | 1B B 0A | 0

18 A linguagem (0, 11) + 0 é gerada pela gramática regular: S 0B | 1D A 0B | 1D | 0 D 1B Continuação... A linguagem (a, ab) + é gerada pela gramática regular: S aA A aA | bB | B aA

19 Uma gramática G é GLC se obedece a conversão da produção vazia S, e para qualquer produção (exceto S ), é uma única variável não terminal, ficando livre, podendo aparecer qualquer combinação de variáveis não terminais e terminais. Este tipo de gramática pode representar praticamente todas as necessidades para a construção de uma linguagem de programação, inclusive controle de pares ((( a ))). S S a S ( S ) Gramática Livre de Contexto

20 Continuação... A linguagem L={ 0 n 1 n 0 m 1 m n 0,m 0} S BB B 0B1| A linguagem L={ a n b m c m d 2n n 0,m >0} S aSdd|A A bAc|bc

21 Uma gramática G é GSC se obedece a convenção da produção vazia S, e para qualquer produção (exceto S ), é pelo menos tão grande quanto a palavra. Em uma GSC um símbolo terminal pode ser substituído apenas se for parte de uma cadeia de símbolos em particular. não pode ser maior que. P a A b c A a A b C | Cb bC Cc cc Gramática Sensível ao Contexto

22 Forma normal de Chomsky (FNC) Uma gramática LC é dita na forma Norma de Chomsky (FNC) se todas as suas produções são da forma A BC ou A a onde A, B, C são variáveis não terminais e a terminais. Uma forma normal descreve um conjunto de condições que todas as regras da gramática deve satisfazer.

23 Algoritmo para transformação de um GLC, em uma gramática na FNC: (1) Simplificação da Gramática: Exclui as produções vazia A, produções da forma A (se o lado direito de alguma produção tiver somente um símbolo, este será terminal). (2) Transformação do lado direito das produções de comprimento maior ou igual a dois: Garante que o lado direito das produções de comprimento maior ou igual a 2 seja composto exclusivamente por variáveis não terminais. A exclusão de um terminal a pode ser realizado substituindo-o por uma variável intermediária X e incluindo a produção X a. Continuação...

24 (3) Transformação do lado direito das produções de comprimento maior que dois, em produções com exatamente duas variáveis: Garante que o lado direito da produções de comprimento maior do que um é composto exatamente por duas variáveis não terminal. O lado direito das produções da forma A B1 B2... Bn n 2. é composto exclusivamente por variáveis não terminais. Continuação...

25 E E+E | E*E | [E] | a 1)A gramática já esta simplificada; 2)Transformação das variáveis do lado direito. E ET 1 E | ET 2 E | T 3 ET 4 | a T 1 + T 2 * T 3 [ T 4 ] E ED 1 | ED 2 | T 3 D 3 | a D 1 T 1 E D 2 T 1 E D 3 ET 4 T 1 + T 2 * T 3 [ T 4 ]


Carregar ppt "Teoria da Computação Professor: Ciro Meneses Santos FIC– Ciência da Computação Bibliografia: ---------------- GERSTING, Judith L. Fundamentos matemáticos."

Apresentações semelhantes


Anúncios Google