Análise Léxica. Construção de Compiladores. Capítulo 2. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto

Documentos relacionados
LRE LSC LLC. Autômatos Finitos são reconhecedores para linguagens regulares. Se não existe um AF a linguagem não é regular.

Compiladores ANÁLISE LEXICAL.

DCC-UFRJ Linguagens Formais Primeira Prova 2008/1

Modelos de Computação -Folha de trabalho n. 2

Teoria da Computação. Unidade 3 Máquinas Universais (cont.) Referência Teoria da Computação (Divério, 2000)

Linguagens Regulares e Autômatos de Estados Finitos. Linguagens Formais. Linguagens Formais (cont.) Um Modelo Fraco de Computação

Exemplos de autómatos finitos

Projeto de Compiladores Professor Carlos de Salles

Apostila 02 - Linguagens Regulares Exercícios

3.3 Autómatos finitos não determinísticos com transições por ε (AFND-ε)

Hierarquia de Chomsky

Faculdade de Computação

Pontifícia Universidade Católica de Campinas Centro de Ciências Exatas, Ambientais e de Tecnologias Faculdade de Engenharia de Computação

I. LINGUAGENS REGULARES E AUTÔMATOS FINITOS

Autômato Finito. Autômato Finito Determinístico. Autômato Finito Determinístico

Dep. Matemática e Aplicações 27 de Abril de 2011 Universidade do Minho 1 o Teste de Teoria das Linguagens. Proposta de resolução

Autômatos determinísticos grandes

Autômato Finito. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Gramáticas Regulares. Capítulo Gramáticas regulares

Análise Sintática I: Analisadores Descendentes com Retrocesso

Modelos de Computação Folha de trabalho n. 3

Faculdade de Computação

Linguagens Formais e Autômatos (LFA)

3. Seja Σ um alfabeto. Explique que palavras pertencem a cada uma das seguintes linguagens:

Alocação sequencial - Pilhas

FACIN-PPGCC. Teoria da Computabilidade Parte II - Autômatos de Pilha e Máquinas de Turing. Sumário. Ney Laert Vilar Calazans. 12.

CAPÍTULO 2 AUTÓMATOS FINITOS

Última atualização 03/09/2009

Lic. Ciências da Computação 2009/10 Exercícios de Teoria das Linguagens Universidade do Minho Folha 6. δ

Draft-v Autómatos mínimos. 6.1 Autómatos Mínimos

Aula 4: Autômatos Finitos Autômatos Finitos Não-Determinísticos

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

O Autômato Adaptativo como Modelo de Computação e sua Aplicação em Reconhecimento de Padrões*

8. Sistemas de acontecimentos discretos

Propriedades das Linguagens Regulares

Analisadores Sintáticos. Análise Recursiva com Retrocesso. Análise Recursiva Preditiva. Análise Recursiva Preditiva 05/04/2010

Aula 5: Autômatos Finitos Remoção de Não-Determinismo

Teoria de Linguagens 2 o semestre de 2014 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 23/10.

Linguagens Formais Capítulo 5: Linguagens e gramáticas livres de contexto

AA4J: uma biblioteca para implementação de autômatos adaptativos

LINGUAGEM DE PROGRAMAÇÃO ESTRUTURADA CAPÍTULO 6 ARRAYS (VETORES E MATRIZES)

Linguagens Formais e Autômatos (LFA)

Marcone Jamilson Freitas Souza. Departamento de Computação. Programa de Pós-Graduação em Ciência da Computação

ntexto finição presentação áfica ilização TempMed(input,output); Var Var Begin Begin readln(t1); readln(t1); readln(t2); readln(t2);

Programação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio

CONSTRUÇÃO DE ALGORITMOS E PROGRAMAS

DIAGNÓSTICO ONLINE DE FALHAS EM SISTEMAS A EVENTOS DISCRETOS MODELADOS POR AUTÔMATOS FINITOS: UMA ABORDAGEM UTILIZANDO REDES DE PETRI

Propriedades das Linguagens Regulares

Introdução. Implementação de Linguagens de Programação MO403 / MC900 mo403. Objetivos

UMA REDE DE PETRI DIAGNOSTICADORA PARA SISTEMAS A EVENTOS DISCRETOS MODELADOS POR AUTÔMATOS FINITOS. Felipe Gomes de Oliveira Cabral

