Linguagens Livres-do-Contexto
|
|
- Kátia Maria Fernanda Arantes
- 4 Há anos
- Visualizações:
Transcrição
1 Linguagens Livres-do-Contexto Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 1 / 70
2 Linguagens Livres-do-Contexto: Introdução Até agora vimos métodos diferentes, porém equivalentes, de descrever linguagens: autômatos finitos e expressões regulares. Vimos que muitas linguagens podem ser descritas dessa maneira, as chamadas linguagens regulares. Porém, vimos que nem toda linguagem é regular, como, por exemplo, L = {w {0, 1} w contém o mesmo número de 0 s e de 1 s}. Isto é um problema, pois se trocarmos 0 por ( e 1 por ), não conseguiríamos reconhecer, por exemplo, a linguagem L = {w {a, b, +,, (, )} w contém o mesmo número de ( s e de ) s}. o que é essencial para verificar se expressões aritméticas estão bem formadas! Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 2 / 70
3 Linguagens Livres-do-Contexto: Introdução Aqui vamos estudar um método mais poderoso de descrever linguagens: as gramáticas livres-do-contexto. Gramáticas livres-do-contexto surgiram para estudar linguagens naturais (como português, inglês, francês). Hoje as gramáticas livres-do-contexto são essenciais para especificar linguagens de programação. Você já parou para pensar que é preciso descrever a linguagem de todos os programas válidos em Python (ou Java, C++, etc)? Além disso, que um compilador precisa verificar se uma cadeia de caracteres em um arquivo é um programa válido em Python (ou Java, C++, etc)? As linguagens geradas por gramáticas livres-do-contexto são chamadas de linguagens livres-do-contexto. As máquinas que reconhecem estas linguagens são os autômatos com pilha. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 3 / 70
4 Gramáticas Livres-do-Contexto Mário S. Alvim Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 4 / 70
5 Gramáticas Livres-do-Contexto Vamos começar com um exemplo de gramática livre-do-contexto. A 0A1 Exemplo 1 Seja a gramática livre-do-contexto G 1 : A B B # Uma gramática consiste em uma coleção de regras de substituição (ou produções). Cada regra consiste em uma variável do lado esquerdo, uma seta, e uma cadeia de variáveis e terminais do lado direito. Geralmente variáveis são representadas por letras maiúsculas. Os terminais equivalem ao alfabeto de entrada da linguagem, e geralmente representados por letras minúsculas, números ou símbolos. Uma variável é designada como variável inicial, e geralmente ocorre do lado esquerdo da primeira regra. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 5 / 70
6 Gramáticas Livres-do-Contexto Uma gramática descreve uma linguagem ao gerar cada cadeia dessa linguagem da seguinte forma. 1. Escreva a variável inicial. Ela é a variável à esquerda a primeira regra, a não ser que especificado em contrário. 2. Encontre uma variável que esteja escrita e uma regra que comece com essa variável. Substituta a variável escrita pelo lado direito dessa regra. 3. Repita o passo (2) até que não reste nenhuma variável. A sequência de substituições para se obter uma cadeia é chamada de derivação. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 6 / 70
7 Gramáticas Livres-do-Contexto Exemplo 2 Eis uma derivação da cadeia 000#111 pela gramática G 1 : A 0A1 (aplicando a primeira regra de G 1 à variável inicial A) 00A11 (aplicando a primeira regra de G 1 à variável A) 000A111 (aplicando a primeira regra de G 1 à variável A) 000B111 (aplicando a segunda regra de G 1 à variável A) 000#111 (aplicando a terceira regra de G 1 à variável B) Árvore sintática para 000#111 na gramática G 1. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 7 / 70
8 Linguagens Livres-do-Contexto O conjunto de todas as cadeias geradas pela uma gramática G constitui a linguagem da gramática, denotada por L(G). Por exemplo, a linguagem gerada pela gramática G 1 é: L(G 1 ) = {0 n #1 n n 0}. Qualquer linguagem que pode ser gerada por uma gramática livre-do-contexto é chamada de uma linguagem livre-do-contexto (LLC). Por conveniência, quando apresentamos as regras de uma LLC, abreviamos várias regras com o mesmo lado esquerdo em uma mesma linha, usando o símbolo para significar ou. Por exemplo, em G 1 as regras A 0A1 e A B podem ser abreviadas como A 0A1 B. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 8 / 70
9 Gramáticas Livres-do-Contexto Exemplo 3 A GLC G 2 abaixo descreve um fragmento da ĺıngua inglesa. sentence noun-phrase verb-phrase noun-phrase cmplx-noun cmplx-noun prep-prhase verb-phrase cmplx-verb cmplx-verb prep-prhase prep-phrase prep cmplx-noun cmplx-noun article noun cmplx-verb verb verb noun-prhase article a the noun boy girl flower verb touches likes sees prep with Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 9 / 70
10 Gramáticas Livres-do-Contexto Exemplo 3 (Continuação) As 10 variáveis de G 2 são: sentence, noun-phrase, verb-phrase, prep-phrase, cmplx-noun, cmplx-verb, article, noun, verb, e prep. Os 27 terminais de G 2 são as 26 letras do alfabeto latino (a, b,..., z) mais o espaço em branco. A gramática tem 18 regras. As cadeias geradas por G 2 incluem os exemplos abaixo: a boy sees the girl sees a flower a girl with a flower likes the boy Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 10 / 70
11 Gramáticas Livres-do-Contexto Exemplo 3 (Continuação) Uma derivação para a cadeia a boy sees pela gramática G 2 é a seguinte. sentence noun-phrase verb-phrase cmplx-noun verb-phrase article noun verb-phrase a noun verb-phrase a boy verb-phrase a boy cmplx-verb a boy verb a boy sees Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 11 / 70
12 Gramáticas Livres-do-Contexto Exemplo 4 GLCs são usadas para definir a sintaxe de linguagens de programação (como C, Java, Python, Haskell, ML, Prolog, etc.) O fragmento de GLC abaixo descreve uma linguagem de programação. program begin program command-list end program comannd-list command command-list command command assign-command if-then-else-command while-command... assign-command variable = expression if-then-else-command if boolean-expression then command-list else command-list end if while-command while boolean-expression do command-list end while variable letter variable-tail letter variable-tail letter variable-tail digit variable-tail letter digit letter A B... Z a b... z digit Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 12 / 70
13 Gramáticas Livres-do-Contexto: Definição formal Uma gramática livre-do-contexto (GLC) é uma 4-tupla (V, Σ, R, S), onde: 1. V é um conjunto finito denominado variáveis, 2. Σ é um conjunto finito, disjunto de V, denominado terminais, 3. R é um conjunto finito de regras, com cada regra sendo uma variável e uma cadeia de variáveis e terminais, e 4. S V é uma variável inicial (ou variável de partida). Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 13 / 70
14 Gramáticas Livres-do-Contexto: Notação e terminologia Se u, v e w são cadeias de variáveis e terminais, e A w é uma regra da gramática, dizemos que uav origina uwv, escrito Dizemos que u deriva v, escrito uav uwv. u v se u = v ou se existe uma sequência u 1, u 2,..., u k, para k 0, tal que u u 1 u 2... u k v. Dada uma gramática G = (V, Σ, R, S), linguagem da gramática é L(G) = {w Σ S w}. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 14 / 70
15 Gramáticas Livres-do-Contexto: Notação e terminologia Frequentemente especificamos uma gramática escrevendo somente suas regras. Podemos identificar as variáveis como os símbolos do lado esquerdo de cada regra, e os terminais como os símbolos restantes. Por convenção, a variável de partida é colocada do lado esquerdo da primeira regra. A 0A1 Exemplo 5 Voltando à gramática G 1 : A B B # Formalmente, G 1 = (V, Σ, R, S), onde: suas variáveis são V = {A, B}, seu alfabeto é Σ = {0, 1, #}, a variável de partida é S = A, e e a coleção de regras R é dada acima. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 15 / 70
16 Gramáticas Livres-do-Contexto: Exemplos Exemplo 6 Considere a gramática G 3 = ({S}, {a, b}, R, S). O conjunto de regras, R, é S asb SS ɛ. Essa gramática gera cadeias como: abab aaabbb aababb ɛ Se interpretarmos o símbolo a como parênteses à esquerda (, e o símbolo b como parênteses à direita ), a linguagem L(G 3 ) gerada pela gramática é a linguagem de todas as cadeias com parênteses propriamente aninhados. Por exemplo, as cadeias acima representariam: ()() ((())) (()()) ɛ Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 16 / 70
17 Gramáticas Livres-do-Contexto: Exemplos Exemplo 7 Considere a gramática G 4 = (V, Σ, R, expr ), em que V = { expr, term, factor }, Σ = {a, +,, (, )}, e as regras em R são expr expr + term term term term factor factor factor ( expr ) a Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 17 / 70
18 Gramáticas Livres-do-Contexto: Exemplos Exemplo 7 (Continuação) As seguintes cadeias podem ser geradas por G 4, com suas árvores sintáticas. a + a a (a + a) a Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 18 / 70
19 Projetando Gramáticas Livres-do-Contexto Assim como é o caso com autômatos finitos, projetar gramáticas livres-do-contexto é uma arte. GLCs são, de fato, mais complicadas de construir que AFDs, uma vez que geram linguagens mais expressivas. De fato, as linguagens livres-do-contexto são estritamente mais gerais que as linguagens regulares. (Note que já tínhamos mostrado que L = {0 n 1 n n 0} não é uma linguagem regular, mas em breve construiremos uma GLC para a L, mostramos que ela é livre-do-contexto!) A melhor maneira de ser capaz de projetar GLCs para linguagens é praticando! Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 19 / 70
20 Projetando Gramáticas Livres-do-Contexto Exemplo 8 Projete uma GLC para a linguagem L = {0 n 1 n n 0}. Solução. A seguinte gramática gera L. S 0S1 ɛ Exemplo 9 Projete uma GLC para a linguagem L = {a m b n m < n}. Solução. A seguinte gramática gera L. S IB I ai b ɛ B Bb b Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 20 / 70
21 Gramáticas Livres-do-Contexto: Ambiguidade Às vezes uma gramática pode gerar a mesma cadeia de várias formas diferentes. Tal cadeia terá várias árvores sintáticas diferentes e, portanto, vários significados diferentes. Isto é indesejável em algumas aplicações. Em linguagens de programação, por exemplo, queremos que cada programa tenha uma única interpretação. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 21 / 70
22 Gramáticas Livres-do-Contexto: Ambiguidade Exemplo 10 Seja a gramática G 5 : expr expr + expr expr expr ( expr ) a. Esta gramática gera a cadeia a + a a ambiguamente, como mostram as duas árvores de derivação distintas: Esta gramática pode agrupar a some (+) antes da multiplicação ( ), ou vice-versa, não dando um significado único a cada sentença matemática. Já a gramática G 4 é equivalente (gera a mesma linguagem), mas não é ambígua: ela força a multiplicação a ser avaliada antes da soma. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 22 / 70
23 Gramáticas Livres-do-Contexto: Ambiguidade Uma derivação de uma cadeia w em uma gramática G é uma derivação mais à esquerda se a cada passo a variável remanescente mais à esquerda é aquela que é substituída. Uma cadeia w é derivada ambiguamente na gramática livre-do-contexto G se ela tem duas ou mais derivações mais à esquerda diferentes. A gramática G é ambígua se ela gera alguma cadeia ambiguamente. Às vezes uma gramática ambígua pode ser convertida em uma gramática equivalente sem ambiguidade. Este foi o caso da gramática G 5 acima, que pôde ser convertida numa gramática não-ambígua equivalente G 4. Quando isto não é possível (ou seja, quando só exitem gramáticas ambíguas para a linguagem) dizemos que a linguagem é inerentemente ambígua. Um exemplo de linguagem inerentemente ambígua é: {a i b j c k i = j ou j = k}. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 23 / 70
24 Forma normal de Chomsky: Definição formal Quando trabalhamos com linguagens livres-do-contexto, é frequentemente conveniente simplificá-las. Uma das formas simplificadas mais usadas é a forma normal de Chomsky, que é útil para aplicar algoritmos a GLCs. Uma gramática livre-do-contexto está na forma normal de Chomsky se toda regra tem uma das seguintes formas: A BC A a S ɛ (A, B, C são variáveis quaisquer, e B e C não são a variável de partida) (A é um variável qualquer, e a é um terminal) (apenas se S é a variável de partida) Intuitivamente, a forma normal de Chomsky garante que a derivação de uma palavra não desperdiça tempo : cada passo ou adiciona uma variável ou transforma uma variável em um terminal. (Para gerar qualquer palavra de tamanho n são necessários no máximo 2n 1 passos!) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 24 / 70
25 Forma normal de Chomsky: Definição formal Teorema Qualquer linguagem livre-do-contexto é gerada por uma gramática livre-do-contexto na forma normal de Chomsky. Prova. A prova formal encontra-se no livro-texto. Aqui, em vez de dar a prova formal, vamos estudar sua ideia central com um exemplo em que transformamos uma GLC em uma GLC equivalente na forma normal de Chomsky. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 25 / 70
26 Forma normal de Chomsky: Exemplo Exemplo 11 Seja a GLC G 6 abaixo. Usando o método proposto na prova do teorema anterior, encontre uma gramática na forma normal de Chomsky equivalente a G 6, (isto é, que gere a mesma linguagem). Solução. A transformação é dada passo-a-passo, em que cada passo uma nova versão equivalente da gramática é apresentada. As regras mostradas em negrito acabam de ser adicionadas, enquanto as regras mostradas em cinza acabam de ser removidas. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 26 / 70
27 Forma normal de Chomsky: Exemplo Exemplo 11 (Continuação) 1. A GLC original G 6 está à esquerda. A primeira modificação consiste em introduzir uma nova variável inicial, obtendo a GLC da direita. 2. Remova as regras ɛ: B ɛ (mostrado à esquerda), A ɛ (mostrado à direita). Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 27 / 70
28 Forma normal de Chomsky: Exemplo Exemplo 11 (Continuação) 3a. Remova as regas unitárias: S S (mostrado à esquerda), e S 0 S (mostrado à direita). 3b. Remova as regras unitárias: A B (mostrado à esquerda), A S (mostrado à direita). Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 28 / 70
29 Forma normal de Chomsky: Exemplo Exemplo 11 (Continuação) 4. Converta as regras remanescentes para a forma apropriada acrescentando variáveis e regras adicionais. A gramática final em forma normal de Chomsky, abaixo, é equivalente à GLC original G 6. Note que o procedimento dado no teorema produz diversas variáveis U i com regras U i a, mas aqui nós simplificamos a gramática com uma única variável U e a regra U a. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 29 / 70
30 Autômatos com Pilha Mário S. Alvim Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 30 / 70
31 Autômato com Pilha Para reconhecer linguagens livres-do-contexto vamos precisar de máquinas mais poderosas que os autômatos finitos. Um autômato finito pode ser esquematizado da seguinte forma: Que modificações poderíamos fazer no esquema de autômatos finitos para transformá-los em máquinas mais poderosas? Mário S. Alvim Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 31 / 70
32 Autômato com Pilha Lembre-se de que o lema do bombeamento para linguagens regulares diz, essencialmente, que autômatos finitos se perdem em contagens longas. Mais precisamente, os autômatos finitos têm sérias limitações em se lembrar do que viram no passado. Isto sugere que podemos incluir algum tipo de memória nos AFs! Vamos adicionar à máquina uma memória extremamente simples, uma pilha, em que o último símbolo empilhado é o primeiro a ser desempilhado. Assim, chegamos aos autômatos com pilha: Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 32 / 70
33 Autômato com Pilha: Definição formal Notação: dado um conjunto A, denotamos por A ɛ o conjunto A {ɛ}. Um autômato com pilha (AP) é uma 6-tupla (Q, Σ, Γ, δ, q 0, F ), onde: 1. Q é um conjunto finito de estados, 2. Σ é o alfabeto (finito) de entrada, 3. Γ é o alfabeto (finito) de pilha, 4. δ : Q Σ ɛ Γ ɛ P(Q Γ ɛ) é a função de transição, 5. q 0 Q é o estado inicial, e 6. F Q é o conjunto de estados de aceitação (ou estados finais). Note que, pela definição da função transição δ, estamos considerando APs não-determinísticos. (Pode-se mostrar que APs determinísticos são estritamente menos poderosos que os não-determinísticos, e não vamos estudá-los aqui.) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 33 / 70
34 Autômatos com Pilha: Definição formal de computação Seja M = (Q, Σ, Γ, δ, q 0, F ) um AP, e suponha que w = w 1 w 2... w m é uma cadeia em que cada w i Σ ɛ. Então o AP M aceita a cadeia w se existe uma sequência de estados r 0, r 1,..., r m Q e cadeias s 0, s 1,..., s m Γ satisfazendo as condições abaixo. (Aqui as cadeias s i representam a sequência de conteúdo da pilha que M tem no ramo de aceitação da computação.) 1. r 0 = q 0 e s 0 = ɛ. (Esta condição diz que M começa no estado inicial e com a pilha vazia.) 2. Para i = 0,..., m 1, temos (r i+1, b) δ(r i, w i+1, a), onde s i = at e s i+1 = bt para algum a, b Γ ɛ e t Γ. (Esta condição diz que M se move apropriadamente de acordo com a função de transição.) 3. r m F. (Esta condição diz que ao terminar de consumir a cadeia de entrada, M está em um estado de aceitação.) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 34 / 70
35 Autômatos com Pilha: Exemplos Exemplo 12 Vimos que a linguagem L 1 = {0 n 1 n n 0} não é regular e, portanto, não pode ser reconhecida por um autômato finito. Construa um autômato de pilha que reconheça L. Solução. A ideia central do autômato de pilha para L é ir lendo os símbolos de entrada e fazendo o seguinte: 1. Sempre que um 0 é lido, empilhe-o. 2. Quando os 1s começarem a ser lidos, desempilhe um 0 para cada 1 lido. 3. Se a leitura da entrada termina exatamente quando a pilha fica vazia de 0s, aceite a entrada. 4. Se a pilha esvazia antes de ler todos os 1s da entrada, ou se os 1s da entrada acabam antes de esvaziarem-se os 0s da pilha, ou se aparecerem quaisquer 0s após algum 1 da entrada, rejeite a entrada. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 35 / 70
36 Autômatos com Pilha: Exemplos Exemplo 12 (Continuação) O diagrama de estados a seguir implementa a ideia discutida, onde o rótulo a, b c sobre uma aresta indica que a transição satisfaz: 1. O símbolo disponível na entrada é a Σ ɛ, e o símbolo é consumido. 2. O símbolo disponível no topo da pilha é b Γ ɛ, e o símbolo é desempilhado. 3. O símbolo c Γ ɛ é empilhado. Note que uma cadeia é reconhecida apenas se o AP atinge um estado final no momento em que a cadeia foi completamente consumida. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 36 / 70
37 Autômatos com Pilha: Exemplos Exemplo 12 (Continuação) Computação sobre a cadeia 0011: Transição Estado Cadeia Pilha 0 q ɛ 1 q $ 2 q $ 3 q $ 4 q 3 1 0$ 5 q 3 ɛ $ 6 q 4 ɛ ɛ Cadeia aceita: AP para em estado final consumindo a cadeia inteira. Computação sobre a cadeia 011: Transição Estado Cadeia Pilha 0 q ɛ 1 q $ 2 q $ 3 q 3 1 $ 4 q 4 1 ɛ Cadeia rejeitada: AP para sem consumir a cadeia inteira. Computação sobre a cadeia 001: Transição Estado Cadeia Pilha 0 q ɛ 1 q $ 2 q $ 3 q $ 4 q 3 ɛ 0$ Cadeia rejeitada: AP para em estado não-final. Computação sobre a cadeia 0101: Transição Estado Cadeia Pilha 0 q ɛ 1 q $ 2 q $ 3 q 3 01 $ 4 q 4 01 ɛ Cadeia rejeitada: AP para sem consumir a cadeia inteira. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 37 / 70
38 Autômatos com Pilha: Exemplos Exemplo 12 (Continuação) O autômato com pilha cujo diagrama foi dado pode ser formalizado como M 1 = (Q, Σ, Γ, δ, q 1, F ), onde: 1. o conjunto de estados é Q = {q 1, q 2, q 3, q 4}, 2. o alfabeto de entrada é Σ = {0, 1}, 3. o alfabeto de pilha é Γ = {0, $}, 4. a função de transição δ é dada pela tabela (entradas em branco significam ): 5. o conjunto de estados de aceitação é F = {q 1, q 4}. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 38 / 70
39 Autômatos com Pilha: Exemplos Exemplo 13 linguagem Dê o diagrama de estados de um AP que reconheça a L 2 = {a i b j c k i, j, k 0 e i = j ou i = k}. Solução. O seguinte AP M 2, que é não-determinista, reconhece a linguagem L 2. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 39 / 70
40 Autômatos com Pilha: Exemplos Exemplo 14 Dê o diagrama de estados de um AP que reconheça a linguagem L 3 = {ww R w {0, 1} }. (Lembre-se de que w R é a cadeia w em ordem reversa.) Solução. O seguinte AP M 3, que é não-determinista, reconhece a linguagem L 3. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 40 / 70
41 Equivalência entre LLCs e APs Agora vamos verificar que as gramáticas livres-do-contexto e os autômatos com pilha são equivalentes em poder. Ou seja, ambas descrevem exatamente a classe das linguagens livres-do-contexto. Isto é útil porque teremos duas maneiras de determinar se uma linguagem L é livre-do-contexto: 1. encontrando um gerador para L, ou seja, uma GLC que gere L, ou 2. encontrando um reconhecedor para L, ou seja, um AP que reconheça L. Teorema Uma linguagem é livre-do-contexto se, e somente se, algum autômato com pilha a reconhece. Prova. Há duas direções a provar: (1) que se uma linguagem é LLC, então existe um AP que a reconhece, e (2) que se existe um AP para uma linguagem, então ela é LLC. A prova segue dos dois lemas a seguir, uma para cada direção. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 41 / 70
42 Equivalência entre LLCs e APs Lema Se uma linguagem é livre-do-contexto, então algum autômato com pilha a reconhece. Prova. A prova completa encontra-se no livro-texto. Aqui estudaremos sua ideia central. Seja L uma LLC. Então sabemos que existe uma GLC G para L. Vamos converter a GLC em um AP P da seguinte forma. 1. Coloque o símbolo marcador $ e a variável inicial de G no topo da pilha. 2. Repita os seguintes passos para sempre. a. Se o topo da pilha é um símbolo de variável A, não-deterministicamente selecione uma das regras para A, desempilhe A e empilhe o lado direito da regra. b. Se o topo da pilha é um símbolo terminal a, leia o próximo símbolo da entrada e compare-o com a. Se eles casam, repita. Se não casam, rejeite nesse ramo do não-determinismo. c. Se o topo da pilha é o símbolo $, entre no estado de aceitação. Fazendo isso, a entrada é aceita somente se ela tiver sido consumida por completo. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 42 / 70
43 Equivalência entre LLCs e APs Prova. (Continuação) Agora, para implementar P seguindo a ideia acima, fazemos o seguinte: Primeiro, vamos adotar uma abreviação para a possibilidade de uma transição empilhar mais do que um símbolo por vez na pilha. Por fim, o diagrama de estados do AP P que reconhece L é: Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 43 / 70
44 Equivalência entre LLCs e APs Exemplo 15 Use o procedimento desenvolvido no lema anterior para construir um AP P 1 a partir da seguinte GLC G: S at b b T T a ɛ Solução. O seguinte diagrama de estados representa o AP pedido. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 44 / 70
45 Equivalência entre LLCs e APs Exemplo 15 (Continuação) Como ilustração, considere a cadeia aaabb: Geração da cadeia pela gramática: S at b at ab aab Computação da cadeia pelo AP: Transição Estado Cadeia Pilha 0 q start aab ɛ 2 q loop aab S$ 5 q loop aab at b$ 6 q loop ab T b$ 8 q loop ab T ab$ 9 q loop ab ab$ 10 q loop b b$ 11 q loop ɛ ɛ$ 12 q accept ɛ ɛ Cadeia aceita: AP para em estado final consumindo a cadeia inteira. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 45 / 70
46 Equivalência entre LLCs e APs Para completar a equivalência entre LLCs e APs, é preciso estabelecer a direção de volta. Lema Se uma linguagem é reconhecida por um autômato com pilha, então ela é livre-do-contexto. Prova. A prova completa encontra-se no livro-texto. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 46 / 70
47 Relação entre LLCs e linguagens regulares O fato de que GLCs e APs são equivalentes leva ao seguinte resultado que compara as LLCs às linguagens regulares. Corolário Toda linguagem regular é livre-do-contexto. Prova. Se uma linguagem L é regular, então existe um AF M para L. Mas isso garante que exite um AP para L, que se comporta exatamente como M e não usa a pilha para nada. Mas o teorema anterior garante que se existe AP para L, então também existe GLC para L. Logo L é livre-do-contexto. A relação entre linguagens regulares e linguagens livres-do-contexto encontra-se a seguir. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 47 / 70
48 Linguagens Não-Livres-do-Contexto Mário S. Alvim Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 48 / 70
49 Linguagens Não-Livres-do-Contexto: Introdução Como vimos, os autômatos com pilha são ainda mais poderosos que os autômatos finitos, podendo reconhecer ainda mais linguagens. Porém, APs não conseguem reconhecer todas as linguagens. Ou seja, existem linguagens não-livres-do-contexto, que estão além do poder dos autômatos com pilha e, equivalentemente, além do poder das gramáticas livres-do-contexto. A ideia central da limitação dos autômatos com pilha é, apesar de eles terem uma memória mais geral que os AFs, a pilha permite que os APs se lembrem apenas da última coisa vista. Intuitivamente, qualquer linguagem cujas cadeias precisem que a máquina se lembre de símbolos em ordem arbitrária o suficiente não pode ser uma linguagem livre-do-contexto. Aqui vamos estudar linguagens não-livres-do-contexto, usando a poderosa ferramenta do Lema do bombeamento para linguagens livres-do-contexto. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 49 / 70
50 Lema do bombeamento para linguagens livres-do-contexto Teorema (Lema do bombeamento para linguagens livres-do-contexto.) Se A é uma linguagem livre do contexto, então existe um número p, chamado de comprimento de bombeamento, tal que, se s é uma cadeia qualquer em A de comprimento pelo menos p, então s pode ser dividida em cinco partes satisfazendo as seguintes condições: 1. para cada i 0, uv i xy i z A, 2. vy > 0, e 3. vxy p. s = uvxyz Prova. A prova completa é dada no livro-texto; aqui veremos sua essência. Seja A uma LLC e suponha que G seja uma GLC que a gere. Temos que mostrar que qualquer cadeia s suficientemente longa (ou seja, de tamanho maior que p) em A pode ser bombeada (Condição (1) do LB) e permanecer em A. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 50 / 70
51 Lema do bombeamento para linguagens livres-do-contexto Prova. (Continuação) A ideia da prova é simples. Seja s uma cadeia muito longa em A (a definição precisa de muito longa está na prova formal no livro). Então: 1. Como s está em A, s é gerada pela GLC para G e tem, portanto, uma árvore de derivação. 2. Como s é muito longa, sua árvore sintática necessariamente repete pelo menos uma variável no caminho da raiz até uma folha. Por exemplo, na figura seguinte a variável R é repetida na árvore sintática. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 51 / 70
52 Lema do bombeamento para linguagens livres-do-contexto Prova. (Continuação) 3. Como R foi repetida uma vez na árvore sintática, as regras de G permitem repetir R quanta vezes quisermos (ou seja, quantas repetições de i = 0 até quanto quisermos!) Por exemplo, podemos repetir o uso de R mais uma vez, gerando uv 2 xy 2 z A: Ou podemos eliminar a segunda repetição de R, gerando uv 0 xy 0 z = uvz A: Isso garante que as partes x e y da cadeia s podem ser bombeadas quantas vezes quisermos (Condição (1) do LB). Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 52 / 70
53 Lema do bombeamento para linguagens livres-do-contexto Prova. (Continuação) 5. As Condições (2) e (3) seguem do princípio da casa dos pombos: a) A Condição (2) garante que a recursão na regra R não pode ser uma regra unitária. Em outras palavras, a Condição(2) se combina com a Condição (1) para garantir que a derivação de qualquer cadeia longa o suficiente precisa conter uma chamada recursiva não-trivial. b) A Condição (3), combinada com as demais condições, garante que qualquer substring da cadeia que pode ser derivada sem chamada recursiva tem comprimento no máximo p. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 53 / 70
54 Lema do bombeamento para linguagens livres-do-contexto: Como usar O uso do Lema do Bombeamento para linguagens livres-do-contexto para mostrar, por contradição, que uma linguagem L não é livre-do-contexto é similar ao que fizemos para linguagens regulares: 1. Assuma que L seja livre-do-contexto. 2. Use o LB para garantir que existe um comprimento p tal que toda cadeia s L com comprimento maior que p possa ser bombeada. 3. Encontre uma cadeia s L com comprimento maior que p que não possa ser bombeada, mostrando que para qualquer divisão de s = uvxyz (possivelmente usando as condições do LB de que vy > 0 e vxy p), existe pelo menos um valor de i tal que uv i xy i z / L. 4. Como você chegou a uma contradição, pois (3) contradiz (2), sua hipótese em (1) era falsa, e L não pode ser uma linguagem livre-do-contexto. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 54 / 70
55 Observações sobre o uso do Lema do Bombeamento para LLCs O uso do LB para LLCs pode parecer difícil de entender a princípio; as observações abaixo tentam explicar seu uso. Obs. 1 sobre o LB: O LB diz que Se uma linguagem L é livre-do-contexto, então existe uma constante p tal que para toda cadeia s L tal que s p, existe uma divisão da cadeia em s = uvxyz para a qual as Condições (1), (2) e (3) do LB valem. Isto pode ser formalizado em lógica de predicados como: Se uma linguagem L é livre-do-contexto, então p N : s L : [ ( s p) ( div(s) : cond 1 cond 2 cond 3 ) ], (*) onde: div(s) é uma função que divide a cadeia s em uma concatenação uvxyz; cond 1, cond 2 e cond 3 são as Condições (1), (2) e (3) do LB, respectivamente. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 55 / 70
56 Observações sobre o uso do Lema do Bombeamento para LLCs Obs. 2 sobre o LB: A nossa prova por contradição parte do princípio de que a linguagem L é livre-do-contexto, mas nega a cláusula (*) de conclusão do LB. Relembrando suas aulas de lógica, note que a negação da cláusula (*) é: p N : s L : [ ( s p) ( div(s) : (cond 2 cond 3 ) cond 1 ) ]. Ou seja, nossa prova por contradição 1. assume que L é livre-do-contexto, 2. e demonstra que LB falha para L ao mostrar que para toda constante p, existe uma cadeia s L tal que s p e, para qualquer divisão de s em uvxyz, se as Condições (2) e (3) do LB forem verdadeiras, a Condição (1) tem que necessariamente ser falsa. Como o LB não pode falhar, a única conclusão da nossa prova é que L não pode ser livre-do-contexto! Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 56 / 70
57 Lema do bombeamento para linguagens livres-do-contexto: Exemplos Exemplo 16 Use o lema do bombeamento para mostrar que a linguagem B = {a n b n c n n 0} não é livre-do-contexto. Prova. Vamos provar por contradição. Assuma que B seja LLC, e que, portanto, ela satisfaça o LB para LLCs. Seja p o comprimento de bombeamento. Escolha s como a cadeia a p b p c p B. Como s B e s p, o LB diz que se pode dividir s em cinco partes s = uvxyz, onde para qualquer i 0, uv i xy i z B (Condição (1) do LB), vy > 0 (Condição (2)), e vxy p (Condição (3)). Mostramos que, independentemente de como dividamos s = uvxyz, pelo menos uma das condições do LB é violada. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 57 / 70
58 Lema do bombeamento para linguagens livres-do-contexto: Exemplos Prova. (Continuação) Como a Condição (3) do LB garante que vxy p, podemos concluir que vxy não pode conter ao mesmo tempo a s, b s e c s, pois na cadeia a p b p c p contém p símbolos seguidos de cada tipo. (Mais precisamente, note que ou a subcadeia vxy não contém a s, ou se ela contém a s então com certeza ela não contém c s, pois vxy p e há p b s entre o último a o primeiro c de s.) A Condição (2) do LB garante que vy > 0, logo a cadeia uv 2 xy 2 z acrescente símbolos novos à cadeia a p b p c p. Porém, uv 2 xy 2 z não pode ter o mesmo número de a s, b s e c s, porque nem todos os tipos de símbolos foram acrescentados em mesmo número à cadeia. Logo Condição (1) do LB é violada, e chegamos a uma contradição. Assim concluímos que a linguagem não pode ser livre-do-contexto. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 58 / 70
59 Lema do bombeamento para linguagens livres-do-contexto: Exemplos Exemplo 17 Use o lema do bombeamento para mostrar que a linguagem C = {a i b j c k i j k} não é livre-do-contexto. Prova. Vamos provar por contradição. Assuma que C seja LLC e que, portanto, ela satisfaça o LB para LLCs. Seja p o comprimento de bombeamento. Escolha s como a cadeia a p b p c p C. Como s C e s p, o LB diz que se pode dividir s em cinco partes s = uvxyz, onde para qualquer i 0, uv i xy i z C. Nesta prova vamos bombear para baixo, assim como bombear para cima. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 59 / 70
60 Lema do bombeamento para linguagens livres-do-contexto: Exemplos Prova. (Continuação) Como a Condição (2) do LB garante que v ou y é não-vazia, podemos considerar todas as divisões possíveis de s = uvxyz em apenas dois casos: Caso 1. Quando v ou y contêm mais que um tipo de símbolo cada, uv 2 xy 2 z não contém os símbolos na ordem correta e, portanto, não pertence a C: contradição. Caso 2. Quando tanto v quanto y contêm apenas um tipo de símbolo do alfabeto cada, sabemos que pelo menos um dos tipos de símbolo a, b ou c não vai estar presente nem em v nem em y. Subdividimos, então, este caso em mais três. Caso 2-a. Quando a s não aparecem em v ou y, bombeamos para baixo para obter a cadeia uv 0 xy 0 z = uxz. Esta cadeia contém o mesmo número de a s que a cadeia s, mas contém menos b s ou menos c s. Logo esta cadeia não pertence a C, e chegamos a uma contradição. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 60 / 70
61 Lema do bombeamento para linguagens livres-do-contexto: Exemplos Prova. (Continuação) Caso 2. (Continuação) Caso 2-b. Quando b s não aparecem em v ou y, então pelo menos um a ou um c vai aparecer em v ou y, pois não pode ocorrer que ambos v e y sejam vazios (Condição (2) do LB). Se a s aparecem em v ou y, a cadeia uv 2 xy 2 z contém mais a s que b s e, portanto, ela não pertence a C. Se c s aparecem em v ou y, a cadeia uv 0 xy 0 z contém mais b s que c s e, portanto, ela não pertence a C. De qualquer forma, temos uma contradição. Caso 2-c. Quando c s não aparecem em v ou y, a cadeia uv 2 xy 2 z contém menos c s que a s ou b s e, portanto, ela não pertence a C, o que é uma contradição. Como um dos casos acima tem que ocorrer, e todos levam a uma contradição, concluímos que a linguagem viola o LB e não pode ser, portanto, livre-do-contexto. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 61 / 70
62 Lema do bombeamento para linguagens livres-do-contexto: Exemplos Exemplo 18 Use o lema do bombeamento para mostrar que a linguagem D = {ww w {0, 1} } não é livre-do-contexto. Prova. Por contradição. Assuma que seja livre-do-contexto e que, portanto, satisfaça o LB para LLCs. Seja p a constante de bombeamento. Tomemos a cadeia s = 0 p 1 p 0 p 1 p. Ela pertence a D e tem comprimento maior que p, logo o LB diz que se pode dividir s em cinco partes s = uvxyz, onde para qualquer i 0, uv i xy i z D (Condição (1) do LB), vy > 0 (Condição (2)), e vxy p (Condição (3)). Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 62 / 70
63 Lema do bombeamento para linguagens livres-do-contexto: Exemplos Exemplo 18 (Continuação) Primeiro, vamos mostrar que a subcadeia vxy deve necessariamente conter o ponto médio da cadeia s (isto é, vxy contém pelo menos um 1 seguido de pelo menos um 0 no meio de 0 p 1 p 0 p 1 p ). Dividimos a situação em dois casos: Se a subcadeia vxy ocorresse integralmente na primeira metade de s, uv 2 xy 2 z deslocaria um símbolo 1 para a primeira posição da segunda metade de s e, portanto, s não seria da forma ww. Similarmente, se vxy ocorresse integralmente na segunda metade de s, uv 2 xy 2 z deslocaria um símbolo 0 para a última posição da primeira metade da cadeia s, e ela não seria da forma ww. Logo, concluímos que a subcadeia vxy deve conter o ponto médio da cadeia s. Mas neste caso, uv 0 xy 0 z = uxz tem a forma 0 p 1 i 0 j 1 p, onde i p j. Claramente essa cadeia não é da forma ww, e a cadeia s não pode ser bombeada, o que contradiz a Condição (1) do LB. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 63 / 70
64 Propriedades de Fechamento de Linguagens Livres-do-contexto Mário S. Alvim Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 64 / 70
65 Propriedades de Fechamento de Linguagens Livres-do-contexto Lembre-se de que dizemos que um conjunto A é fechado sob uma operação op se ao aplicarmos a operação op a elementos de A, o resultado é também um elemento de A. Lembre-se também de que vimos que a classe das linguagens regulares é fechada sob as operações de: união, interseção, concatenação, fecho de Kleene, e complemento. Vamos agora verificar se a classe das linguagens livres-do-contexto é fechada sob as mesmas operações. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 65 / 70
66 Propriedades de Fechamento de Linguagens Livres-do-contexto Teorema A classe das linguagens livres-do-contexto é fechada sob união. Prova. Queremos mostrar que para quaisquer linguagens A e B, se A e B são livres-do-contexto (LLC), então A B é livre-do-contexto. Note que se A e B são LLCs, então existem gramática G A = (V A, Σ A, R A, S A ) para A e gramática G B = (V B, Σ B, R B, S B ) para B tais que V A V B = (se não for, apenas renomeie as variáveis de cada gramática). Podemos construir uma gramática G = (V, Σ, R, S ) para A B onde: V = V A V B, Σ = Σ A Σ B, R = R A R B {S S A S B }, S é uma nova variável de partida tal que S / V A e S / V B. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 66 / 70
67 Propriedades de Fechamento de Linguagens Livres-do-contexto Teorema A classe das linguagens livres-do-contexto é fechada sob concatenação. Prova. Queremos mostrar que para quaisquer linguagens A e B, se A e B são livres-do-contexto (LLC), então A B é livre-do-contexto. Note que se A e B são LLCs, então existem gramática G A = (V A, Σ A, R A, S A ) para A e gramática G B = (V B, Σ B, R B, S B ) para B tais que V A V B = (se não for, apenas renomeie as variáveis de cada gramática). Podemos construir uma gramática G = (V, Σ, R, S ) para A B onde: V = V A V B, Σ = Σ A Σ B, R = R A R B {S S A S B }, S é uma nova variável de partida tal que S / V A e S / V B. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 67 / 70
68 Propriedades de Fechamento de Linguagens Livres-do-contexto Teorema A classe das linguagens livres-do-contexto é fechada sob fecho de Kleene. Prova. Queremos mostrar que para qualquer linguagem A, se A é livre-do-contexto (LLC), então A é livre-do-contexto. Note que se A é LLC, então existem uma gramática G A = (V A, Σ A, R A, S A ) para A. Podemos construir uma gramática G = (V, Σ, R, S ) para AA onde: V = V A, Σ = Σ A, R = R A {S S S A ɛ}, S é uma nova variável de partida tal que S / V A. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 68 / 70
69 Propriedades de Fechamento de Linguagens Livres-do-contexto Teorema A classe das linguagens livres-do-contexto não é fechada sob interseção. Prova. Queremos mostrar que existem duas linguagens A e B tais que ambas são LLCs, mas A C não é LLC. Considere A = {a n b n c m m, n 0} B = {a m b n c n m, n 0}. e Tanto A quanto B são LLCs (construa uma GLC para cada uma!), mas a interseção delas é A B = {a n b n c n n 0}, que em um exemplo anterior já provamos não ser uma LLC. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 69 / 70
70 Propriedades de Fechamento de Linguagens Livres-do-contexto Teorema A classe das linguagens livres-do-contexto não é fechada sob complementação. Prova. Por contradição. Assuma que a classe das linguagens livres-do-contexto fosse fechada sob complementação. Mas note sabemos que LLCs são fechadas sob união, e sabemos que (por DeMorgan) A B = A B. Logo, se LLCs fossem fechadas sob complementação, elas também seriam fechadas sob interseção, o que é uma contradição ao fato de que já provamos que elas não são. Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG (2018/02) 70 / 70
Linguagens Não-Regulares
Linguagens Não-Regulares Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Não-Regulares DCC-UFMG (2018/02)
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br
Leia maisGramáticas Livres de Contexto
Gramáticas Livres de Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 42 Frase do dia Quando vires
Leia maisLema do Bombeamento Linguagens Livres de Contexto
Lema do Bombeamento Linguagens Livres de Contexto Agenda Lema do Bombeamento para CFL s Motivação Teorema Prova Exemplos de provas usando o lema 0 Bombeando FA s 1 x y z 1 0 1 0 Strings de comprimento
Leia maisLema do Bombeamento para Linguagens Livres do Contexto
Lema do Bombeamento para Linguagens Livres do Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 44
Leia maisAutômatos Finitos e Não-determinismo
Autômatos Finitos e Não-determinismo Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Autômatos Finitos e Não-determinismo
Leia maisLinguagens Livres do Contexto. Adaptado de H. Brandão
Linguagens Livres do Contexto Adaptado de H. Brandão Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres do Contexto; Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres
Leia maisPropriedades das Linguagens Livres do Contexto
Capítulo 7 Propriedades das Linguagens Livres do Contexto As linguagens livres do contexto ocupam uma posição central na hierarquia das linguagens formais. Por um lado, as linguagens livres do contexto
Leia maisLinguagens Formais e Problemas de Decisão
Linguagens Formais e Problemas de Decisão Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas
Leia maisLema do Bombeamento. Aplicação para Linguagens Regulares e Livres de Contexto. Maria Adriana Vidigal de Lima. Abril
Aplicação para Linguagens Regulares e Livres de Contexto Abril - 2009 1 Linguagens Não-Regulares 2 Propriedades das Linguagens Regulares Todas as linguagens finitas (com um número finito de palavras) são
Leia maisSCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)
SCC-505 - Capítulo 2 e (versão 2) João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis
Leia maisLinguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
Leia maisSegunda Lista de Exercícios 2004/2...
+ + UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM162 Linguagens Formais e Autômatos Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Segunda Lista de Exercícios
Leia maisCapítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.
Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma
Leia maisDecidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)
Decidibilidade Mário S Alvim (msalvim@dccufmgbr) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 1 / 45 Decidibilidade:
Leia maisExpressões regulares
Expressões regulares IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 38 Frase do dia A vida é uma luta inteira
Leia maisTerceira Lista de Exercícios 2004/2...
UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM162 Linguagens Formais e Autômatos Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Terceira Lista de Exercícios 2004/2
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 1. Linguagens Regulares Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br www.each.usp.br/lauretto
Leia maisMáquinas de Turing - Computabilidade
BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma
Leia maisAFNs, Operações Regulares e Expressões Regulares
AFNs, Operações Regulares e Expressões Regulares AFNs. OperaçõesRegulares. Esquematicamente. O circulo vermelho representa o estado inicial q 0, a porção verde representa o conjunto de estados de aceitação
Leia maisLINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO
LINGUAGEM LIVRE DE CONTEXTO As Linguagens Livres de Contexto é um reconhecedor de linguagens, capaz de aceitar palavras corretas (cadeia, sentenças) da linguagem. Por exemplo, os autômatos. Um gerador
Leia maisLinguagens livres de contexto e autômatos de pilha
Capítulo 6: Linguagens livres de contexto e autômatos de pilha José Lucas Rangel, maio 1999 6.1 - Introdução. Os aceitadores, ou reconhecedores, das linguagens livres de contexto são os chamados autômatos
Leia maisConstrução de Compiladores Aula 16 - Análise Sintática
Construção de Compiladores Aula 16 - Análise Sintática Bruno Müller Junior Departamento de Informática UFPR 25 de Setembro de 2014 1 Introdução Hierarquia de Chomsky Reconhecedores Linguagens Livres de
Leia maisLFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.
LFA Aula 09 Gramáticas e Linguagens Livres de Contexto (Hopcroft, 2002) 18/01/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Classes Gramaticais Linguagens
Leia maisUniversidade Federal de Alfenas
Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 13 Autômato com Pilha humberto@bcc.unifal-mg.edu.br Última aula Linguagens Livres do Contexto P(S*) Recursivamente enumeráveis Recursivas
Leia maisExercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes
Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes Questões do POSCOMP 2011 A resposta certa está assinalada em vermelho. Por que é correta e por que as demais alternativas são incorretas?
Leia maisLema do Bombeamento Operações Fechadas sobre LR s Aplicações
a n Lema do Bombeamento Operações Fechadas sobre LR s Aplicações (H&U, 969),(H&U, 979), (H;M;U, 2) e (Menezes, 22) Lema do Bombeamento para LR Como decidir que uma linguagem é ou não regular? Não bastaria
Leia maisa n Sistemas de Estados Finitos AF Determinísticos
a n Sistemas de Estados Finitos AF Determinísticos 1 Relembrando Uma representação finita de uma linguagem L qualquer pode ser: 1. Um conjunto finito de cadeias (se L for finita); 2. Uma expressão de um
Leia maisPropriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto
UNIVESIDADE ESTADUAL DE MAINGÁ DEPATAMENTO DE INFOMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 A classe de linguagens livres de contexto é fechada
Leia maisLinguagens Formais - Preliminares
Linguagens Formais - Preliminares Regivan H. N. Santiago DIMAp-UFRN 25 de fevereiro de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Formais - Preliminares 25 de fevereiro de 2007 1 / 26 Algumas
Leia maisUm alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.
Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem
Leia maisAnálise Sintática Bottom-up
MAB 471 2011.2 Análise Sintática Bottom-up http://www.dcc.ufrj.br/~fabiom/comp Recapitulando parsers top-down Constróem árvore sintática da raiz até as folhas Recursão à esquerda faz parsers entrarem em
Leia maisAula 8: Gramáticas Livres de Contexto
Teoria da Computação Primeiro Semestre, 2015 Aula 8: Gramáticas Livres de Contexto DAINF-UTFPR Prof. Ricardo Dutra da Silva Veremos agora maneira de gerar as strings de um tipo específico de linguagem,
Leia maisLinguagens Livres de Contexto
Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011
Leia maisGramáticas Livres de Contexto Parte 1
Universidade Estadual de Feira de Santana Engenharia de Computação Gramáticas Livres de Contexto Parte 1 EXA 817 Compiladores Prof. Matheus Giovanni Pires O papel do Analisador Sintático É responsável
Leia maisCompiladores. Prof. Bruno Moreno Aula 8 02/05/2011
Compiladores Prof. Bruno Moreno Aula 8 02/05/2011 RECONHECIMENTO DE TOKENS Reconhecimento de Tokens Até aqui aprendemos a identificar tokens Para reconhecimento, a única abordagem utilizada foi árvores
Leia maisCompiladores - Análise Ascendente
Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,
Leia maisLinguagens Livres de Contexto
Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha
Leia maisAutômatos de Pilha (AP)
Linguagens Formais e Autômatos Autômatos de Pilha (AP) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (h@p://dcc.ufmg.br/~nvieira) Sumário Introdução Autômatos de pilha
Leia maisCompiladores - Análise Ascendente
Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,
Leia maisLema do Bombeamento Operações Fechadas sobre LR s Aplicações
a n Lema do Bombeamento Operações Fechadas sobre LR s Aplicações (H&U, 969),(H&U, 979), (H;M;U, 2) e (Menezes, 22) Lema do Bombeamento para LR Como decidir que uma linguagem é ou não regular? Não bastaria
Leia maisa * Lema do Bombeamento Linguagens regulares e não-regulares
a * Lema do Bombeamento Linguagens regulares e não-regulares 1 Lema do Bombeamento para LR Como decidir que uma linguagem não é regular? Toda linguagem regular satisfaz o Lema do bombeamento (LB). Lemas
Leia maisEditor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins
Editor de Autômatos Finitos Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins 0 1 0 0 Roteiro da Apresentação Introdução Autômatos Finitos Desenvolvimento trabalho Considerações finais 2/31
Leia maisCurso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 4. Autômatos Finitos
Curso: Ciência da Computação Turma: 6ª Série Aula 4 Autômatos Finitos Autômatos Finitos Não Determinísticos Um autômato finito não-determinístico (AFND, ou NFA do inglês) tem o poder de estar em vários
Leia maisAula 7: Autômatos com Pilha
Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar
Leia maisLLC's: Lema do Bombeamento e Propriedades de Fechamento
Linguagens Formais e Autômatos LLC's: Lema do Bombeamento e Propriedades de Fechamento Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hfp://dcc.ufmg.br/~nvieira) Sumário
Leia maisLinguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.
LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior olivete@fct.unesp.br 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas
Leia maisMarcos Castilho. DInf/UFPR. 21 de março de 2019
21 de março de 2019 Análise sintática: introdução Dada uma gramática G e uma palavra w Σ, como saber se w L(G)? Isto é, como saber se S = G w? Derivações à esquerda e ambiguidade w L(G) se S = G w; Sabemos
Leia maisUniversidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação SCC-205 TEORIA DA COMPUTAÇÃO E LINGUAGENS FORMAIS Turma 1 2º. Semestre de 2012 Prof. João Luís
Leia maisGramáticas e Linguagens independentes de contexto
Capítulo 6 Gramáticas e Linguagens independentes de contexto 6.1 Gramáticas Nesta secção vamos introduzir gramáticas formais para caracterização das linguagens, estudando fundamentalmente as gramáticas
Leia maisLINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos
LINGUAGENS FORMAIS E AUTÔMATOS Prova 2-10/06/2011 - Prof. Marcus Ramos NOME: _ Colocar seu nome no espaço acima; A prova pode ser feita à lápis ou caneta; A duração é de três horas; As questões da parte
Leia maisUniversidade Federal do Rio de Janeiro Departamento de Ciência da Computação
Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação Não são aceitas respostas sem justificativa. Explique tudo o que você fizer. Linguagens Formais o semestre de 999 Primeira Prova
Leia maisAutômatos com Pilha: Reconhecedores de LLCs
Autômatos com Pilha: Reconhecedores de LLCs 1 Autômatos com Pilha (AP) Definições alternativas para Linguagens Livres de Contexto Extensão de AFND com uma pilha, que pode ser lida, aumentada e diminuída
Leia maisUniversidade Federal de Alfenas
Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 12 Linguagens Livres do Contexto humberto@bcc.unifal-mg.edu.br Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres
Leia maisAutômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz
Autômato com pilha IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Departmento de Computação e Matemática FFCLRP Universidade de São Paulo E.E.S Ruiz (DCM USP)
Leia maisIV Gramáticas Livres de Contexto
IV Gramáticas Livres de Contexto Introdução Definições de GLC 1 G = (Vn, Vt, P, S) onde P = {A α A Vn α (Vn Vt) + } 2 GLC ε - LIVRE : S ε pode pertencer a P, desde que: S seja o símbolo inicial de G S
Leia maisLinguagens Livres de Contexto
Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha
Leia maisINE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas
INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticas bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL:
Leia maisLR's: Lema do Bombeamento e Propriedades de Fechamento
Linguagens Formais e Autômatos LR's: Lema do Bombeamento e Propriedades de Fechamento Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hfp://dcc.ufmg.br/~nvieira) Introdução
Leia maisCompiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador
Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador
Leia maisCOMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise sintática Parte 02 Prof. geovanegriesang@unisc.br Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores
Leia maisINE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Leia maisModelos Universais de Computação
Modelos Universais de Computação 1 Equivalência entre Variantes de TM TM s definem naturalmente uma classe. Toda variante razoável de TM define a mesma classe de linguagens. (reforça a Tese Church-Turing)
Leia maisGramá3ca Livre de Contexto (GLC)
Linguagens Formais e Autômatos Gramá3ca Livre de Contexto (GLC) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hep://dcc.ufmg.br/~nvieira) Sumário Gramá4cas livres de
Leia maisRedutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)
Redutibilidade Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Redutibilidade DCC-UFMG (2018/02) 1 / 46 Redutibilidade:
Leia maisTransformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e
Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e inacessíveis; Forma Normal de Chomsky (FNC) e Forma Normal
Leia maisA. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)
DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 1ª chamada - Resolução 2h + 30min 31/Jan/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1
Leia maisMAC-4722 Linguagens, Autômatos e Computabilidade Lista L3
MAC-4722 Linguagens, Autômatos e Computabilidade Lista L3 Athos Coimbra Ribeiro NUSP: ****** 3 de Abril de 26 Problema.46 (itens a,c, e d) Solução a) L = { n m n m, n } Usamos o lema do bombeamento para
Leia maisGramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Leia maisGramática. Gramática. Gramática
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Leia maisLinguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
Leia maisFormas normais. Forma normal de Greibach (FNG) todas as produções são da forma
Formas normais Em muitas aplicações, é útil que as GIC tenham regras de tipos especiais. Para tal é necessário que se possa transformar qualquer gramática numa equivalente (isto é que gere a mesma linguagem)
Leia maisDisciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais
UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.
Leia maisAula 3: Autômatos Finitos
Teoria da Computação Primeiro Semestre, 25 Aula 3: Autômatos Finitos DAINF-UTFPR Prof. Ricardo Dutra da Silva Um procedimento ue determina se uma string de entrada pertence à uma linguagem é um reconhecedor
Leia maisAutômatos com Pilha. Douglas O. Cardoso docardoso.github.io
Autômatos com Pilha douglas.cardoso@cefet-rj.br docardoso.github.io Autômatos com Pilha 1/18 Roteiro 1 Autômatos com Pilha 2 APDs 3 APNs Autômatos com Pilha 2/18 Roteiro 1 Autômatos com Pilha 2 APDs 3
Leia maisCOMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 02 Prof. geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = epsilon λ =
Leia maisLinguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
Leia maisSCC Capítulo 1 Linguagens Regulares e Autômatos Finitos
SCC-505 - Capítulo 1 Linguagens Regulares e Autômatos Finitos João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo
Leia maisINE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares
INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares baseado em material produzido pelo prof Paulo B auth Menezes e pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja
Leia maisModelos de Computação Folha de trabalho n. 8
Modelos de Computação Folha de trabalho n. 8 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada
Leia maisTeoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos
Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 8 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 7/4/8 Valor: pontos. Uma versão do problema
Leia maisAula de 28/10/2013. sticas; Implementação. em Ruby
Linguagens Formais e Autômatos (LFA) Aula de 28/10/2013 Propriedades Formais Relevantes das LLC s; Lema do Bombeamento; Linguagens LL e LR; Gramáticas LC Determinísticas sticas; Implementação em Ruby 1
Leia maisO que é Linguagem Regular. Um teorema sobre linguagens regulares. Uma aplicação do Lema do Bombeamento. Exemplo de uso do lema do bombeamento
O que é Linguagem Regular Um teorema sobre linguagens regulares Linguagem regular Uma linguagem é dita ser uma linguagem regular se existe um autômato finito que a reconhece. Dada uma linguagem L: É possível
Leia mais15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação
Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Conjunto de regras que definem a forma da linguagem; Como as sentenças podem ser formadas como sequências
Leia maisAs linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.
As linguagens regulares são I.C Proposição 16.1. Qualquer linguagem regular é independente de contexto. Dem. Seja L Σ uma linguagem regular, e seja r uma expressão regular tal que L = L(r).Por indução
Leia maisLinguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática
Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra
Leia maisAutomata e Linguagens Formais
Automata e Linguagens Formais 6 Prof. Carlos H. C. Ribeiro carlos@ita.br Análise Sintática (Parsing) GLCs ambíguas Grafos de GLCs Estratégias para parsing Exemplos de parsers Análise Sintática (Parsing)
Leia maisLinguagens Regulares. Prof. Daniel Oliveira
Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões
Leia maisTEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO
LICENCIATURA EM CIÊNCIAS DA COMPUTAÇÃO TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO José Carlos Costa Dep. Matemática e Aplicações Universidade do Minho Braga, Portugal 31 de Maio de 2010
Leia maisLINGUAGENS FORMAIS E AUTÔMATOS
LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.
Leia maisIBM1088 Linguagens Formais e Teoria da
IBM1088 Linguagens Formais e Teoria da Computação Linguagens e Gramáticas Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 47 Frase do dia Sofremos muito com
Leia maisCOMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda
Leia maisUniversidade Federal de Alfenas
Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 04 Linguagens Formais humberto@bcc.unifal-mg.edu.br Última aula... Relação da teoria dos conjuntos com LFA; Relação dos grafos com LFA.
Leia maisLinguagens e Programação Gramáticas. Paulo Proença
Linguagens e Programação Gramáticas Gramáticas Ferramenta para a descrição e análise de linguagens; Baseada num conjunto de regras que especificam o modo de construção das frases válidas na linguagem;
Leia maisLINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam
Linguagens Naturais LINGUAGENS FORMAIS Definições Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam São muito ricas, mas também ambíguas e imprecisas. Ex.: João
Leia maisTeoria da Computação Aula 02 Introdução
Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:
Leia maisCompiladores Aula 4. Celso Olivete Júnior.
Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula de hoje... Revisão: gramáticas Relações em uma gramática: Cabeça, Último, Primeiro (First) e Seguinte (Follow) Capítulo 4 (seção 4.4.2) do livro
Leia maisCapítulo II Gramáticas
Capítulo II Gramáticas II.1 Motivação O que é uma Gramática? Um sistema gerador de linguagens; Um sistema de reescrita; Uma maneira finita de representar uma linguagem; Um dispositivo formal usado para
Leia mais