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

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

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

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

Linguagens Formais e Autômatos

Prof. Yandre Maldonado e Gomes da Costa

LFA - Prof. Yandre - 1

Page 2: 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

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

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

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

Introdução

Representação clara:• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Conceitos Básicos

Linguagem: dado o alfabeto , o conjunto de palavras L é uma linguagem sobre , sse L *.

LFA - Prof. Yandre - 21

Linguagem

*