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

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

Linguagens Formais e Compiladores

Apresentações semelhantes


Apresentação em tema: "Linguagens Formais e Compiladores"— Transcrição da apresentação:

1 Linguagens Formais e Compiladores
Carlos Alberto Pimentel *Parte dos slides gentilmente cedidos pela prof Laís (Unifacs)

2 Ementa Gramáticas e automatos Gramáticas livres de contexto
Gramáticas sensíveis ao contexto Introdução à arquitetura de compiladores Análise Léxica, sintática e semântica Geração de código intermediário e otimização

3 Habilidades Conceituar gramáticas e automatos
Habilidade para diferenciar os diversos tipos de gramáticas e automatos Compreender as diversas fases de um compilador Habilidade para implementar um tradutor Compreender como as diversas técnicas de programação influenciam no desempenho dos programas gerados.

4 Pré-requisitos Conhecimentos básicos em teoria dos conjuntos e lógica matemática

5 Conteúdo programático

6 Bibliografia HOPCROFT, J., MOTOWANI, R. ULLMAN, J. Introduction to Automata Theory, Languages and Computational. Addison- Wesley, 2001. AHO, A., SETHI, R. ULLMAN, J. Compilers. Addison Wesley, 2006. LEWIS, H., PAPADIMITRIOU, C., Elements of the theory of computational. Prentice Hall, 2004. MENEZES, P., Linguagens formais e automatos. Sagra Luzzato, PRICE, A. TOSCANI, S. Implementação de linguagens de programação. Sagra Luzzato, 2005. RAVI SETHI JEFFREY D. ULLMAN ET AL. Compiladores: Princípios, Técnicos e Ferramentas.

7 Linguagens formais e automatos
Originalmente desenvolvida em 1950 como estudo relacionado as linguagens naturais, posteriormente linguagens “artificiais”. Emprego na análise léxica e sintática das linguagens de programação.

8 Sintaxe e semântica Linguagens formais preocupa-se com a análise sintática. A teoria da sintaxe possui modelos matemáticos bem definidos. Ex.: gramáticas de Chomsky Linguagem: Uma entidade livre X entidade com significado

9 Sintaxe e semântica Sintaxe – Trata das propriedades livres da linguagem. Ex.: Verificação gramatical Semântica – Objetiva dar uma interpretação ou significado para o programa

10 Alfabetos, palavras, linguagens, gramáticas
Para o dicionário Aurélio um linguagem é “O uso da palavra articulada ou escrita como meio de expressão e comunicação entre pessoas” Precisamos de um formalismo matemático.

11 Alfabeto Um conjunto finito de símbolos. {a, b, c, d, e, ..., z}
{0, 1} {0, 1, 2, ..., 9, A, B, C, D, E, F}

12 Palavra, cadeia de caracteres ou sentença
Uma seqüência finita de símbolos justapostos. Palavra vazia ε Se denota um alfabeto * denota o conjunto de todas as palavras sobre o alfabeto + denota o conjunto de todas as palavras exceto palavra vazia. Exemplos???

13 Tamanho ou comprimento de uma palavra
Sendo w uma palavra, o comprimento da palavra é dado por |w|. O comprimento é dado em número de símbolos |ε| = 0 |casa|=4 |pé|=2 |compilador|=?

14 Prefixo, sufixo, subpalavra
Prefixo – subconjunto inicial de símbolos de uma palavra Sufixo – subconjunto final de símbolos de uma palavra Subpalavra – qualquer subconjunto de símbolos de uma palavra. Abcb é uma palavra do alfabeto {a, b, c} Exemplos de prefixo e sufixo????

15 Linguagem formal Um conjunto de palavras sobre um alfabeto.
Exemplo de linguagem: O conjunto de palíndromos sobre um determinado alfabeto {}<>{ε}

16 Concatenação Justaposição de símbolos que representam as palavras componentes Propriedades: Associativa – v(wt) = (vw)t Elemento neutro a esquerda e direita εw=w=wε Exemplos????

17 Concatenação sucessiva
Uma palavra e concatenada sucessivamente com ela mesma. wn – Sendo w uma palavra e n a quantidade de contatenações. Assim: w0=ε wn= wn-1w, para n > 0 Ex.: A5=AAAAA Concatenação da palavra vazia??????

18 Gramática Uma gramática é uma quádrupla ordenada G=(V, T, P, S)
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. S – Elemento de V, denominado variável inicial

