INF1626 Linguagens Formais e Autômatos (2013-2) Informática PUC-Rio Linguagens Formais e Autômatos (LFA) Complemento da Aula de 21/08/2013 Gramáticas, Seus Tipos, Algumas Propriedades e a Hierarquia de Chomsky ©Clarisse S. de Souza, 2013 1 INF1626 Linguagens Formais e Autômatos (2013-2) Informática PUC-Rio Dica para responder “Perguntas” finais da aula ©Clarisse S. de Souza, 2013 2 INF1626 Linguagens Formais e Autômatos (2013-2) Informática PUC-Rio Começando pela pista da própria pergunta: Que tipo de linguagem a gramática G, abaixo, define: G : V = {a,b,c,S,B,C} S é o símbolo raiz = {a,b,c} Produções = { S aSBC (1) S abC (2) CB BC (3) bB bb (4) bC bc (5) cC cc (6) } ©Clarisse S. de Souza, 2013 Criando derivações, a começar por “S”, símbolo inicial, obtemos por aplicação das regras de reescritura, cadeias como por exemplo (mas não somente) esta aqui: S => aSBC (1) Crie => aaSBCBC (1) outras e => aaabCBCBC (2) veja o => aaabBCCBC (3) padrão => aaabBCBCC (3) das => aaabBBCCC (4) cadeias. => aaabbBCCC (4) (5) => aaabbbCCC => aaabbbcCC (6) (6) => aaabbbccC => aaabbbccc ! 3 INF1626 Linguagens Formais e Autômatos (2013-2) Informática PUC-Rio As regras apontam para uma ‘troca’ CB BC O que isto significa estruturalmente? Lembrando: a gramática G tem o perfil de uma gramática “sensível a contexto”. Ou seja, uma gramática em que a reescrita (derivação) de uma estrutura (intermediária ou final) “depende do Este já contexto em que o nó sendo reescrito aparece”. é um ponto importante CB BC pode significar, estruturalmente, duas coisas para responder a 1. “C diante de B se reescreve como C depois de B” ou pergunta do exercício. 2. “B depois de C se reescreve como B antes de C” Veja detalhes a seguir. Seja no caso 1 ou no caso 2, o que vemos é uma “movimentação estrutural” de um ramo da derivação: ele sai de uma posição e vai para outra. A estrutura gerada no final do processo é bem similar a estruturas geradas por gramáticas livres de contexto. O poder de gramáticas sensíveis a contexto é PODEREM TRANSFORMAR a estrutura da cadeia/sentença durante a derivação. ©Clarisse S. de Souza, 2013 4 Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Se CB BC é regra de reescritura de “C” A parte importante da derivação é ilustrada aqui com um tipo simples de representação de transformação estrutural operada pela regra acima: S Regra (1) a S Regra (2) a b S B C C a S Regra (3) a b Notem que esta derivação aplicou sobre a cadeia “aabCBC” a regra (3) – CBBC - ANTES QUE a regra (5) – bC bc – que também poderia ser aplicada. O que aconteceria se aplicássemos R(5) antes de R(3)? ©Clarisse S. de Souza, 2013 B C C C C saiu da árvore S aninhada e subiu para posição adjacente a B, diretamente abaixo do nó raiz. Daí em diante, a derivação não apresenta dificuldades. Basta aplicarem-se as regras de derivação (4), (5) e (6). 5 Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Se CB BC é regra de reescritura de “B” A parte importante da derivação é ilustrada aqui com um tipo simples de representação de transformação estrutural operada pela regra acima: S Regra (1) a S Regra (2) a b S C a Regra (3) a B C Também nesta derivação foi aplicada sobre a cadeia “aabCBC” a regra (3) – CBBC - ANTES QUE a regra (5) – bC bc – que também poderia ser aplicada. ©Clarisse S. de Souza, 2013 S b B B C C B saiu da posição diretamente abaixo do nó raiz e desceu para posição adjacente a C na árvore S aninhada. Daí em diante, a derivação não apresenta dificuldades. Basta aplicarem-se as regras de derivação (4), (5) e (6). 6 INF1626 Linguagens Formais e Autômatos (2013-2) Informática PUC-Rio Atenção As gramáticas sensíveis a contexto (GSC’s) são muito poderosas, muito interessantes e muito complexas. Há muitos mais detalhes e discussões sobre como elas funcionam, que tipo de estruturas são preferenciais ou possíveis no processo de derivação, que tipos de mecanismos de controle de derivação se podem usar, etc. Esta não é a hora de entrar nestes detalhes. O intuito das explicações nestes slides é apenas dar a vocês a oportunidade de apreciarem o que estas gramáticas podem fazer e por que são mais “potentes” do que as duas outras que estão abaixo dela na Hierarquia de Chomsky: as gramáticas regulares (tipo 3) e as livres de contexto (tipo 2). Mais adiante no semestre estudaremos detalhes das CSG’s. Aguardem. ©Clarisse S. de Souza, 2013 7 INF1626 Linguagens Formais e Autômatos (2013-2) Informática PUC-Rio Observação geral sobre o processo de derivação gramatical “Em gramáticas convencionais, de qualquer tipo, a escolha da regra de produção a ser aplicada em uma forma sentencial qualquer é resultado, única e exclusivamente, da identificação, em, de alguma subcadeia que coincida com o lado esquerdo de alguma regra p P.” (Ramos e co-autores, 2009: p. 465) Estas escolhas “arbitrárias” por vezes podem levar a lugar nenhum, ou seja: o processo de derivação “trava” porque duas coisas estão acontecendo ao mesmo tempo: 1. Não há, na cadeia de derivação corrente, nenhuma subcadeia que coincida com o lado esquerdo de alguma regra de produção da gramática. 2. Há, na cadeia de derivação corrente, símbolos não-terminais (isto é, que não pertencem ao alfabeto da gramática). Quando a derivação “trava” desta forma, o processo deve retornar a um ponto de escolha anterior e verificar se há um caminho derivacional alternativo que ainda não foi explorado. Se houver, ele é seguido até gerar uma cadeia bem-formada ou, talvez, até “travar” de novo. Se isto acontecer, o processo de derivação procura um ponto de escolha anterior cujas escolhas ainda não foram esgotadas e tenta nova alternativa. Se todas as alternativas fossem esgotadas e a cadeia corrente ainda contivesse não-terminais, a derivação “travaria” definitivamente. ©Clarisse S. de Souza, 2013 Seria mau sinal… de quê? 8 INF1626 Linguagens Formais e Autômatos (2013-2) Informática PUC-Rio Agora, tendo experimentado o que acontece na derivação gramatical de linguagens sensíveis a contexto, retome as perguntas da aula: 1. Que tipos de estruturas cada tipo de gramática (3,2,1 e 0) gera? 2. Que tipos de símbolos podem ser substituídos (em cada uma)? Por quais? ©Clarisse S. de Souza, 2013 A resposta a estas duas perguntas expressa fundamentos importantíssimos de LFA. Leve sua resposta para a próxima aula e confira com o(s) professor(es) se você acertou. 9