Linguagens Formais e Autômatos

Slides:



Advertisements
Apresentações semelhantes
TEORIA DA COMPUTAÇÃO Parte I  Introdução  Linguagens Regulares
Advertisements

FAPE - Curso de Ciência da Computação
Software Básico Silvio Fernandes
DESENHO INDUSTRIAL ASSISTIDO POR COMPUTADOR
Tópicos em Compiladores
INTRODUÇÃO À LÓGICA DIGITAL
Matrizes especiais Matriz linha Matriz do tipo 1 x n, ou seja, com uma única linha. Por exemplo, a matriz A =[ ], do tipo 1 x 4. Matriz coluna.
Linguagem Fabrício Dias
Teoria da Computação MÁQUINA DE TURING (Continuação) Fabrício Dias
II – Análise léxica DEI Papel do analisador léxico.
I - Noções dum compilador
I - Noções dum compilador
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Prof. Yandre Maldonado e Gomes da Costa
Prof. Yandre Maldonado e Gomes da Costa
LFA - Ambiguidade - Equivalência de gramáticas - Hierarquia de Chomsky
Prof. Yandre Maldonado e Gomes da Costa
TEORIA DA COMPUTAÇÃO Parte II  Linguagens Livres de Contexto
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
Teoria da Computação FIC– Ciência da Computação
TEORIA DOS AUTÓMATOS FINITOS E DAS SUAS LINGUAGENS
3 AUTÓMATOS FINITOS.
Software Básico Silvio Fernandes
Resolução.
Linguagens Livres de Contexto
1 Sabendo-se que os pratos das balanças estão em equilíbrio, você seria capaz de dizer: Quantos quadrados corresponde um círculo ? Dica Mais dicas Elaboração:
Polinômios Prof. Marlon.
EQUAÇÕES POLINOMIAIS Prof. Marlon.
Curso Sistemas de Informação Disciplina: Arquitetura de Software
01(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
Construção de Compiladores
Alfabetos, Palavras e Linguagens
Prof. Luiz A M Palazzo Pelotas, fevereiro de 2011
Organização da Memória Principal
André Luis Meneses Silva
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
PROGRESSÕES JUDITE GOMES
Conceitos Básicos.
Campus de Caraguatatuba
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Informática Teórica Engenharia da Computação
Compiladores, Aula Nº 5 João M. P. Cardoso
Gramáticas Livres de Contexto
Informática Teórica Engenharia da Computação
Algoritmos e Programação de Computadores
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Ling. Formais e Autômatos AFN-ε
Teoria da Computação Aula 1 Prof. Fabiano Sabha.
ÁLGEBRA – AULA 2 Equações.
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Conceitos básicos em grafos
Expressões Regulares e Gramáticas
Organização dos sistemas de computadores rr-09-r.01 UC: Organização de Computadores Docente: Prof. MSc. Marcelo Siedler.
Máquina de Turing Universal
Matemática I AULA 1 Profª Karine R. de Souza ..
Analise sintática aula-07-analise-sintática.pdf.
Campus de Caraguatatuba
BCC101 Matemática Discreta I
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
COMPILADORES 04 Prof. Marcos.
Linguagens Formais - aula 02
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.
Compiladores Análise Léxica
Faculdade Pernambuca - FAPE Compiladores Abril/2007 Compiladores Abril/2007.
COMPILADORES 03 Prof. Marcos.
Transcrição da apresentação:

Linguagens Formais e Autômatos Prof. Yandre Maldonado e Gomes da Costa LFA - Prof. Yandre - 1

Introdução Problema: definir um conjunto de cadeias de símbolos; Exemplo: conjunto M dos números binários que têm 2 dígitos M={00,01,10,11} LFA - Prof. Yandre - 2

Introdução Porém, se fosse o conjunto N de todas as combinações de dígitos binários, poderíamos tentar o seguinte: N={0,1,00,01,10,11,000,...} Percebe-se que este conjunto não é enumerável; LFA - Prof. Yandre - 3

Introdução Representação clara: Representação Formal  Computador; humanos x computador Representação Formal  Computador; Um objetivo de LFA é estudar uma maneira precisa e formal de descrever sequências de símbolos pertencentes à um determinado conjunto; LFA - Prof. Yandre - 4

Introdução Em especial conjuntos que não podem ser trivialmente enumerados; Os estudos iniciais foram em torno de Linguagens Naturais (LN); Insucesso: LN é extensa, complexa, não tem sintaxe rígida e semântica bem determinada (rica em ambiguidade); LFA - Prof. Yandre - 5

Introdução Assim, ela não permite o tratamento computacional; Resultados significativos na descrição de linguagens computacionais; Linguagens Computacionais são muito mais simples; LFA - Prof. Yandre - 6

Introdução As maneiras sistemáticas de descrever uma linguagem de programação são: um método que permite construir programas sintaticamente corretos - geração (Gramática); um método que permite verificar se um programa escrito está sintaticamente correto - reconhecimento (Autômatos); LFA - Prof. Yandre - 7

Introdução Pesquisas já demonstraram o uso destas técnicas em: análise de linguagens de programação léxica; sintática; modelos de sistemas biológicos; desenho de hardware; relacionamentos com linguagens naturais (sem muito sucesso); LFA - Prof. Yandre - 8

Conceitos Básicos Alfabeto: Conjunto de finito de símbolos; Normalmente descrito por ; Exemplos: {a, b} {1, 2, 3} {00, 11} LFA - Prof. Yandre - 9

Conceitos Básicos Símbolo ou letra: é todo elemento pertencente à um alfabeto; a é um símbolo de  sse a; Exemplo: dado o alfabeto ={0, 1, 23} 0 é um símbolo de ; 1 é um símbolo de ; 23 é um símbolo de ; LFA - Prof. Yandre - 10

Conceitos Básicos Essas duas primeiras definições são bastante livres. Embora os símbolos também possam ser chamados de letras, eles não precisam ter necessariamente um único caracter. E além disso, os símbolos de um alfabeto não precisam todos ter o mesmo número de caracteres. A única restrição é que o tamanho do símbolo seja finito. LFA - Prof. Yandre - 11

Conceitos Básicos Cadeia ou palavra: É uma concatenação de símbolos de um mesmo alfabeto; É uma seqüência finita de símbolos do alfabeto justapostos; Assim, dado um alfabeto  e uma sequência de símbolos x=a1a2a3...an , x é uma cadeia sobre  sse ai para i=1,2,...,n LFA - Prof. Yandre - 12

Conceitos Básicos Comparando as definições: Linguagem Natural: Uma palvra em português equivale à um símbolo; Uma sentença da língua portuguesa é uma cadeia composta por vários símbolos; Linguagem Computacional: Cada programa escrito numa linguagem computacional corresponde a uma cadeia de símbolos que podem ser: identificadores; palavras reservadas; símbolos especiais e operadores; constantes numéricas. LFA - Prof. Yandre - 13

Conceitos Básicos Comprimento de Cadeia ou Tamanho de Palavra: É o número de símbolos que compõem uma dada cadeia (ou palavra). O comprimento de uma cadeia x é denotado por |x| Então, a cadeia x=a1a2a3...an, tem seu comprimento |x| = n Cadeia nula ou palavra vazia: é um caso especial, ela é denotada por  e tem tamanho igual a zero. LFA - Prof. Yandre - 14

Conceitos Básicos Exercício: dado o alfabeto ={a, b, c, de}, verifique se as cadeias a seguir são formadas sobre este alfabeto, e se for, verifique qual o comprimento das mesmas: x = ababac y = abdec z = abedc w = abdceaba s = d t = a LFA - Prof. Yandre - 15

Conceitos Básicos Exponenciação de Alfabetos: k é o conjunto de todas as cadeias com tamanho k, formadas sobre o alfabeto . Exemplo: considere  = {0, 1} 0 = {} 1 = {0, 1} =  2 = {00, 01, 10, 11} ... Exercício: encontre 3 para o exemplo anterior. LFA - Prof. Yandre - 16

Conceitos Básicos Fechamento de um Alfabeto: Seja  um alfabeto, então o fechamento de , descrito por * é definido como * = 0 1  2 ... n ... * é o conjunto de todas as cadeias possíveis de se formar sobre o alfabeto . Fechamento positivo + = * - {} Questão: quando * é infinito? LFA - Prof. Yandre - 17

Conceitos Básicos Concatenação de cadeias: dado o alfabeto  e as cadeias x, y  *, a concatenação de x e y, indicada por xy, produz uma cadeia formada pelos símbolos de x seguidos pelos símbolos de y. Se x = a1a2...an  * e y = b1b2...bm  *, então xy = a1a2...anb1b2...bm LFA - Prof. Yandre - 18

Conceitos Básicos Exemplos:  = {a, b} x = abaa, y = ba, z= xy = abaaba yx = baabaa yz = ba = zy = y A cadeia nula () é o elemento neutro da concatenação. LFA - Prof. Yandre - 19

Conceitos Básicos Dado um alfabeto  e x, y  *, diz-se que: x é um prefixo de y sse w  * tal que y= xw; x é um sufixo de y sse w  * tal que y= wx; x é um subpalavra de y sse w,u  * tal que y= wxu; LFA - Prof. Yandre - 20

Conceitos Básicos Linguagem: dado o alfabeto , o conjunto de palavras L é uma linguagem sobre , sse L  *. Linguagem * LFA - Prof. Yandre - 21