19 Regra de produção Definem as condições de geração das palavras da linguagem.   1| 2 | 3| | n Para descobrir se uma cadeia x  T* é gerada pela gramática basta fazer um processo de derivação começando do símbolo inicial S até obter a cadeia desejada.

20 Gramáticas Um exemplo inicial:
<frase>  <sujeito> <verbo> <predicado> <sujeito>  O homem <sujeito>  A mulher <verbo>  leu <verbo>  escreveu <predicado>  um <adjetivo> livro <adjetivo>  ótimo <adjetivo>  péssimo <adjetivo>  e

21 Exemplo de gramática A gramática gera a seguinte linguagem
{ww | w é palavra de {a, b}*}

22 Gramática {ww | w é palavra de {a, b}*}
G={V, T, P, S} V={S, X, Y, A, B, F} T={a, b} P={S→XY, X→XaA | XbB | F, Aa→aA, Ab→bA, AY→Ya, Ba→aB, Bb→bB, BY→Yb, Fa→aF, Fb→bF,FY→ e} S={S}

23 Exemplo de derivação da gramática {ww | w é palavra de {a, b}*}
S=>XY=>XaAY=>XaYa=>XbBaYa=>XbaBYa=>FbaYba=>bFaYba=>baFYba =>baba

24 {ww | w é palavra de {a, b}*}
A gramática apresentada gera o primeiro w após X e o segundo w após Y, como segue: A cada símbolo terminal gerado após X, é gerada uma variável correspondente; Esta variável “caminha” na palavra até passar por Y, quando devira o correspondente terminal; Para encerrar, X devira a variável F a qual “caminha” até encontrar Y quando FY deriva a palavra vazia.

25 Exercício (Media de eficiência)
Dada a gramática anterior da ling. {ww | w é palavra de {a, b}*} Gerar duas palavras de comprimento |WW| = 4 e uma palavra de comprimento |WW| = 6. Mostrar que a palavra bbaa não pode ser derivada da gramática. Individual ou em dupla

26 Gramáticas equivalentes
Duas gramáticas G1 e G2 são ditas Gramáticas equivalentes se, e somente se, GERA(G1) = GERA(G2)

27 Exercício (Media de eficiência)
Desenvolver uma gramática que gere expressões aritméticas com parênteses balanceados, dois operadores (representados por * e +) e um operando (representado por x), Por exemplo, x, x*(x+x) e ((((x)))) são expressões aritméticas válidas. No máximo 3 pessoas por equipe

28 Linguagens Regulares ou do tipo 3
De acordo com a Hierarquia de Chomsky, trata-se da classe de linguagens mais simples, sendo possível desenvolver algoritmos de reconhecimento ou de geração de pouca complexidade, grande eficiência e de fácil implementação.

29 Propriedades das linguagens regulares
LR podem ser representadas por formalismos pouca complexidade grande eficiência fácil implementação Entretanto, por ser uma classe relativamente simples é restrita e limitada

30 Linguagem Regular ou tipo 3
Uma das principais características das linguagens regulares é o fato de serem representadas for formalismos de pouca complexidade, grande eficiência e fácil implementação. Entretanto, por serem de uma classe relativamente simples, é restrita e limitada.

31 De acordo com a Hierarquia de Chomsky
LR (tipo 3) LEF (tipo 0) LSC (tipo 1) LLC (tipo 2)

32 Tradução dos formalismos das linguagens regulares

33 Sistema de estados finitos
É um modelo matemático de um sistema com entradas e saídas discretas. Pode assumir um número pré-definido de estados. Cada estado resume somente informações do estado passado para determinar as ações da próxima entrada.

34 Exemplo de sistema de estados finitos
Um exemplo clássico e simples é o elevador. Trata-se de um sistema que não memoriza as requisições anteriores. Cada “estado” sumariza as informações “andar corrente” e “direção de movimento”. As entradas para o sistema são requisições pendentes. Ou exemplo, analisadores léxicos e alguns processadores de texto, memorizam apenas a estrutura do prefixo das palavras

35 Teoria dos Autômatos Autômatos Finitos
Autômatos finitos (AF): modelo restrito para o computador são dispositivos de reconhecimento de linguagens tem capacidade finita fixa de informação sem memória auxiliar sem saída de dados Pode-se dizer que é uma máquina abstrata que reconhece linguagens. Supondo-se uma linguagem L e fornecendo ao AF uma seqüência de caracteres w, ele responderá se w  L ou w  L.

