Você está na página 1de 30

LINGUAGENS FORMAIS

Prof. Carlos Eduardo


emailcarloscadu@gmail.com
carlosufrpe@hotmail.com
ROTEIROS DAS AULAS
• REVISÃO MATEMÁTICA;
• CONCEITOS FUNDAMENTAIS DA TEORIA DOS
AUTÔMATOS;
• AUTÔMATOS FINITOS (AF);
• EXPRESSÕES REGULARES (ER);
• GRAMÁTICA LIVRE DE CONTEXTO (GLC);
• AUTÔMATOS COM PILHA (AP).
AULA 02
1. CONCEITOS FUNDAMENTAIS DA TEORIA DOS
AUTÔMATOS:
1. ALFABETO;
2. CADEIA (STRING OU PALAVRA);
3. LINGUAGEM;
2. AUTÔMATO FINITO DETERMÍSTICO:
1. IDEIA;
2. CONCEITO FORMAL;
CONCEITOS FUNDAMENTAIS

• ALFABETO: é um conjunto finito (não-vazio) de


símbolos, normalmente representado por 
(Lê-se: sigma) ou  (Lê-se: gama);
Exemplo:

  = {0, 1} – Alfabeto binário;


  = {a, b, c, d, ..., z} – Alfabeto das letras
latinas minúsculas;
CADEIDA/STRING/PALAVRA:

• Def.: é uma sequência de símbolos finitos


justapostos retirado de algum alfabeto.

Exemplos:

•  = {0, 1} (alfabeto), 00001 (cadeia);


•  = {a, b, ..., z} (alfabeto), carlos (cadeia);
• SUBCADEIA: é qualquer sequência de
símbolos consecutivos dentro de uma cadeia.
• PRÉFIXO: é uma subcadeia que fica no inicio
da cadeia;
• SUFIXO: é uma subcadeia que fica no fim da
cadeia.
• EXEMPLO: w = carloseduardo;
• Préfixo: car, sufixo: rdo, ambas são subcadeias.
• CADEIA VAZIA: é uma sequência de zero
símbolos. Notação: ε (epsilon) ou λ (lambda);

Exemplo: “ ” (string vazia na linguagem C);

• COMPRIMENTO de uma cadeia: é a quantidade


de espaço ocupados por símbolos na cadeia.
• Notação: |w|, onde w é uma cadeia.
Exemplos:
• w = a1a2...an => |w| = n;
• w = 001 => |w| = 3;
• w=ε => |w| = 0;

• POTÊNCIA DE UM ALFABETO: k é o conjunto de


cadeias de comprimento k, formado sobre um
alfabeto . Formalmente: k = {w | |w| = k, k ϵ N}.
• 0 = {w | |w| = 0} = {ε},
• ¹ = {w | |w| = 1};
• ² = {w | |w| = 2};

• Conjunto de todos os strings sobre o alfabeto


 é denotado por * = 0 U ¹ U ² U ³ U ...

• + = ¹ U ² U ³ U ... (Não possui {ε})


CONVENÇÃO
• OBS1: Letras minúsculas do início do alfabeto
latino (o nosso) ou dígitos são usadas para
representar os símbolos de um alfabeto;

• OBS1: Letras minúsculas do fim do alfabeto latino


(o nosso) são usadas para representar cadeias de
um alfabeto;

• OBS3: (alfabeto)  = {0, 1} ≠ ¹ = {0, 1}.


• REVERSO DE UMA CADEIA: são os símbolos da
cadeia escrito em ordem inversa, ou seja, dado
a cadeia w = a1a2...an , o reverso dela é wR =
an...a2a1.
• OBS.: (vw) R = wRvR e R = .

• CONCATENAÇÃO: Sejam x e y cadeias,


