Você está na página 1de 26

Linguagens Formais

UNICAP

Eduardo Arajo Oliveira


http://sites.google.com/site/eaoufpe

slide 1

Estrutura

1. Reviso

2. Formalismos e Classes de Linguagens

3. Autmatos Finitos Determinsticos

1
Linguagens Formais

Como expressar formalmente uma linguagem


computacional?

Enfoque terico no problema da sintaxe


Sintaxe vs. Semntica

Auxlio na evoluo dos algoritmos de compilao

Autmatos Finitos Determinsticos Cadeias e Linguagens

Um alfabeto um conjunto finito (no-vazio)


de smbolos

Uma cadeia (string) em um alfabeto uma


seqncia finita de smbolos deste alfabeto
Ex.: Alfabetos Ex.: Cadeias
1 = {0,1} 01001
2 = {a, b, c, , z} abracadabra

slide 4

2
Autmatos Finitos Determinsticos Cadeias e Linguagens

Se w = w1w2wn uma cadeia sobre , o


comprimento de w, denotado por |w|, n

Ex.: |abracadabra| = 11

A cadeia de comprimento 0, denominada


cadeia nula e representada por

slide 5

Autmatos Finitos Determinsticos Cadeias e Linguagens

Se u = u1u2un e v = v1v2vm so cadeias no


alfabeto , ento a concatenao de u com
v, denotada por uv, definida por:
uv = u1u2unv1v2vm

Ex.: u = abra e v = cadabra uv = abracadabra

Propriedades da concatenao

u = u = u
u(vw) = (uv)w
|uv| = |u| + |v|
slide 6

3
Autmatos Finitos Determinsticos Concatenao

A concatenao da mesma cadeia vrias vezes


definida por:
w0 = , e
wn+1 = wn w, para n 0

Se w = w1w2wn uma cadeia no alfabeto ,


ento a reversa (inversa) de w, denotada por
wR, definida por wR = wnw2w1

Observaes

R =
(vw)R = wRvR
slide 7

Autmatos Finitos Determinsticos Linguagens

Seja um alfabeto. Ento:


0 = { }
1 = { w : |w| = 1 }
2 = { w : |w| = 2 }
n = { w : |w| = n }

* = 0 1 n n+1
ou seja,

* = { w : w uma cadeia em }
slide 8

4
Smbolo, alfabeto, cadeia e linguagem

seqncia de

item de elemento de
Smbolo Cadeia Linguagem
elemento de
Alfabeto

conjunto de conjunto de

slide 9

Linguagens Formais

Veremos como descrever uma linguagem , seja


ela finita ou infinita

Formalismos matemticos

Existem trs tipos de formalismos...

5
Tipos de Formalismos

Reconhecedores
Recebe uma palavra e retorna um valor para dizer se ela
ou no da linguagem

Geradores
Define um conjunto de regras que podem ser
combinadas para gerar palavras

Denotacional (Gerador?)
Uma expresso que denota de modo geral as palavras
da linguagem

Linguagens Formais

Veremos diversos formalismos de cada um dos


trs tipos

Alguns formalismos so mais poderosos do que


outros
Especificam mais linguagens

Linguagens classificadas segundo os formalismos


que as reconhecem

6
Classificao das Linguagens

Hierarquia de Chomsky
Quatro categorias hierrquicas

Categorias superiores incluem todas as demais

Cada categoria reconhecida por certos formalismos


caractersticos

Classificao das Linguagens

Hierarquia de Chomsky

7
Linguagens Regulares

Chamadas de Linguagens Tipo 3

Classe mais simples e restrita

Autmato Finito Determinstico

Formalismo reconhecedor
Recebe uma palavra de entrada
Indica se ela aceita ou rejeitada

Baseado no conceito de mquinas de estados


finitas

8
Mquina de Estados Finitos

Conjunto finito de estados


Um estado representa a situao atual

Mudanas de estados
Depende do estado atual
Depende de uma certa entrada

No guarda histrico de estados

Mquina de Estados Finitos

Reconhecedor de palavras ou cadeia de caracteres

Bons modelos para computadores com capacidade de


memria reduzida

Fazem parte de vrios dispositivos eletro-mecnicos


do dia-a-dia

slide 18

9
Mquina de Estados Finitos