36 Teoria dos Autômatos Autômatos Finitos
Um autômato finito possui: Fita de entrada – armazena os símbolos da cadeia de entrada; Controle finito - extrai símbolos da fita de entrada através de um sensor de leitura; Função de transição – decide qual deverá ser o próximo estado do autômato, com base no símbolo lido e no estado anterior; Número finito de estados.

37 A Fita É finita a esquerda e a direita, dividida em células onde cada uma armazena um símbolo. Não é possível gravar sobre a fita e não existe memória auxiliar Inicialmente a cadeia a ser processada ocupa toda fita

38 Unidade de controle Possui um número finito de estados pré-definido. A unidade lê um símbolo da fita de cada vez e move a cabeça para a direita Inicialmente a cabeça é posicionada mais a esquerda da fita. Importante – O autômato Finito não possui memória de trabalho.

39 Autômatos finitos equivalentes
Dois autômatos finitos M1 e M2 são ditos equivalente se, e somente se: ACEITAM(M1) = ACEITAM(M2)

40 Linguagem regular ou do tipo 3
Uma linguagem aceita por um autômato finito determinístico é uma linguagem regular

41 Teoria dos Autômatos Autômatos Finitos
Graficamente um AF pode ser representado por a b Controle Finito fita com a cadeia w de entrada Cabeça de leitura Início do processo de reconhecimento pelo estado inicial qo

42 Teoria dos Autômatos Autômatos Finitos
O Autômato Finito consegue ler, através da cabeça de leitura, os símbolos da fita seqüencialmente sempre da esquerda para a direita. O AF é uma máquina que sempre pára retornando uma resposta sim (cadeia reconhecida) ou não (cadeia não conhecida). Podem ser classificados em: Autômatos Finitos Determinísticos (AFD) Autômatos Finitos Não-Determinísticos (AFND)

43 Teoria dos Autômatos Autômatos Finitos Determinísticos
Definição formal de um Autômato Finito Determinístico: Um Autômato Finito Determinístico (AFD) ou simplesmente Autômato Finito (AF) M é uma 5-upla: M = (, Q, , q0, F), onde : alfabeto de símbolos de entrada; Q: conjunto finito de estados do autômato; : função programa ou função de transição (parcial) : Q    Q q0: estado inicial (q0Q) F: conjunto de estados finais ou estados de aceitação (FQ)

44 Teoria dos Autômatos Autômatos Finitos Determinísticos
Representação Gráfica:

45 Teoria dos Autômatos Autômatos Finitos Determinísticos
Exemplo: Autômato que reconhece a linguagem de números binários com quantidade ímpar de 1s. M = (∑, Q, , qo, F) Q = { qo, q1 }, ∑ = { 0, 1 }, F = { q1 } Forma Tabular : Forma Gráfica : qo q1 1 1 qo q1

46 Teoria dos Autômatos Autômatos Finitos Determinísticos
Um Autômato Finito nunca entra em “loop” infinito, pois como qualquer cadeia a ser processada pelo AF é finita e como um novo símbolo da entrada é lido a cada aplicação da função programa, o processo de reconhecimento de qualquer cadeia  pára de duas maneiras: Aceitando ou; rejeitando uma entrada .

47 Teoria dos Autômatos Autômatos Finitos Determinísticos
As condições de parada são as seguintes: Após processar o último símbolo da fita, o Autômato Finito assume um estado final: o autômato pára e a entrada  é aceita; Após processar o último símbolo da fita, o AF assume um estado não final: o autômato pára e a entrada  é rejeitada; A função programa é indefinida para o argumento (estado corrente, símbolo lido): a máquina pára e a palavra de entrada  é rejeitada.

48 Teoria dos Autômatos Autômatos Finitos Determinísticos
Definição: Autômatos Finitos equivalentes. Dois autômatos finitos M1 e M2 são ditos equivalentes se, e somente se: L(M1) = L(M2); Definição: Um linguagem aceita por um autômato finito determinístico é uma linguagem regular ou Tipo 3.

49 Teoria dos Autômatos Autômatos Finitos Determinísticos
Exemplo: Autômato que reconhece a linguagem de números binários com quantidade ímpar de 1s. M = (∑, Q, , qo, F) Q = { qo, q1 }, ∑ = { 0, 1 }, F = { q1 } Forma Tabular : Forma Gráfica : 1 qo q1 qo q1 1

