Linguagens Formais e Autômatos - ppt carregar
PublicouGiovana Paiva Alterado mais de 7 anos atrás
Apresentação em tema: "Linguagens Formais e Autômatos"— Transcrição da apresentação:
1 Linguagens Formais e Autômatos
Prof. Yandre Maldonado e Gomes da Costa LFA - Prof. Yandre - 1
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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
10 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
11 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
12 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
13 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
14 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
15 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
16 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
17 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
18 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
19 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
20 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
21 Conceitos Básicos Linguagem: dado o alfabeto , o conjunto de palavras L é uma linguagem sobre , sse L  *. Linguagem * LFA - Prof. Yandre - 21