Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.