50 Teoria dos Autômatos Autômatos Finitos Determinísticos
Definição: Processo de reconhecimento de uma dada cadeia w por um AF. O autômato é inicializado com a cabeça no símbolo mais a esquerda e no estado inicial qo. Se um AF M=(∑, Q, , qo, F) está no estado p e a cabeça de leitura da fita olha o símbolo a  ∑, então o AF vai para o estado (p, a) = q e move a cabeça um símbolo à direita. Se w  ∑* então M aceita w se M computa w e depois de ler o último símbolo de w entra em um estado final  F.

51 Teoria dos Autômatos Autômatos Finitos Determinísticos
Seja a cadeia w = Deseja-se verificar se w é reconhecida pelo AFD do exemplo anterior. Como ao final da leitura da cadeia w o estado que o AFD assumiu foi q1  F então a cadeia w é reconhecida pelo autômato, ou seja, w é aceita como uma cadeia da linguagem reconhecida pelo AFD. 1 Controle Finito (q0, 0) = q0 Cabeça de leitura Início do AFD em q0 1 Controle Finito (q0, 1) = q1 Cabeça de leitura q0 1 Controle Finito (q1, 1) = q0 Cabeça de leitura q1 1 Controle Finito (q1, 0) = q1 Cabeça de leitura q1 1 Controle Finito (q0, 1) = q1 Cabeça de leitura q0 1 Controle Finito Cabeça de leitura q1  F

52 Teoria dos Autômatos Autômatos Finitos Determinísticos
Exemplo 1: Construir um AFD que reconhece a linguagem a*. M = (∑, Q, , qo, F) Q = { qo }, ∑ = { a }, F = { q0 } Forma Tabular : Forma Gráfica : a qo qo a

53 Teoria dos Autômatos Autômatos Finitos Determinísticos
Exemplo 2: Construir um AFD que reconhece a linguagem aa* . M = (∑, Q, , qo, F) Q = { qo, q1 }, ∑ = { a }, F = { q1 } Forma Tabular : Forma Gráfica : a qo q1 qo q1 a

54 Teoria dos Autômatos Autômatos Finitos Determinísticos
Exemplo 3: Construir um AFD que reconhece a linguagem (abb*a)* . M = (∑, Q, , qo, F) Q = { qo, q1, q2 }, ∑ = { a, b }, F = { q0 } Forma Tabular : Forma Gráfica : Obs.: qrej é o estado que representa a rejeição de um símbolo de uma dada cadeia w, ou seja, w  Linguagem reconhecida pelo AFD. qo q1 a b q2 a b qo q1 qrej q2 q0

55 Exercícios Construa um autômato finito determinístico e uma expressão regular para cada umas da linguagens a seguir: A) A linguagem dos identificadores do pascal Ex. válidos: a, _, media, M23af, c311 Ex. inválidos: 2, 45media, 3csa B) Os números inteiros Ex. válidos: 1, -1, +1, +45, 77, -44, , Ex. inválidos: +, -, 55+5, , --65, ++5 C) Os números reais Ex. válidos: 1, -1, +1, , 77.5, , , Ex. inválidos: +, -, 55+5, , --65, ++5, .56, +.45, .564, -+532

56 Teoria dos Autômatos Expressões Regulares
A expressão regular é a maneira mais compacta e mais simples de descrever conjuntos regulares, e é usada com essa finalidade em construção de compiladores, editores, sistemas operacionais, protocolos, etc. É um formalismo denotacional, também considerado gerador.

57 Expressão Regular ER Toda linguagem regular pode ser descrita por uma expressão regular simples, denominada Expressão regular. Trata-se de um formalismo denotacional, também considerado gerador, pois pode-se inferir como construir (“gerar”) as palavras de uma linguagem.

58 Como saber se uma linguagem é regular
Basta representá-la com pelo menos um dos seguintes formalismos {autômato finito | Expressão Regular | Gramática Regular} Para mostrar que uma linguagem não é regular é preciso mostrar que ele não poder ser representada por nenhum dos formalismos. Pode-se usar o Lema do bombeamento.

59 Expressão Regular ER A omissão de parênteses em uma ER sobre um alfabeto é indutivamente definida como se segue: Uma linguagem gerada por uma ER r é representada por L(r) ou GERA(r).

60 Expressões Regulares Definição: Uma Expressão Regular (ER) sobre um alfabeto  é definida como segue:  é uma ER (linguagem vazia)  é uma ER (linguagem contendo somente a cadeia vazia ) para cada a  , a é uma ER se  e  são ER´s, então | é uma ER. ( OU  – alternância) se  e  são ER´s, então  é uma ER. (concatenação) se  é uma ER, então ()* é uma ER (exponenciação)

