Você está na página 1de 50

Centro Universitrio Norte do Esprito Santo

(CEUNES-UFES)ara adicionar um
Prof. Francisco de Assis S. Santos, Dr.
Tema: Gramticas e Linguagens Formais

1. Linguagens e Gramticas: Definies


Para definirmos Linguagem, de antemo, h a necessidade
de introduzir os conceitos de alfabeto e de palavra.

1.1 Alfabeto
Um alfabeto um conjunto finito de smbolos ou
caracteres (letras e dgitos) . Portanto:
Um conjunto infinito no um alfabeto;
O Conjunto vazio um alfabeto.

1. Linguagens e Gramticas: Definies


Os seguintes conjuntos so exemplos de alfabetos:
- {a,b,c}
- (conjunto vazio)
Os seguintes conjuntos no so exemplos de alfabetos:
- N (conjunto dos nmeros naturais)
- {a, b, aa, ab, ba, bb, aaa,...}

1.2 Palavra
Uma Palavra, Cadeia de caracteres ou Sentena sobre um
alfabeto uma sequncia finita de smbolos, do alfabeto,
justapostos.
Portanto, uma cadeia sem smbolos um palavra vlida e
o smbolo denota cadeia vazia ou palavra vazia.
1.2.1 Prefixo, Sufixo, Subpalavra: Um prefixo (respectivamente,
Sufixo) de uma palavra qualquer sequncia inicial/final de
smbolos da palavra.

1.2 Palavra
Exemplo de Palavra, Prefixo, Sufixo, Subpalavra:
a)abcb um palavra sobre o alfabeto {a, b, c}
b)Em relao a palavra abcb vlido:
, a, ab, abc, abcb so todos prefixos;
, b, cb, bcb, abcb so todos os sufixos.
c) Qualquer prefixo ou sufixo de uma palavra uma subpalavra.

1.3 Concatenao de Palavras


A concatenao de palavras uma operao binria, a qual associa
a cada par de palavras um palavra formada pela justaposio da
primeira com a segunda.
A operao de concatenao satisfaz s seguintes
propriedades, assumindo v, w, t palavras quaisquer.
a)Associativa
v(wt) = (vw)t
b) Elemento Neutro
w=w=w

1.3 Concatenao de Palavras


Exemplo: Suponha o alfabeto = {a, b}. Ento, para as
palavras v = baaaa e w = bb, vale que:
v w = baaaabb
Se representa um alfabeto, ento:
* denota o conjunto de todas as palavras possveis sobre
+ denota * -{}.
1.3.1 Concatenao Sucessiva
Seja uma palavra w e a um smbolo, ento:

1.4 Linguagem Formal


Uma Linguagem Formal L sobre um alfabeto , um conjunto
de palavras sobre , um conjunto de palavras sobre , ou
seja: L *

Exemplo Linguagem Formal


a) O conjunto vazio e o conjunto formado pela palavra
vazia {} so linguagens sobre qualquer alfabeto, note que:
{}
b) Os conjuntos * e + so linguagens sobre um alfabeto
qualquer, note que: * +.

1.4 Linguagem Formal


c) Suponha o alfabeto = {a, b}. Ento, o conjunto de
palndromos sobre um exemplo de linguagem infinita.
Assim, so palavras desta linguagem:
, a, b, aa, bb, aaa, aba, bab, bbb, aaaa,...

1.5 Gramtica
Gramtica um conjunto finito de regras as quais, quando
aplicadas sucessivamente, geram palavras. O conjunto de todas as
palavras geradas por uma gramtica define a linguagem.
Uma Gramtica de Chomsky, Gramtica Irrestrita ou
simplesmente Gramtica uma qudrupla ordenada: G = (V, T, P, S)
na qual:
V, um conjunto finito de smbolos variveis ou no-terminais;
T, um conjunto finito de smbolos terminais de V.

1.5 Gramtica
G = (V, T, P, S)
na qual:
V, um conjunto finito de smbolos variveis ou no-terminais;
T, um conjunto finito de smbolos terminais de V.
P: (V T)+ (V T)* uma relao finita (ou seja, P um
conjunto finito de pares), denominada de Relao de Produes ou
simplesmente Produes;
S: um elemento distinguido de V denominado smbolo inicial ou
varivel inicial.

