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 11.4. Hierarquias de linguagens 452
As MT aceitam linguagens que os NPDA não aceitam. Existirão linguagens que as MT não aceitam? 453
11.1. 1 Linguagens recursivas e linguagens recursivamente enumeráveis Definição 11.1.Linguagem recursivamente enumerável L é recursivamente enumerável se existe uma MT M que a aceita, i.e., para toda a cadeia w L, q 0 w M x 1 q f x 2, x 1, x 2 * sendo q f um estado final. 454
Se w não pertence a L que acontece à MT? Esta pára num estado não final? Entra num ciclo infinito? Qualquer das alternativas pode acontecer. Se entra num ciclo infinito a MT nada nos diz sobre a pertença de w a L (nada decide). 455
Dfiiã Definição 11.2. 112Linguagem recursiva Uma linguagem L em diz-se recursiva se existir uma MT M que aceite L e que páre em todas as cadeias w de +. Ou seja, uma linguagem é recursiva rsi se e só se existir para ela um algoritmo de pertença (uma MT). Uma linguagem recursiva é também recursivamente enumerável. 456
Nota sobre o conceito de recursividade no contexto das MT A utilização do termo recursivo como sinónimo de decidível remonta à época anterior aos computadores e em que a noção de recursão era usada como noção de computação. Um problema recursivo era um problema suficientemente simples para se poder escrever uma função recursiva para o resolver, e a função terminava sempre. Otermo recursivamente recursivamente enumerável foi introduzido no mesmo contexto. Se uma função puder listar todos os membros de uma linguagem g segundo alguma ordem, ela pode enumerá-los. As linguagens cujos membros se podem listar por alguma ordem são as mesmas aceites por alguma MT. (Hopcroft, Motwani e Ullman, pp 375) 457
Enumeração de uma linguagem recursiva seja M a MT que determina a pertença a L recursiva. M construa-se uma outra MT,, que gera todas as cadeias de + em ordem própria, w 1, w 2, w 3,... M à medida que gera cadeias, elas são apresentadas à entrada de M, sendo esta construída de modo a escrever a cadeia na sua fita só se a cadeia pertence a L. no final a fita de M contém uma enumeração das cadeias de L. 458
Qual a natureza das linguagens recursivas ou recursivamente enumeráveis? Existirão linguagens recursivamente enumeráveis que não sejam recursivas? Existirão linguagens que não sejam recursivamente enumeráveis? 459
Teorema 11.11 (prévio) Sj Seja S um conjunto infinito i contável. Então a sua potência de conjuntos 2 S énão contável. A prova faz-se pela técnica da diagonalização, atribuída ao matemático GF Cantor que a usou para demonstrar que o conjunto de números reais não é contável (p. 278 Linz). 460
S = { s 1, s 2, s 3, s 4,... } contagem Subconjuntos de 2 S 1 2 3 4 5 6 7 8 9... {s 1 } {s 1, s 2 } {s 1, s 2,, s 3 } {s 1, s 2,, s 5, s 9 } {s 2, s 3,, s 6, s 7 s 8 } {s 2, s 3, s 5, s 6, s 7, s 8 } {s 1, s 3, s 4, s 5, s 6, s 8, s 9 } {s 1, s 2, s 3, s 4, s 5, s 6, s 7, s 8 } {s 1, s 9 }.............................. 1 0 0 0 0 0 0 0 0... 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0... 1 1 0 0 1 0 0 0 1... 0 1 1 0 0 1 1 1 0... 0 1 1 0 1 1 1 1 0... 1 0 1 1 1 1 0 1 1... 1 1 1 1 1 1 1 1 0... 1 0 0 0 0 0 0 0 1................................. Se 2 S é enumerável pode-se ordenar e obter uma matriz deste tipo (1 na coluna i se s i pertence ao subconjunto de 2 S em questão) 461
Complementando a diagonal- um elemento de 2 S - obtém-se um outro elemento diferente de todos os outros, qualquer que seja a matriz. 1 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0... 1 1 0 0 0 0 0 0 0... 1 1 0 0 1 0 0 0 1... 1 1 0 1 1 0 0 0 1... 0 1 1 0 0 1 1 1 0... 0 1 1 0 1 1 1 1 0... 0 1 1 0 1 1 1 1 0... 0 1 1 0 1 0 1 1 0... 1 0 1 1 1 1 0 1 1... 1 0 1 1 1 1 1 1 1... 1 1 1 1 1 1 1 1 1... 1 1 1 1 1 1 1 0 1... 1 0 0 0 0 0 0 0 1... 1 0 0 0 0 0 0 0 0............................................................... Por isso 2 S não é contável (prova por redução ao absurdo). 462
Teorema 11.2 Para qualquer alfabeto não vazio, existem linguagens que não são recursivamente enumeráveis. Cadeias possíveis: *, infinito Linguagens possíveis: 2 * Conjunto das MT Inumeráveis (não contável) enumeráveis Há mais linguagens do que MT s!!! Algumas linguagens não são recursivamente enumeráveis 463
Como definir uma linguagem g não recursivamente enumerável? De modo indirecto. Exemplo: Teorema 11.3 (p. 279 Linz) Existe uma linguagem recursivamente enumerável cujo complemento não é recursivamente enumerável Se L é recursiva, L é recursiva, e vice-versa. 464
Teorema 11.4 Se a linguagem L e o seu complemento L são ambas recursivamente enumeráveis, então ambas são recursivas. Teorema 11.6 Existem linguagens recursivamente enumeráveis que não são recursivas. A família das linguagens recursivas é um subconjunto próprio da família das linguagens recursivamente enumeráveis. 465
NãoRecEnum L e L RE RecEnum L RE Rec NãoRec L RE Rec L Rec e L Rec L L RE Rec RE 466
Pode-se concluir que existem linguagens para as quais é impossível construir um algoritmo de pertença São as recursivamente enumeráveis não recursivas e as não recursivamente enumeráveis. Só para as recursivas existe um algoritmo de pertença. 467
11.2. Gramáticas não restringidas Definição 11.3. Uma gramática G = (V, T, S, P) diz-se não restringida se todas as produções são da forma u v em que u (V T ) + e v (V T )* ou u v u > v v Quer do lado esquerdo, quer do lado direito, pode existir qualquer número de variáveis i e de símbolos terminais, i por qualquer ordem, excepto que do lado esquerdo não pode existir.. 468
As gramáticas não restringidas correspondem à maior família de linguagens que podem ser reconhecidas por máquinas, ou seja, elas geram a família das linguagens recursivamente enumeráveis (Teoremas( 11.6 e 11.7 Linz) ) 469
11.3. Gramáticas e linguagens g dependentes do contexto Definição 11.4 Gramática dependente do contexto G = (V, T, S, P) diz-se dependente do contexto (contextsensitive) se todas as produções são da forma x y com x y em que e x, y (V T ) + qualquer combinação de variáveis e símbolos terminais (não pode ser vazia) x y, as formas sentenciais não se contraem, a gramática é não-contractiva ti ou monotónica. 470
Pode demonstrar-se que uma gramática não contractiva se pode escrever numa forma normal com produções reduzidas a xay xvy em que A V, A é uma variável (existe pelo menos uma à esquerda) x, y (V T ) * qualquer combinação de variáveis e símbolos terminais (pode ser vazia) v (V T ) +, cadeia não vazia de variáveis e símbolos terminais o que é equivalente a dizer que a produção A v só se pode aplicar no contexto em que A aparece com x à esquerda e y à direita. Por isso se chama dependente do contexto. 471
11.3.1. 1 Linguagens dependentes do contexto e autómatos linearmente limitados (LBA) Definição: Linguagem dependente do contexto Uma linguagem L diz-se dependente do contexto se existir uma gramática G dependente do contexto tal que L = L (G ) ou L = L (G ) { }. Reintroduziu-se aqui nas linguagens dependentes do contexto (mas não nas gramáticas dependentes de contexto 1 ). As linguagens livres de contexto são um subconjunto da família das linguagens dependentes de contexto. 1 Nota: Alguns autores incluem nas gramáticas dependentes de contexto a produção S na condição de S não aparecer na parte direita de qualquer produção. Assim permite-se a produção da cadeia vazia 472
Exemplo. Sj Seja a gramática 1. S abc aabc, 2. Ab ba 3. Ac Bbcc, 4. bb Bb, 5. ab aa aaa S 1 2 5 2 3 4 aabc abac abbbcc abbbcc aaabbcc aababcc 3 4 5 aabbacc aabbbbccc aabbbbccc aabbbbccc aaabbbccc 4 2 Esta gramática gera a linguagem L ={a a n b n c n : n 1 }. 473
Relação com os LBA s Teorema 11.7. Para toda a linguagem L dependente do contexto e não incluindo, existe algum autómato linearmente limitado (LBA) M tal que L = L (M ) (T11.8 Linz). Teorema 11.8 Se uma linguagem L for aceite por algum autómato linearmente limitado (LBA) M, então existe uma gramática dependente do contexto que gera L (T11.9 Linz). 474
11.3.2. Relação entre linguagens recursivas e linguagens dependentes do contexto. Toda a linguagem dependente do contexto é aceite por alguma MT e é por isso recursivamente enumerável Teorema 11.9 (T11.10 Linz) Toda a linguagem L dependente do contexto é recursiva Teorema 11.1010 (T11.11 Linz) Existem linguagens ge recursivas s que não são dependentes es do contexto. (LBA s são menos poderosas do que a MT). 475
11.4. Hierarquias de Linguagens Gramáticas: NRG CSG CFG RG L RE Tipo 0 L CS Tipo 1 L CF L REG Tipo 2 Tipo 3 de Chomsky 476
L NRE L RE L REC L CS L CF L DCF L DPDANPDA LBA REG DFA TM TM??? 477
L CF Linguagens livres de contexto L DCF Linguagens livres de contexto determinísticas L LIN Linguagens lineares L REG Linguagens regulares L CF L LIN L REG L DCF 478
Bibliografia An Introduction to Formal Languages and Automata, Peter Linz, 3rd Ed., Jones and Bartelett Computer Science, 2001. Models of Computation and Formal Languages, R. Gregory Taylor, Oxford University Press, 1998. Introduction to Automata Theory, Languages and Computation, 2nd Ed., John Hopcroft, Rajeev Motwani, Jeffrey Ullman, Addison Wesley, 2001. Elements for the Theory of Computation, Harry Lewis and Christos Papadimitriou, 2nd Ed., Prentice Hall, 1998. Introduction th the Theory of Computation, Michael Sipser, PWS Publishing Co, 1997. 479