61 Teoria dos Autômatos Expressões Regulares
*:  |  |  |  |..... +:  |  |  |..... + = * ordem de precedência(decrescente): exponenciação concatenação alternância

62 Teoria dos Autômatos Expressões Regulares
Expressão regular Linguagem representada aa Somente a palavra aa ba* Todas as palavras que começam com b, seguido por zero ou mais a´s (a|b)* Todas as palavras sobre {a, b} (a|b)* aa (a|b) * Todas as palavras que contém aa como subpalavra a* ba* ba* Todas as palavras contendo exatamente 2 b´s (a|b)* (aa| bb ) Todas as palavras que terminam com aa ou bb (a| ) (b | ba)* Todas as palavras que não possuem 2 a´s consecutivos

63 Exercício Desenvolva Autômatos Finitos Determinísticos, que reconheçam as seguintes linguagens: A) sobre o alfabeto {a, b, c} {w | aa ou bb é subpalavra e cccc é sufixo de w} 63

64 Exercícios b) Sobre o alfabeto {a, b}
b1) {W1W2W1 | W2 é qualquer e |W1| = 3} b2) {W | o décimo símbolo da direita para a esquerda de w é a}

65 Autômato finito não determinístico
O não determinismo é uma importante generalização dos modelos de máquinas, sendo e fundamental importância no estudo da teoria da computação e na teoria das linguagens formais.

66 Autômato finito não determinístico – AFN ou AFND
Nem sempre a facilidade do não-determinísmo aumenta o poder de reconhecimento de linguagens de uma classe de autômatos

67 Importante Qualquer autômato finito não-determinístico pode ser simulado por um autômato finito determinístico. Assim, para cada AFN é possível construir um AFD equivalente que realiza o mesmo processamento.

68 A facilidade do não determinismo
A função programa, ao processar uma entrada composta pelo estado corrente e símbolo lido, tem como resultado um conjunto de novos estados. O não-determinísmo. Ilustração: Filme “O Vidente”

69 Aceitação do AFN Um linguagem é aceita pelo autômato finito não determinístico é denotada por ACEITAM(M) ou L(M), é o conjunto de todas as palavras pertencentes a * tais que existe pelo menos um caminho alternativo que aceita a palavra.

70 Autômato finito com movimentos vazios AFNε
Movimentos vazios constituem uma generalização dos modelos de máquinas não-determinísticas. Um movimento vazio é uma transição sem transição. Uma das vantagens dos momentos vazios é que facilita algumas demonstrações relacionadas com os autômatos. A facilidade dos momentos vazios não aumentam o poder de reconhecimento

71 Equivalência entre ER e AFD

72 Gramática linear Seja G=(V, T, P, S) uma gramática e sejam A e B elementos de V e w uma palavra de T*. Então G é uma: Gramática Linear à direita (GLD). Se todas as regras de produção são da forma: A→wB ou A→w Gramática Linear à esquerda (GLE). Se todas as regras de produção são da forma: A→Bw ou A→w

73 Gramática linear Gramática Linear Unitária à direita (GLUD). Se todas as regras de produção são da forma: A→wB ou A→w, adicionalmente |w|<=1 Gramática Linear à esquerda (GLUE). Se todas as regras de produção são da forma: A→Bw ou A→w, adicionalmente |w|<=1

74 Equivalência das gramáticas lineares
As diversas gramáticas lineares são formalismos equivalentes: Seja L uma linguagem então: L é gerada por uma GLD se, e somente se, L é gerada por uma GLE se, e somente se, L é gerada por uma GLUD se, e somente se, L é gerada por uma GLUE.

75 Ex. de gramáticas lineares equivalentes para a linguagem a(ba)*

76 GLD para a linguagem a(ba)*
G={{S,A}, {a,b}, P, S} P={S→aA, A→baA|e}

77 GLE para a linguagem a(ba)*
G={{S}, {a,b}, P, S} P={S→Sba|a}

78 GLUD para a linguagem a(ba)*
G={{S,A, B}, {a,b}, P, S} P={S→aA, A→bB|e, B→aA}

79 GLUE para a linguagem a(ba)*
G={{S,A}, {a,b}, P, S} P={S→Aa|a, A→Sb}

80 Teorema 1 - Se L é uma Linguagem gerada por uma gramática regular, então L é uma linguagem regular 2 - Se L é uma linguagem regular, então existe uma gramática regular G que gera L.