1.5 Gramtica
Uma regra de produo (, ) representada como:

As regras de produo definem as condies de gerao das


palavras da linguagem. A aplicao de uma regra de produo
denominada derivao de uma palavras e formalmente
definida como um par de uma relao.
A aplicao sucessiva de regras de produo permite
derivar as palavras da linguagem representada pela
gramtica.

1.5 Gramtica
1.5.1 Relao de Derivao
Seja G = (V, T, P, S) um gramtica. Uma derivao um par da
Relao de Derivao denotada por com domnio em (V

T)+ e codomnio em (V T)*. Um par <, > da relao de


derivao representado como segue:
Para toda produo da forma S

, o seguinte par pertence

relao de derivao:
S

1.5 Gramtica
1.5.2 Linguagem Gerada
Seja G = (V, T, P, S) um gramtica. A Linguagem Gerada pela
gramtica G, denotada por L(G) ou GERA(G), composta por
todas as palavras de smbolos terminais derivveis a partir do
smbolo inicial S, ou seja:
L(G) = {w T* | S +w}

1.5 Gramtica
Exemplo 1 Gramtica, Derivao, Linguagem Gerada: Nmeros
Naturais
Suponha que se deseja definir uma gramtica capaz de gerar
qualquer nmero natural

vlido em uma linguagem de

programao. Assim, a gramtica:


G = (V, T, P, N), sendo:
V = {N, D}
T = {0, 1, 2,..., 9}
P = { N D, N

DN, D

0| 1 |...|9}

Essa Gramtica gera o conjunto dos nmeros Naturais.

1.5 Gramtica
Continuao do Exemplo 1: G = (V, T, P, N), sendo:
V = {N, D}, T = {0, 1, 2,..., 9} ,
P = { N D, N

DN, D

0| 1 |...|9}

Vejamos a derivao do nmero 521:


N

N DN

5N

N DN

52N

ND

DN

D5

5DN

D2

52D

D1

521

Exerccios
1) Assuma G = (V, T, P, N), sendo:
V = {N, D}, T = {0, 1, 2,..., 9} ,
P = { N D, N

DN, D

0| 1 |...|9}

a)Realize a derivao do nmero 90243


b)Altere a Gramtica G de modo a permitir derivaes de qualquer
Nmero Inteiro
1)Desenvolva uma Gramtica capaz de obter a derivao de
qualquer nmero Real.

Exerccios
3) Considere a Gramtica G = ({S, X, Y, A, B, F}, {a, b}, P, S), na qual:
P={S

XY,
X

XaA | XbB | F

Aa

aA, Ab

bA, AY

Ya,

Ba

aB, Bb

bB, BY

Yb,

Fa

aF, Fb

bF, FY

Tal Gramtica gera palavras simtricas, primeira metade igual a


segunda.
a)Derive a palavra baba
b)Derive a palavra abab

Exerccios
4) Apresente os possveis prefixos e sufixos de cada uma das
palavras abaixo:
a)teoria
b)universidade
c)aaa
d)Abccba
e)Abcabc
5) Desenvolva uma gramtica que gere expresses aritmticas com
parnteses balanceados, dois operadores (* e +) e um operando X.
Por exemplo, as seguintes palavras so expresses aritmticas
vlidas: X X*(X+X) (((((X)))))

Exerccios
6) Desenvolva uma gramtica que gere a seguinte linguagem:

2. Autmato Finito
Um Autmato Finito (AF) uma Mquina (procedimento aceitador ou
reconhecedor). um sistema de estados finitos, trata-se de um modelo
computacional

comum

em

diversos

estudos

terico-formais

da

Computao.
Reconhece uma quantidade finita e limitada de informao, a
qualquer momento.
So classificados em Autmatos Finitos Determinsticos e
Autmatos Finitos no Determinsticos.

2.1 Autmato Finito Determinstico


Um autmato Finito Determinstico pode ser visto como uma mquina
constituda, basicamente de trs partes:

1)Fita: Dispositivo de entrada que contm a informao a ser processada;


2)Unidade de Controle: Reflete o estado atual da mquina;
3)Funo de Transio: Define o estado e comanda as leituras da mquina.
A fita finita, sendo dividida em clulas, cada uma das quais armazena um
smbolo. Os smbolos pertencem a um alfabeto de entrada.
A unidade de controle possui um nmero finito e predefinido de estados.

2.1 Autmato Finito Determinstico


a

Controle

Unidade de controle
M=(,Q,,q0,F), sendo:

um alfabeto de smbolos de entrada;


Q um conjunto de estados possveis do autmato, o qual finito;
uma funo programa ou funo de transio, assumindo:
:Q x

F um subconjunto de Q, denominado de conjunto de


estados finais.

2.1 Autmato Finito Determinstico


A funo programa pode ser interpretada como um diagrama,
conforme Figura 1. Suponha (p, x) = (q, y, m).
P

Estado anterior

Novo Estado

Smbolo lido
Figura 1 Diagrama de Transio de estados de um autmato Finito Determinstico

2.1 Autmato Finito Determinstico: Aceita e Rejeita uma


entrada
A parada do processamento de um autmato finito, em
relao a leitura de uma entrada w, pode ocorrer em duas situaes:
1) Aceita a entrada w Aps processar o ltimo smbolo da fita, o
autmato finito assume um estado final;
2) Rejeita a entrada w So duas possibilidades:
2.1 Aps processar o ltimo smbolo da fita, o
autmato finito assume um estado no-final;
2.2 Em algum momento, no processamento de w, a
funo de transio indefinida para o argumento.

2.2 Autmato Finito Determinstico: Exemplo


Seja o autmato finito M1 = (,Q,,q0,F), assumindo:
M1 = ({a,b},{q0,q1,q2,qf},,q0,{qf}), aceita a Linguagem L = {w | w possui
aa ou bb como subpalavra}
Tendo como funo de transio , conforme Quadro 1:

qo

q1
qf
q1
qf

q2
q2
qf
qf

q1
q2
qf

Quadro 1 - Funo de Transio da AFD.

Considere as palavras de entrada w1=abba, w2= baba e w3 = bbaab.


ACEITA(M1) ou REJEITA(M1).

Verificar se

Exerccios Propostos
1) Considere a Mquina M1 apresentada e construa seu
grafo/diagrama de transio de estados.
Resoluo:

Exerccios Propostos
2) Seja a M2 = ({a,b},{q0,q1,q2,q3},,q0,{q0}), esta aceita a Linguagem
L = {w | w possui um nmero par de a e nmero par de b}. Obtenha
a funo de transio no formato de quadro, considerando o
diagrama abaixo, e teste as palavras de entrada: w1=abba,
w2=bbabab e w3=ababa.

Exerccios Propostos
3) Elabore um AFD para aceitar valores monetrios em Reais. Estes
possuem exatamente duas casas decimais depois da vrgula, e
usam ponto como separador de milhar.
Exemplos: { R$2,35 ; R$1.546,98 ; R$1,00 ; R$10.000.000.000,00 }
4) Elabore um autmato finito determinstico para aceitar um
nmero mpar de cada smbolo (a, b).

Exerccios Propostos
3) Elabore um AFD para aceitar valores monetrios em Reais. Estes
possuem exatamente duas casas decimais depois da vrgula, e usam
ponto como separador de milhar. Exemplos: {R$2,35 ; R$1.546,98 ;
R$1,00 ; R$10.000.000.000,00}
Resoluo: um AFD ou AFN?

Exerccios Propostos
3) Elabore um AFD para aceitar valores monetrios em Reais. Estes
possuem exatamente duas casas decimais depois da vrgula, e usam
ponto como separador de milhar. Exemplos: {R$2,35 ; R$1.546,98 ;
R$1,00 ; R$10.000.000.000,00}
Resoluo: um AFD ou AFN?