Exemplo 1

Viso area de uma porta automtica

slide 19

Mquina de Estados Finitos

Exemplo 1

O controlador da porta pode estar em 2 estados:


- aberto (significando porta aberta)
- fechado (significando porta fechada)
O controlador passa de um estado para outro dependendo do
estmulo (entrada) que recebe:

slide 20

10
Mquina de Estados Finitos

Exemplo 1
Entradas: Existem 4 condies de entrada possveis

Frente: significando que uma pessoa est em p sobre o tapete da


frente;
Retaguarda: significando que uma pessoa est em p sobre o tapete
de dentro;
Ambos: significando que existem pessoas sobre os 2 tapetes;
Nenhum: significando que ningum est sobre os tapetes.

slide 21

Mquina de Estados Finitos

Exemplo 1

Entradas: Existem 4 condies de entrada possveis

slide 22

11
Mquina de Estados Finitos

Exemplo 1

Tabela de Transio

slide 23

Mquina de Estados Finitos

Exemplo 2

Interruptor

Estados: Ligado ou Desligado

slide 24

12
Mquina de Estados Finitos

Exemplo 3

Palavra AMOR

Qualquer outra palavra deve ser descartada

slide 25

Mquina de Estados Finitos

Exemplo 3
Tentativa de leitura da Palavra AMBIENTE

slide 26

13
Mquina de Estados Finitos

Controladores para:

Lavadoras de loua/roupa

Termmetros eletrnicos

Relgios digitais

Calculadoras

Mquinas de venda automtica

slide 27

Autmatos Finitos

O AF uma mquina, reconhecedora de palavras ou cadeia


de caracteres, que sempre pra retornando uma resposta
sim (cadeia reconhecida) ou no (cadeia no conhecida)
Podem ser classificados em:
Autmatos Finitos Determinsticos (AFD)
Autmatos Finitos No-Determinsticos (AFND)

slide 28

14
Autmatos Finitos Determinsticos Definio Formal

Definio formal de um Autmato Finito Determinstico:

Um Autmato Finito Determinstico (AFD) M uma 5-upla:

M = (Q, , , q0, F), onde

Q: conjunto finito de estados do autmato;


: alfabeto de smbolos de entrada;
: funo programa ou funo de transio (parcial)
: Q Q. Significa dizer que permanecendo em um
estado e lendo um smbolo do alfabeto faz o autmato passar
para outro estado ou mesmo ficar no mesmo
q0: estado inicial (q0Q)
F: conjunto de estados finais ou estados de aceitao
(FQ)

slide 29

AFD Definio Informal

Autmatos Finitos Determinsticos podem ser


pensados em termos dos componentes abstratos:
Fita
Unidade de controle
Tabela de Transies
Estados inicial e final

15
AFD

Fita

Contm a palavra a ser reconhecida

A cada leitura, caminha um smbolo para a esquerda

Quando no h mais smbolos a mquina para

Autmatos Finitos Determinsticos Representao Grfica

Representao Grfica

slide 32

16
AFD

A mquina inicia sua execuo em um estado


inicial, com a fita no primeiro smbolo da palavra
Estado inicial nico

Ao final, a mquina deve terminar em um estado


final para a palavra ser reconhecida
O nmero de estados finais livre

AFD Representao Grfica

Um Autmato Finito Determinstico pode ser


representado por meio de um diagrama similar
ao de mquinas de estados finitos

Serve como uma representao mais intuitiva


das transies

17
Autmatos Finitos Determinsticos

Um autmato finito M1: (diagrama de estados)

M1 tem 3 estados, q1, q2, q3 ;


M1 inicia no estado q1 ;
M1 tem um estado final, q2 ;
Os arcos que vo de um estado p/ outro
chamam-se transies.

slide 35

Autmatos Finitos Determinsticos

- O autmato finito M1 recebe os smbolos de


entrada um por um;

- Depois de ler cada smbolo, M1 move-se de


um estado para outro, de acordo com a
transio que possui aquele smbolo como
seu rtulo;

- Quando M1 l o ultimo smbolo ele produz


uma sada:
reconhece se M1 est no estado final
no-reconhece se M1 no estiver.

slide 36

18
Autmatos Finitos Determinsticos

Exemplo: entrada 1101

1. Inicia no estado q1.