Algoritmos em Grafos: Circuitos de Euler e Problema do Carteiro Chinês

<S> ::= <L><C> <L> ::= l <C> ::= l<c> n<c> n l λ. L(G 1 ) = {a n b 2m n>0 m 0} L(G 2 ) = {lw w {l, n} * } L(G 3 ) = {a n b 2m n>0 m 0}

Draft-v Autómatos finitos. 4.1 Autómatos finitos determinísticos

ESTATÍSTICA APLICADA. 1 Introdução à Estatística. 1.1 Definição

Aula 10 Estabilidade

INTRODUÇÃO AOS MÉTODOS NUMÉRICOS

Problemas e Algoritmos

EXERCÍCIOS RESOLVIDOS DE TEORIA DOS GRAFOS

Aula 8: Gramáticas Livres de Contexto

Capítulo III INTEGRAIS DE LINHA

GRUPO I. Espaço de rascunho: G 2 10

TÓPICOS. Equação linear. Sistema de equações lineares. Equação matricial. Soluções do sistema. Método de Gauss-Jordan. Sistemas homogéneos.

6 Conversão Digital/Analógica

Teorema Fundamental do Cálculo - Parte 2

Matrizes. Matemática para Economistas LES 201. Aulas 5 e 6 Matrizes Chiang Capítulos 4 e 5. Márcia A.F. Dias de Moraes. Matrizes Conceitos Básicos

3. ANÁLISE DA REDE GEODÉSICA

ÁLGEBRA LINEAR Equações Lineares na Álgebra Linear EQUAÇÃO LINEAR SISTEMA LINEAR GEOMETRIA DA ESQUAÇÕES LINEARES RESOLUÇÃO DOS SISTEMAS

Física Geral e Experimental I (2011/01)

Unidimensional pois possui apenas uma única dimensão

(B) (A) e o valor desta integral é 9. gabarito: Propriedades da integral Represente geometricamente as integrais para acompanhar o cálculo.

Análise Sintáctica Descendente

MATRIZES, DETERMINANTES E SISTEMAS LINEARES PROF. JORGE WILSON

Matemática para Economistas LES 201. Aulas 5 e 6 Matrizes Chiang Capítulos 4 e 5. Luiz Fernando Satolo

1 INTRODUÇÃO À ÁLGEBRA EM CAMPOS DE GALOIS GF(2 m )

Diogo Pinheiro Fernandes Pedrosa

Aproximação de funções de Bessel

Área entre curvas e a Integral definida

MT DEPARTAMENTO NACIONAL DE ESTRADAS DE RODAGEM

TEORIA GEOMÉTRICA DE GRUPOS. Pedro V. Silva

Autómatos Finitos Determinísticos. 4.1 Validação de palavras utilizando Autómatos

Modelos Teóricos para Análise de Transformadores Baseados em Modelos Simplificados de Impedância e de Elementos Concentrados

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano.

Algoritmos de Busca de Palavras em Texto

Aula 09 Equações de Estado (parte II)

FUNÇÕES. Mottola. 1) Se f(x) = 6 2x. é igual a (a) 1 (b) 2 (c) 3 (d) 4 (e) 5. 2) (UNIFOR) O gráfico abaixo. 0 x

CURSO PROFISSIONAL Técnico de Gestão e Programação de Sistemas Informáticos

Módulo 02. Sistemas Lineares. [Poole 58 a 85]

Definição Definimos o dominio da função vetorial dada em (1.1) como: dom(f i ) i=1

EN2607 Transformadas em Sinais e Sistemas Lineares Lista de Exercícios Suplementares 2 3 quadrimestre 2012

Sub-rede Zero e toda a sub-rede

Autômatos Finitos. Autômatos finitos não deterministas

Árvores Trie e Patricia

Material envolvendo estudo de matrizes e determinantes

Comprimento de arco. Universidade de Brasília Departamento de Matemática

3 Teoria dos Conjuntos Fuzzy

MÉTODO DA POSIÇÃO FALSA EXEMPLO