Exerccios Propostos
4) Elabore AFD para gerar uma lista de expresses aritmticas
formadas apenas por nmeros inteiros sem sinal de 20 a 99 e pelo
operador de adio (as expresses so separadas por ponto e
vrgula). Observe os seguintes tokens:
<DGITO1> - representa exatamente um dgito de 0 a 9.
<DGITO2> - representa exatamente um dgito de 2 a 9.
<SOMA> - representa o caractere +.
<PT-VIRG> - representa o caractere ;.
Observe um exemplo de string que deve ser aceito pelo AFD:
23 + 44 + 99 ; 25 ; 51 + 20

Exerccios Propostos
5) Desenvolva uma gramtica para gerar expresses
aritmticas em notao polonesa (Existe tambm a notao
polonesa reversa, por exemplo, utilizada em calculadoras
grficas). Use apenas nmeros inteiros sem sinal. Considere,
para cada operao, exatamente dois operandos.
Exemplos: (+ 2 3);
(- (* 20 30) 4);
(+ (+ 1 4) (+ 3 (+ 3 5))) .
6) Descreve um autmato finito determinstico que reconhea
a linguagem A das palavras de alfabeto {0,1} em que no
ocorrem sequncias pares de 0 's imediatamente esquerda
de sequncias mpares de 1 s.

Resoluo do Exerccio 5

G = (V, T, P, E)
V = {E, S, X, N, D}
T = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, /}
P = { E (S X X),
S + | - | / | *,
X E | N,
N N D | D,
D 0 | 1 | 2 | 3 |...|9 }

Exerccios Propostos
7)

Autmato Finito No Determinstico (AFN)


O no determinismo uma importante generalizao dos
modelos de mquinas, sendo de fundamental importncia no
estudo de modelos da Teoria da Computao e das Linguagens
Formais.
A semntica de no determinismo adotada a usual no estudo
das Linguagens Formais no sentido em que objetiva determinar a
capacidade de reconhecer problemas.
No contexto das linguagens formais, nem sempre a facilidade
de no determinismo aumenta o poder de reconhecimento de
linguagens de uma classe de autmatos.

Autmato Finito No Determinstico (AFN)


Visto como uma mquina composta por fita, unidade de
controle e programa, um AFN assume um conjunto de estados
alternativos, como se houvesse uma multiplicao da unidade de
controle,

uma

para

cada

alternativa,

processando

independentemente, sem compartilhar recursos com as demais.


p
a

q1

q2

Estado anterior

a Smbolo lido

...

qn

Conjunto de novos
estados

Autmato Finito No Determinstico (AFN)


Um AFN M uma 5-upla ordenada:
M=(,Q,,q0,F), sendo:
um alfabeto de smbolos de entrada;
Q um conjunto de estados possveis do autmato, o qual finito;
uma funo programa ou funo de transio, assumindo:
:Q x

2Q

A qual uma funo parcial. Supondo que a funo programa


definida para um estado p e um smbolo a, resultando no
conjunto de estados {q1, q2, ...,qn}, ento:
(p,a)={q1,q2,...qn}

Autmato Finito No Determinstico (AFN)


Analogamente aos autmatos finitos determinsticos, a
computao de um AFN, para uma palavra de entrada w, consiste
na sucessiva aplicao de funo de transio para cada smbolo de
w (da esquerda para a direita) at ocorrer uma condio de parada.
Como cada transio do AFN resulta em um conjunto de estados,
necessrio estender a definio de funo de transio, usando
como argumento um conjunto finito de estados e uma palavra.
A parada do processamento de um AFN para uma entrada w
pode ser de duas maneiras:

Autmato Finito No Determinstico (AFN)


A parada do processamento de um AFN para uma entrada w
pode ser de duas maneiras:
1) Aceita a entrada w: Aps processar o ltimo smbolo da fita,
existe pelo menos um estado final pertencente ao conjunto de
estados alternativos atingidos;
2) Rejeita a entrada w. So duas possibilidades:
Aps processar o ltimo smbolo da fita, todos os estados
alternativos atingidos so no finais.
Em algum momento, ao longo do processamento de w, a
funo programa indefinida para o argumento.

Autmato Finito No Determinstico (AFN):


Exemplo 1
Considere a seguinte linguagem sobre o alfabeto {a,b}:

L5 = {w| w possui aa ou bb como subpalavra}


