FAPE - Curso de Ciência da Computação

Slides:



Advertisements
Apresentações semelhantes
Linguagens Livre-de-contexto
Advertisements

TEORIA DA COMPUTAÇÃO Parte I  Introdução  Linguagens Regulares
FAPE - Curso de Ciência da Computação
Matemática Computacional
Tópicos em Compiladores
Variantes de Máquina de Turing
Compiladores Claudio Benossi
Linguagem Fabrício Dias
I - Noções dum compilador
I - Noções dum compilador
Compiladores I Cristiano Damiani Vasconcellos
Prof. Yandre Maldonado e Gomes da Costa
LFA - Ambiguidade - Equivalência de gramáticas - Hierarquia de Chomsky
Linguagens Formais e Autômatos
Prof. Yandre Maldonado e Gomes da Costa
Teoria da Computação FIC– Ciência da Computação
Análise Léxica (Parte 2)
TEORIA DOS AUTÓMATOS FINITOS E DAS SUAS LINGUAGENS
3 AUTÓMATOS FINITOS.
Ling. Formais e Autômatos Autômatos finitos
Equivalência de Autômatos
Teoria da Computação Sandra de Amo
Complexidade de Linguagens Influência do Modelo de Computação
Pós-graduação em Ciência da Computação – UFU
Análise Sintática - Continuação
Linguagens Livres de Contexto
Linguagens e Máquinas WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE
autômatos finitos com transições e
Autômatos Finitos Determinísticos
Construção de Compiladores
Alfabetos, Palavras e Linguagens
Prof. Luiz A M Palazzo Pelotas, fevereiro de 2011
Exercícios Linguagens Formais.
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Compiladores, Aula Nº 5 João M. P. Cardoso
Compiladores, Aula Nº 9 João M. P. Cardoso
Gramáticas Livres de Contexto
Informática Teórica Engenharia da Computação
Ling. Formais e Autômatos AFN-ε
Teoria da Computação Aula 1 Prof. Fabiano Sabha.
Expressões Regulares e Gramáticas
Autómatos de Pilha. UM NOVO MODELO PARA OS AUTÓMATOS FINITOS As linguagens regulares são aceites por autómatos finitos. E as linguagens não regulares?
Inteligência Artificial
Capítulo II Gramáticas e Linguagens
Analise sintática aula-07-analise-sintática.pdf.
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Teoria da.
Linguagens Formais e Compiladores
Linguagens Formais e Autômatos
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
Linguagens Livres de Contexto
Prof. André Luis Roland Tancredo Engenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPq Especialista em Microeletrônica.
Linguagens Formais - aula 02
Computabilidade e Linguagens Formais
Computabilidade e Linguagens Formais
Engenharia/Ciência da Computação
tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06.
Aula 6 1 Análise Lexical Compiladores, Aula Nº 6 João M. P. Cardoso.
Compiladores Análise Léxica
Compilador Software que traduz o texto (linguagem fonte) que representa um programa para código máquina(linguagem alvo) capaz de ser executado pelo.
COMPILADORES 03 Prof. Marcos.
Transcrição da apresentação:

FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1

Conteúdo Parte II: Linguagens regulares Autômatos Finitos Expressões Regulares Gramáticas Regulares FAPE-2006.1 ATC-04

Introdução Uma expressão regular (ER) sobre um alfabeto  é indutivamente definida:  é uma ER que denota a linguagem vazia.  é uma ER que denota a linguagem contendo exclusivamente a palavra vazia, ou seja {} . FAPE-2006.1 ATC-04

Expressão Regular qualquer símbolo x pertencente ao alfabeto  é uma ER e denota a linguagem contendo a palavra unitária x, ou seja {x}. FAPE-2006.1 ATC-04

Operações com expressões Três operações básicas: Operação de união, Operação de concatenação, Operação de concatenação sucessiva ou operação estrela. FAPE-2006.1 ATC-04

ER - Operações Se r e s são ER´s e denotam respectivamente as linguagens R e S, então: (r+s) é ER e denota a linguagem R  S (rs) é ER e denota a linguagem {uv | u  R e v  S} (r*) é ER e denota a linguagem R* FAPE-2006.1 ATC-04

Expressão Regular Uma linguagem gerada por uma ER r é representada por L(r) ou GERA(r). É possível omitir parênteses, seguindo prioridades nas operações: a concatenação sucessiva tem prioridade em relação à concatenação e a união, e a concatenação tem prioridade em relação à união. FAPE-2006.1 ATC-04