( ) superchaves da relação lembramos. ( ) e associativa (a equijunção ocorre apenas em alguns casos ( ) ( ) (sendo L R a lista de colunas de R):

Diagrama de Blocos. Estruturas de Sistemas Discretos. Grafo de Fluxo. Sistemas IIR Forma Directa I

Busca Digital (Trie e Árvore Patrícia) Estrutura de Dados II Jairo Francisco de Souza

Transcrição:

Construção de Compildores Cpítulo 2 Análise Léxic José Romildo Mlquis Deprtmento de Computção Universidde Federl de Ouro Preto 2014.1 1/23

1 Análise Léxic 2/23

Tópicos 1 Análise Léxic 3/23

Análise léxic Análise léxic é o processo onde sequênci de crcteres que constitui o progrm fonte é lid d esquerd pr direit e grupd em tokens. Token é um sequênci de crcteres com um significdo coletivo. Usulmente há pens um pequeno número de tokens pr um lingugem de progrmção: constntes (inteiros, ponto-flutunte, crcteres, strings, etc.) operdores (ritméticos, relcionis, lógicos) sinis de pontução plvrs reservds 4/23

Anlisdor léxico O nlisdor léxico recebe um progrm fonte como entrd e produz um sequênci de tokens como síd. progrm fonte (sequênci de crcteres) nlisdor léxico sequênci de tokens 5/23

Exemplo de nálise léxic while (cont > 0) cont = cont - 2; nálise léxic T_While T_LPren T_Identifier "cont" T_Gt T_Integer 0 T_RPren T_Identifier "cont" T_Eq T_Identifier "cont" T_Minus T_Integer 2 T_Semicolon 6/23

Lexems O nlisdor léxico pode reconhecer instâncis prticulres de tokens, tis como 3 ou 255 pr um token constnte inteir "Fred" ou "Wilm" pr um token constnte string numticketes ou queue pr um token nome de vriável Instâncis específics de um token são chmds de lexems. Um lexem é sequênci de crcteres que form o token. Um token é um clsse gerl à qul o lexem pertence. Alguns tokens tem extmente um lexem (exemplo: o crcter >) Outros tokens tem vários lexems (como s constntes inteirs). 7/23

Trefs do nlisdor léxico O nlisdor léxico: Deve grupr os crcteres d entrd em tokens válidos. Tem um visão muito loclizd do progrm fonte, sem qulquer contexto. Logo não pode verificr por exemplo se: sequênci dos tokens está corret um token ocorre em um posição incorret um identifidor foi declrdo um plvr-chve foi escrit errdmente Pode reltr por exemplo: crcter inválidp, prtir do qul não é possível formr nenhum token ocorrêncis inválids de crcteres em constntes strings strings não terminds comentários não termindos 8/23

Trefs do nlisdor léxico (cont.) Pode descrtr os crcteres brncos e comentários que precem entre os tokens. Pode relizr substituição de mcros, compilção condicionl ou inclusão de rquivos, embor ests trefs possm ser mis proprids um preprocessdor que filtr entrd ntes de pssá-l o compildor. 9/23

Implementção de expressões regulres Expressões regulres podem ser implementds usndo utômtos finitos. Há dois tipos de utômto finito: NFAs (utômto finito não-determinístico), e DFAs (utômto finito determinístico). 10/23

Autômtos finitos não determinísticos Um utômto finito não determinístico (NFA) é um quíntupl onde (S,Σ, δ,s 0,F) S é um conjunto finito de estdos Σ é um lfbeto, um conjunto finito de símbolos de entrd δ é um função de trnsição que dá pr cd estdo s S e pr cd símbolo em Σ {ɛ}, um conjunto de etdos seguintes δ(s,) P(S) s 0 S é o estdo inicil F S é o conjunto de estdos finis, que são distinguidos como estdos de ceitção O símbolo ɛ representndo cdei vzi não é um elemento do lfbeto. 11/23

Exemplo de utômto finito Autômto que reconhece L(( b) bb): onde A = (Σ,S, δ,s 0,F) Σ = {,b} S = {0,1,2,3} δ = {(0,) {0,1}, (0, b) {b}, (0,ɛ) {}, (1,) {}, (1, b) {2}, (1,ɛ) {}, (2,) {}, (2, b) {3}, (2,ɛ) {} } s 0 = 0 F = {3} lfbeto conjunto de estdos função de trnsição estdo inicil conjunto de estdos finis 12/23

Grfo de trnsição Um utômto finito pode ser representdo por um grfo de trnsição onde os nós representm os estdos s rests rotulds representm função de trnsição o estdo inicil é indicdo por um rest sem origem os estdos finis são indicdos por nós com bords dupls 13/23

Tbel de trnsição Um utômto finito pode ser representdo por um tbel de trnsição onde s linhs correspondem os estdos s coluns correspondem os símbolos de entrd e ɛ entrd d tbel pr um determindo estdo e um símbolo d entrd (ou ɛ) represent o vlor d função de trnsição plicd esses rgumentos Vntgem: s trnsições são fcilmente encontrds. Desvntgem: ocup muito espço qundo o lfbeto de entrd é grnde, mesmo que muitos estdos não tenhm trnsições com miori dos símbolos d entrd (e ɛ). 14/23

Exemplo de utômto finito Autômto que reconhece L(( b) bb): A = (Σ,S, δ,s 0,F) Σ = {,b} S = {0,1,2,3} δ = {(0,) {0,1}, (0, b) {b}, (0,ɛ) {}, (1,) {}, (1, b) {2}, (1,ɛ) {}, (2,) {}, (2, b) {3}, (2,ɛ) {} } s 0 = 0 F = {3} Tbel de trnsições: estdo b ɛ 0 {0,1} {0} {} 1 {} {2} {} 2 {} {3} {} 3 {} {} {} Grfo de trnsições: b b 0 1 2 3 b 15/23

Exemplo de utômto finito Autômto que reconhece L( ( b)): 2 ɛ b 1 3 16/23

Exemplo de utômto finito Autômto que reconhece L((0 1) 1): 0 1 1 A B 0 17/23

Exemplo de utômto finito Autômto que reconhece L( bb ): ɛ s 1 s 2 s 0 ɛ b b s 3 s 4 18/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 19/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 1 19/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 ɛ 1 2 19/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 ɛ 1 2 1 19/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 ɛ ɛ 1 2 1 2 19/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 ɛ ɛ 1 2 1 2 1 19/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 ɛ ɛ ɛ 1 2 1 2 1 2 19/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 ɛ ɛ ɛ 1 2 1 2 1 2 1 19/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 ɛ ɛ ɛ b 1 2 1 2 1 2 1 3 19/23

Aceitção de cdeis pelo utômto finito Um utômto finito ceit um cdei de entrd x se e somente se houver lgum cminho no grfo de trnsição do estdo inicil pr um dos estdos finis, de modo que os símbolos o longo do cminho componhm x. Exemplo: o utômto seguir ceit cdei b: ɛ 2 1 b 3 ɛ ɛ ɛ b 1 2 1 2 1 2 1 3 19/23

Lingugem ceit por um utômto finito A lingugem L (A) definid (ou ceit) pelo utômto finito A é o conjunto de tods s cdeis rotulndo lgum cminho prtir do estdo inicil té um estdo finl de A. 20/23

Simulção de um NFA Mntenh um conjunto de estdos tuis, inicilmente ddo pelo estdo inicil e todos os estdos lcnçdos por trnsições vzis. Pr cd crcter d entrd: Mtenh um conjunto dos próximos estdos, inicilmente vzio. Pr cd estdo tul: Sig tods s trnsições rotulds com o símbolo tul. Adicione estes estdos o conjunto de novos estdos. Adicione todo estdo lcnçdo por trnsições vzis o conjunto dos próximos estdos. Complexidde: O(mn 2 ) pr cdeis de comprimento m e utômtos com n estdos. 21/23

Exemplo,b,c,...,z s 0 s 1 s 2 b o m O utômto recebe um cdei como entrd e decide ceitá-l ou rejeitá-l 22/23

Exemplo,b,c,...,z s 0 s 1 s 2 b o m 22/23

Exemplo,b,c,...,z s 0 s 1 s 2 b o m 22/23

Exemplo,b,c,...,z s 0 s 1 s 2 b o m 22/23

Exemplo,b,c,...,z s 0 s 1 s 2 b o m 22/23

Exemplo,b,c,...,z s 0 s 1 s 2 b o m 22/23

Exemplo,b,c,...,z s 0 s 1 s 2 b o m 22/23

Exemplo,b,c,...,z s 0 s 1 s 2 b o m ceit 22/23

Fim 23/23