denotamos por xy a concatenação de x e y.
• OBS.: em geral xy é diferente yx.
PROPRIEDADES:
EXEMPLO: x = 011, y = 100,
então xy = 011100 e yx = 100011.
• PROPRIEDADES:
Associativa: (xy)z = x(yz)
A cadeia  é a identidade (neutro): x = x = x
|xy| = |x| + |y|.
CONT.
• Concatenação de w com si própria: wK.
• Exemplo: (ab)² = abab
(ab)0 = 
• Definição recursiva para wk:
• w0 = 
• wn+1 = wnw
LINGUAGEM
• DEF.: é um conjunto formado por strings.
AUTÔMATOS FINITOS
• É um dos modelos computacionais que
estudaremos.
• Porém com uma quantidade extremamente
limitada de memória.
• O que um computador pode fazer com uma
memória tão pequena?
• Na verdade, interagimos com tais computadores o
tempo todo, pois eles residem no coração de
vários dispositivos eletromecânicos.
AUTÔMATOS FINITOS
INTERRUPTOR
PRESSIONAR

DESLIGADO LIGADO
ESTADO
INICIAL

PRESSIONAR

2 ESTADOS: LIGADO E DESLIGADO


AUTÔMATOS FINITOS
• Outros exemplos: lavadoras de louça/roupa,
termômetros eletrônicos, relógios digitais,
calculadoras e máquinas de venda
automática....

• Os autômatos finitos também são chamados


de máquinas de estados finitos.
• OUTRO EXEMPLO: controlador de uma porta
de entrada automática:
• TEMOS 2 ESTADOS: aberto e fechado.

FRENTE DA ATRÁS DA
PORTA PORTA
• DIAGRAMA DO AFD DO CONTROLADOR DE
UMA PORTA DE ENTRADA AUTOMÁTICA:

FRENTE
ATRÁS FRENTE
NENHUM
AMBOS ATRÁS
AMBOS

FECHADO ABERTO
ESTADO
INICIAL

NENHUM
• Máquina M1 (ou Autômato A1):
DEFINIÇÃO AFD (FDA)
• É uma 5-upla (tupla) (Q, , , q0, F), onde:
• Q é um conjunto finito de estados;
•  é um conjunto finito, alfabeto;
• :Q x  -> Q é a função de transição;
• q0 é o estado inicial e
• F C Q é o conjunto de estados de aceitação
(estados finais).
AFD M1

0 1
--> q1 q1 q2

• M1 = ({q1, q2, q3}, {0, 1}, , q1,q2{q2}) onde é:


*q2 q3
q3 Q2 q2
DIAGRAMA DE TRANSIÇÃO
• Estado inicial possui uma
seta a esquerda;
• Estado de aceitação
possui uma
circunferência;
• As setas com símbolos do
alfabeto caracterizam as
transições;
TABELA DE TRANSIÇÃO
0 1 • A seta indica o
--> q1 q1 q2 estado inicial;
*q2 q3 q2
q3 Q2 q2 • O asterisco * indica
os estados de
aceitação;
RESPONDENDO
• Máquina: M1
FUNÇÃO DE TRANSIÇÃO
ESTENDIDA (FTE)
• É uma descrição formal do que acontece com
um AFD (DFA) quando começamos pelo
estado inicial e seguimos qualquer sequência
de entradas.
• Se énossa função de transição, então a FTE
construída a partir de será ;
• Vamos formalizar usando indução sobre o
comprimento de uma cadeia de entrada.
INDUÇÃO SOBRE O COMPRIMENTO

• BASE: (q, ) = q.
• INDUÇÃO: Se w é uma cadeia da forma w = xa,
onde a é o último símbolo de w, e x é o
restante da cadeia, então:

(q, w) = (q, x), a)


EXEMPLO
LINGUAGEM DE UM AFD
• Dado um AFD (DFA) A = (Q, , , q0, F). A
linguagem que ele aceita, denotada por L(A) é
definida por:

• L(A) = {w | (q0, w) F}, isto é,


• A linguagem de A é o conjunto de cadeias w
que levam o estado inicial q0 até um dos
estados de aceitação.
EXERCÍCIO
• SIPSER – 1.1 ATÉ 1.6
• HOPCROFT – 2.2.4

Você também pode gostar