Você está na página 1de 31

Linguagens Formais e

Autômatos
Aula 02 - Linguagens Regulares
Professor Joelson Silva
1
Hierarquia de Chmosky
• Classificação de gramáticas formais
• Descrita pelo americano Noam Chmosky
• Possui 4 níveis
• O nível 0: Maior liberdade
• O nível 3: menor grau de liberdade
• Uma gramática do nível n também é uma gramática do n-1

2
Hierarquia de Chmosky
Tipo 0 : Gramáticas com estruturas de frase
Tipo 1 : Gram. Sensíveis ao contexto
Tipo 2 : Gram. Livres de contexto
Tipo 3 : Gram. Regulares

3
Linguagens Regulares

L é uma linguagem regular, se e somente se, existe


pelo menos um autômato finito determinístico que
aceita L

4
Formalismo
Autômato finito
- Formalismo operacional ou reconhecedor
- Basicamente um sistema de estados finitos

Expressão regular
- Formalismo denotacional (funcional) ou gerador
- Definidas a partir de três elementos:
Conjuntos básicos, Concatenação, União

Gramática regular
- Formalismo axiomático ou gerador
- Gramática com restrições da forma das regras de
produção
5
Características

• Classe de linguagem mais simples (hierarquia


Chomsky)

• Utilizado principalmente na Análise Léxica

• Algoritmos de reconhecimento (autômato),


geração e conversão possuem:
➔ pouca complexidade
➔ fácil implementação
➔ grande eficiência

6
Características
• Limitações de expressividade
Por exemplo, não contempla palavras de
duplo balanceamento
((()))

• Linguagens de programação em geral são


não-regulares

7
Autômato Finito
Sistemas de estados finitos possuem estados finitos,
pré definidos entrada bem definida.

Tipos

Determinístico: A partir de um determinado estado e


do símbolo lido pode assumir um único estado

Não determinístico: A partir de um determinado


estado e do símbolo lido pode assumir um conjunto
de estados

Com movimentos vazios: A partir de um


determinado estado e sem ler um símbolo pode
assumir um conjunto de estado 8
Composição
Fita
- Dispositivo de entrada
- Contém a informação a ser processada

Unidade de controle
- Reflete o estado corrente da máquina
- Possui unidade leitura, cabeça da fita
- Acessa uma célula da fita de cada vez
- Movimenta-se exclusivamente para direita

Programa, função programa ou transição


- Comanda as leituras
- Define o estado da máquina
9
Fita
- Dividida em células
- Cada célula armazena um símbolo
- Os símbolos pertencem a um alfabeto
- NÃO é possível gravar na fita
- A palavra a ser processada ocupa toda a fita

10
Unidade de controle
- Número finito de estados
- Leitura
➔ Lê o símbolo de cada célula
➔ Lê apenas um por vez
➔ Move a cabeça sempre pra direita
➔ Posição inicial da cabeça: é a célula mais a
esquerda

11
Função de transição
A partir do estado corrente e do símbolo lido ela
define o novo estado do autômato.

Exemplo
δ(q1, b) = q4
Lê-se: Se o estado atual é o q1 e o símbolo lido
foi “b” vá para o estado q4

δ(p, a) = q
Lê-se: Se o estado atual é o p e o símbolo lido foi
“b” vá para o estado q

12
Diagrama
Este autômato tem apenas uma função de
transição δ(q₀, a) = q

13
Definição Matemática:

M = (Σ, Q, δ, q₀, F)

➔ Σ Alfabeto
➔ Q Conjunto de estados possíveis do autômato
➔ δ Função de transição δ:Q×Σ → Q
➔ q₀, Estado inicial
➔ F, Subconjunto de Q, conjunto dos estados finais

14
Convenção
Estado inicial

Estado final

Função de transição por tabela (Tabular)


- Ex: δ(p, a) = q

15
Dissecando um ADF

➔ Autômato: Máquina automática

➔ Finito: Com memória limitada (estados)

➔ Determinístico: Para cada símbolo do


alfabeto existe exatamente um estado para
qual o autômato pode transitar a partir no
único estado ativo.

16
Validando entradas

01100
11001
100

17
Validando entradas

01100 ✓
11001
100

18
Validando entradas

01100 ✓
11001 ✓
100

19
Validando entradas

01100 ✓
11001 ✓
100 ✗

20
Função de transição estendida

Seja M = (Σ, Q, δ, q₀, F) um AFD. A função de transição


estendida de M é a função
defina da seguinte forma: para q ∈ Q e w ∈ Σ*,

^
Ou seja: δ(q,w) é o estado ativo em M após computar
toda uma cadeia w a partir do estado q.
21
Função de transição estendida

Seja M = (Σ, Q, δ, q₀, F) um AFD e seja w ∈ Σ*


Dizemos que M aceita w se
Caso contrário, M rejeita w

^
Ou seja: δ(q,w) é o estado ativo em M após computar
toda uma cadeia w a partir do estado q.
22
A linguagem de um AFD

Seja M = (Σ, Q, δ, q₀, F) um AFD.


Dizemos que x = {w ∈ Σ* : M aceita w}

Também dizemos que M reconhece x

Denotamos tal linguagem por L(M)

23
Definição de Linguagem

L(M) = ?

24
Definição de Linguagem

L(M) = {w e {0,1}* | 01 é subcadeia de w}

25
Exemplos

L(M) = ?

26
Exemplos

L(M) = {w e {0,1}* | w termina em 1}

27
Exemplos

28
Exemplos

L(M) = {w e {0,1}* | w termina em 0 ou ε}

29
Exercícios

Acessar o material de pós-aula disponível no


AVA

30
31

Você também pode gostar