O autmato finito no-determinstico:

M5=({a,b},{qo,q1,q2,qf}, 5 ,qo,{qf}),
onde 5 dada pela quadro de transio:
5

qo

{qo,q1}
{qf}
{qf}

{qo,q2}
{qf}
{qf}

q1
q2
qf

Quadro 2 - Funo de Transio da AFN.

Autmato Finito No Determinstico (AFN):


Exemplo 1

M5=({a,b},{qo,q1,q2,qf}, 5 ,qo,{qf}),
onde 5 dada pelo quadro de transio:

qo

{qo,q1}
{qf}
{qf}

{qo,q2}
{qf}
{qf}

q1
q2
qf

Quadro 2 - Funo de Transio do AFN.


Figura 2 Diagrama do AFN: Sequncia de dois smbolos iguais
outra maneira de indicar um estado final

Autmato Finito No Determinstico (AFN):


Exemplo 2

L6={w|w possui aaa como sufixo}, sendo o AFN:


M6=({a,b},{qo,q1,q2,qf}, 6 ,qo,{qf}),
onde 6 dada pelo quadro de transio:
6

qo
q1
q2

{qo,q1}

{qo}

{q2}

{qf}

Quadro 3 - Funo de Transio do AFN.

Figura 3 Diagrama do AFN: aaa como sufixo

Autmato Finito No Determinstico (AFN):


Exerccios
1) Seja A o autmato finito de alfabeto {a, b, c} representado
pelo diagrama seguinte. Qual a linguagem reconhecida pelo
autmato A? Porqu?

2) Considera o seguinte autmato finito no determinstico C


definido no alfabeto {a, b}. Descreve L(C) e indique uma palavra que
pertena a L(C) e outra que no pertena a esta linguagem.

Autmato Finito No Determinstico (AFN):


Exerccios
3) Construa um autmato finito no determinstico que reconhea a
linguagem L do alfabeto = {0, 1} das palavras com um 1 na terceira
posio a contar do fim.

4) Considera o seguinte autmato finito no determinstico D


definido no alfabeto {c, d}. Descreve L(D) e indique uma palavra que
pertena a L(D) e outra que no pertena a esta linguagem.

Autmato Finito No Determinstico (AFN):


Exerccios
5) Considera os autmatos finitos no
representados pelos seguintes diagramas.

determinsticos

Verifique quais das seguintes palavras so aceitas por A ou B:


(a) aa
(b) aba
(c) abba
(d) bba
(e) abab

Autmato Finito No Determinstico (AFN):


Exerccios
6) Seja A a linguagem das palavras de alfabeto {a, b} que
possui no mximo uma ocorrncia de aba e que no terminam
em bb. Por exemplo aaaabaaab, ababba e bbbaabbabaaaab
pertencem a A, mas ababa e aaaababaaabb no pertencem.
Construa um AFN que reconhea a Linguagem A.

7) Seja B a linguagem das palavras de alfabeto {0, 1} que no


comeam em 101 e possui exatamente uma subpalavra 000.
Por exemplo 11001000, 100010 e 01011000101 pertencem a B,
mas 101100 e 10000100 no pertencem.

Autmato Finito No Determinstico (AFN):


Exerccios
8) Desenvolva um Autmato Finito No-Determinstico (AFN)
sobre o alfabeto = {a, b, c}, que reconhea a linguagem L = {w
| w possui bac ou cbc como prefixo, bca ou caa como
subpalavra e abc ou cac como sufixo}
9) Seja B a linguagem das palavras de alfabeto {0, 1} que so
representaes binrias de inteiros positivos mltiplos de 4.
Desenvolva um AFN que reconhea esta linguagem.

Referncias Bibliogrficas
Menezes, P. B. Linguagens Formais e Autmatos, 5 Ed., Bookman: Instituto de
Informtica da UFRGS, Porto Alegre-RS, 2008.
Notas de Aula do Prof. Dr. Renato Elias Nunes. Universidade Federal do Esprito
Santo, 2016.

Centro Universitrio Norte do Esprito Santo


(CEUNES-UFES)ara adicionam

Você também pode gostar