2. L 1, segue transio de q1 p/ q2.
3. L 1, segue transio de q2 p/ q2.
4. L 0, segue transio de q2 p/ q3.
5. L 1, segue transio de q3 p/ q2.
6. Pra c/ sada reconhece.

slide 37

Autmatos Finitos Determinsticos

Vamos aprender!
Testar: 1, 01, 11, 0101 (em M1)
Percebemos que :
- M1 reconhece qualquer cadeia que
termine com 1 (vai p/ o estado final
q2 toda vez que l 1);

- M1 no reconhece cadeias como 0,


10, 101000.

slide 38

19
Autmatos Finitos Determinsticos

Exemplo: Autmato que reconhece a linguagem de nmeros


binrios com quantidade mpar de 1s.
M = (, Q, , qo, F)
Q = { qo, q1 }, = { 0, 1 }, F = { q1 }

Funo de Transio

0 1

qpar qpar qmpar

qmpar qmpar qpar

(qpar,0) = qpar
...
slide 39

Autmatos Finitos Determinsticos

Um Autmato Finito nunca entra em loop infinito

Novos smbolos da entrada so lidos a cada aplicao da


funo programa, o processo de reconhecimento de
qualquer cadeia pra de duas maneiras:

Aceitando ou;
rejeitando uma entrada.

slide 40

20
Autmatos Finitos Determinsticos

Definir um AF engloba definir


Um conjunto finito de estados;

Um alfabeto de entrada que indica os smbolos de


entrada permitidos;

Um conjunto de regras de movimento que indicam


como ir de um estado p/ outro, dependendo do
smbolo de entrada;

Um estado escolhido como estado inicial;

Um conjunto de estados escolhidos como estados


finais (de reconhecimento);

slide 41

Autmatos Finitos Determinsticos Praticando...

Prove que a seguinte linguagem regular exibindo


um autmato que a reconhea:

Qualquer cadeia que termine com um a.

slide 42

21
Autmatos Finitos Determinsticos Praticando...

wn, onde n 0 o nmero de vezes que a palavra


repetida.
w3 = ?

(01) = ?

slide 43

Autmatos Finitos Determinsticos Praticando...

Prove que a seguinte linguagem regular exibindo


um autmato que a reconhea:

Conjunto de todas as palavras que contm 101 como


subcadeia.

slide 44

22
Autmatos Finitos Determinsticos Praticando...

Prove que a seguinte linguagem regular exibindo


um autmato que a reconhea:

{w | w possui ccc como subpalavra}

slide 45

Autmatos Finitos Determinsticos Praticando...

Prove que a seguinte linguagem regular exibindo


um autmato que a reconhea:

{w | w comea e termina por a e possui bb como subpalavra}

slide 46

23
Autmatos Finitos Determinsticos Praticando...

Diga a seqncia de estados pelos quais passa o AFD A dado abaixo


quando recebe como entrada a palavra 01010. Diga se a palavra
aceita ou rejeitada e justifique.

A = ({q0, q1, q2, q3}, {0,1}, A, q0, {q3}), onde A dado abaixo:

0 1
q0 q1 q2
q1 q3 q2
q2 q1 q3
q3 q3 q3

slide 47

Autmatos Finitos Determinsticos Praticando...

Construir um AFD que reconhece a linguagem a*.


M = (, Q, , qo, F)
Q = { qo }, = { a }, F = { q0 }

Funo de Transio
a
a qo
qo qo

slide 48

24
Autmatos Finitos Determinsticos Praticando...
Construir um AFD que reconhece a linguagem aa*
M = (, Q, , qo, F)
Q = { qo, q1 }, = { a }, F = { q1 }

Funo de Transio

a a a

qo q1
qo q1
q1 q1

slide 49

Autmatos Finitos Determinsticos Praticando...


Construir um AFD que reconhece a linguagem (abb*a)*

M = (, Q, , qo, F)

Q = { qo, q1, q2 }, = { a, b }, F = { q0 }

Funo de Transio
a
a b
qo q1 qrej qo b q1

q1 qrej q2 b
a
q2 q0 q2 q2

slide 50

25
Linguagens Formais

UNICAP

Eduardo Arajo Oliveira


http://sites.google.com/site/eaoufpe

slide 51

26