81 Linguagens Livres de Contexto
Segundo a classificação realizada por Chomsky nem todas as linguagens livres de contexto são regulares. Isto ocorre porque elas possuem cadeias com construções contendo “aninhamento sintático”.

82 Linguagens Livres de Contexto
Possuem aninhamento Sintático. Exemplo: L = { w | w  conjunto de cadeias com número balanceado de parênteses escritos em ordem correta } x = (( )( ))( ), y = ((( ))), z = ( )(( )( ))(( ))

83 Linguagens Livres de Contexto
Compreende um universo mais amplo de linguagens (comparativamente com as regulares) tratando, adequadamente, parênteses balanceados, construções bloco-estruturadas, dentre outras Os conceitos da LLC são aplicados aos analisadores sintáticos, tradutores de linguagens e processadores de texto em geral

84 Gramática Livre de contexto
Gramática onde as regras de produção são definidas de forma mais livre que na Gramática Regular. São entidades geradoras de Linguagens Livres de Contexto

85 Autômato com pilha Autômato cuja estrutura básica é análoga à do Autômato Finito, adicionando uma memória auxiliar tipo pilha (a qual pode ser lida ou gravada) O autômato com pilha pode ser Determinístico ou não-Determinístico

86 De acordo com a Hierarquia de Chomsky
LR (tipo 3) LEF (tipo 0) LSC (tipo 1) LLC (tipo 2)

87 Exemplos de linguagens livres de contexto
a) L = { wwr, onde w é uma seqüência de símbolos do Vt, e wr é o inverso de w }, Ex.: Vt={ a, b}, x = abba, y = abbaaaabba, z = bbabbabb b) L = { wcwr, onde w é uma seqüência de símbolos de Vt, e c  Vt }, Ex.: Vt={ a, b, c}, x = abcba, y = abbaacaabba, z = bbabcbabb c) L = { anbn, n >= 0 }, Ex.: x = aabb, y = aaaaabbbbb, z =  d) L = { w  { a, b }*, com o mesmo no de a´s e b´s }, Ex.: x = abaabb, y = aabb, z = bbaaab

88 Problema aabbbacabbbaa
Pensando nas cadeias geradas pelas Linguagens Livres de contexto não regulares parece que qualquer dispositivo que as reconheça, necessita “lembrar” de características da cadeia analisada. No exemplo do item b, supondo Vt = { a, b, c } e a cadeia de entrada aabbbacabbbaa deve existir um esquema para “lembrar” a primeira metade da cadeia de entrada (antes de c) para poder verificar a outra metade na ordem inversa.

89 Constatação: O Autômato Finito não possui este recurso !!!
Análise: Se a máquina fosse capaz de acumular os símbolos da cadeia de entrada, utilizando uma MEMÓRIA auxiliar, à medida que a cadeia é lida e pudesse retirar estes símbolos da MEMÓRIA quando necessário o processo de reconhecimento seria resolvido. Solução: O dispositivo que soluciona parte deste problema é uma PILHA, funcionando como MEMÓRIA, que permite o acesso de leitura (pop) e gravação (push).

90 Graficamente um Autômato de Pilha pode ser representado por:
fita com a cadeia w de entrada a a b b b a c a b b b a a b Cabeça de leitura e gravação b a Cabeça de leitura Controle Finito qi a Pilha Início do processo de reconhecimento pelo estado inicial qo

91 Autômato com pilha O Autômato de Pilha (AP) consegue ler, através da cabeça de leitura, os símbolos da fita seqüencialmente sempre da esquerda para a direita, armazenar (push) e retirar (pop) símbolos da Pilha.

92 Pilha do Autômato

93 O Autômato de Pilha (AP) é uma 7-upla:
O Autômato de Pilha (AP) é uma sétupla: M = (E, Q, P, F, q0, z0, V) Onde: E é o alfabeto dos símbolos de entrada que podem formar a cadeia w є V* da fita Q é um conjunto finito (não vazio) de estados. P função programa ou função transição q0 é o estado no qual o autômato é iniciado, q0 є Q. F é o conjunto de estados finais (reconhecedores). z0 é o símbolo inicial da pilha. V é o alfabeto de símbolos finito da pilha.

94 {anbn | n>= 0}

95 {WWr | w pertence a {a, b}*}

96 {anbman+m | n >= 0, m>= 0}


Carregar ppt "Linguagens Formais e Compiladores"

Apresentações semelhantes


Anúncios Google