Expressão Regular - exemplos ER Linguagem aa Palavra aa ba* Inicia por b, seguido de zero ou mais a (a+b)* Todas palavras do alfabeto {a,b} a*ba*ba* Todas palavras que têm exatamente dois b´s. FAPE-2006.1 ATC-04

Expressão Regular - exemplos ER Linguagem (a+b)* aa(a+b)* Todas palavras que têm aa como subpalavra. (aa+bb) As palavras que terminam com aa ou bb. (a+) (b+ba)* As palavras que não possuem dois a´s consecutivos. FAPE-2006.1 ATC-04

Expressões e Linguagens A classe das expressões regulares corresponde exatamente a classe das linguagens regulares. Expressão Regular Linguagem Regular Se r é uma ER, então GERA(r) é uma linguagem regular FAPE-2006.1 ATC-04

Expressões e Linguagens Linguagem Regular  Expressão Regular Se L é uma linguagem regular, então existe uma expressão regular r tal que GERA(r) = L FAPE-2006.1 ATC-04

Conversão: expressões autômatos r = a r =  r =  FAPE-2006.1 ATC-04

expressões autômatos  r = a + b  b a  r = ab b FAPE-2006.1 ATC-04

ER´s e Autômatos  a r = a* FAPE-2006.1 ATC-04

Gramática Seja G={N,T,P,S} uma gramática, onde: N – conjunto de símbolos não-terminais; T – conjunto de símbolos terminais; P – conjunto de regras de produção; S – símbolo inicial da gramática. FAPE-2006.1 ATC-04

Gramática Terminologia: símbolos não-terminais N = {A,B,C,...T} símbolos terminais T = {a,b,c,...t} S  N FAPE-2006.1 ATC-04

Regras de produção Aplicando as regras de produção definidas na gramáticas são geradas palavras referentes a linguagem que a gramática representa. Gramática r. de produção palavra FAPE-2006.1 ATC-04

Regras de produção Exemplo: G = ( {S,A,B}, {a,b}, P, S ) P = { S  AB, A  a | AB, B  b } Passos para gerar a palavra: abb S  AB  ABB  aBB abB  abb. FAPE-2006.1 ATC-04

Tipos de Gramática linear Uma gramática G pode ser: GLD: se todas as regras de produção são da forma AwB ou A w. GLE: se todas as regras de produção são da forma ABw ou A w. FAPE-2006.1 ATC-04

Gramática Regular Uma gramática regular é qualquer gramática linear. Uma linguagem gerada por uma gramática regular G é representada por L(G) ou GERA(G). FAPE-2006.1 ATC-04

Exemplos - gramáticas Linguagem a(ba)* GLD: G = ( {S,A}, {a,b}, { S  aA, A  baA |  }, S ) GLE: G = ( {S}, {a,b}, { S  Sba | a }, S ) FAPE-2006.1 ATC-04

Exemplos - gramáticas Linguagem (a+b)*(aa+bb) G = ( {S,A}, {a,b}, P, S ) P = { S  aS | bS | A, A  aa | bb } FAPE-2006.1 ATC-04

Árvores de derivação Igualmente é possível representar as produções das gramáticas através de árvores derivação. palavra: abb S a S A b b FAPE-2006.1 ATC-04

Gramática Autômato Tipo de produção transição A   A  a A  B (A,)=qf A  a (A,a)=qf A  B (A,)=B A  aB (A,a)=B FAPE-2006.1 ATC-04

Exemplo: GR  AF Considerando a gramática, G = ( {S,A,B}, {a,b}, { S  aA AbB |  B  aA }, S ) O AF que reconhece a gramática é M = ({a,b}, {S,A,B,qf}, , S, {qf}) FAPE-2006.1 ATC-04

Exemplo: GR  AF Tipo de produção transição S  aA A  bB A   B  aA (A,)=qf B  aA (B,a)=A FAPE-2006.1 ATC-04

Exemplo: GR  AF  FAPE-2006.1 ATC-04

Exemplo: AF  GR Estados terminais: qo, q1 e q2. FAPE-2006.1 ATC-04

Exemplo: AF  GR Transição Tipo de produção S  A A   B   C   Correspondências: q0 = A, q1 = B, q2 = C FAPE-2006.1 ATC-04

Exemplo: AF  GR Transição Tipo de produção (q0,a)=q0 A  aA (q0,b)=q1 A  bB (q1,b)=q1 B  bB (q1,c)=q2 B  cC (q2,c)=q2 C  cC FAPE-2006.1 ATC-04

Tarefa: lista de exercícios 4