Anda di halaman 1dari 94

Conceitos Bsicos de Linguagens

Prof. Marcus Vincius Midena Ramos


Universidade Federal do Vale do So Francisco

9 de junho de 2013

marcus.ramos@univasf.edu.br
www.univasf.edu.br/~marcus.ramos

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

1 / 94

Bibliografia

Linguagens Formais: Teoria, Modelagem e Implementao


M.V.M. Ramos, J.J. Neto e I.S. Vega
Bookman, 2009

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

2 / 94

Roteiro

Smbolos e Cadeias

Linguagens

Gramticas

Linguagens, Gramticas e Conjuntos

Reconhecedores

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

3 / 94

Smbolos e Cadeias

Smbolo, cadeia e alfabeto

Os smbolos, tambm denominados palavras ou tomos, so


representaes grficas, indivisveis, empregadas na construo de
cadeias. Estas so formadas atravs da justaposio de um nmero
finito de smbolos, obtidos de algum conjunto finito no-vazio,
denominado alfabeto.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

4 / 94

Smbolos e Cadeias

Smbolo, cadeia e alfabeto

Cada smbolo considerado como uma unidade atmica, no


importando a sua particular representao visual. So exemplos de
smbolos: a, abc, begin, if , 5, 1024, 2.017e4. Perceba-se que no h uma
definio formal para smbolo. Deve-se intuir o seu significado como
entidade abstrata, e dessa forma aceit-lo como base para a teoria
que ser desenvolvida. Pode-se dizer que se trata de um conceito
primitivo.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

5 / 94

Smbolos e Cadeias

Convenes

Ao longo deste texto ser adotada a seguinte conveno para denotar


smbolos, cadeias e alfabetos:
I

Smbolos: letras minsculas do incio do alfabeto romano:


(a, b, c...).

Cadeias: letras minsculas do final do alfabeto romano


(r, s, x, w...), ou letras minsculas do alfabeto grego ( , , ...).

Alfabetos: letras maisculas do alfabeto grego (, , ...).

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

6 / 94

Smbolos e Cadeias

Exemplo

Exemplo 1.1
Como exemplo de alfabeto podemos mencionar o conjunto dos dgitos
hexadecimais, em que cada elemento (dgito) desse conjunto corresponde a um
determinado smbolo:
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f }
Naturalmente, as cadeias que podem ser construdas a partir dos smbolos desse
alfabeto correspondem aos numerais hexadecimais: 123, a0b56, fe5dc, b, abc, 55efff ...

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

7 / 94

Smbolos e Cadeias

Comprimento de uma cadeia

O comprimento de uma cadeia um nmero natural que designa a


quantidade de smbolos que a compem. O comprimento de uma
cadeia denotado por | |.
Exemplo 1.2
Considerem-se as cadeias = 1, = 469, = bce60 e = df , tambm construdas
sobre o alfabeto do Exemplo 1.1. Ento, | | = 1, | | = 3, | | = 5 e | | = 2.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

8 / 94

Smbolos e Cadeias

Cadeia unitria

D-se o nome de cadeia elementar (ou unitria) a qualquer cadeia


formada por um nico smbolo, como o caso da cadeia do
Exemplo 1.2. Naturalmente, toda cadeia unitria tem comprimento 1.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

9 / 94

Smbolos e Cadeias

Cadeia vazia

O conceito de cadeia vazia especialmente importante na teoria das


linguagens formais. Denota-se por a cadeia formada por uma
quantidade nula de smbolos, isto , a cadeia que no contm
nenhum smbolo. Formalmente,
| | = 0

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

10 / 94

Smbolos e Cadeias

Concatenao de cadeias

Duas cadeias, sejam elas elementares ou no, podem ser anexadas,


formando uma s cadeia, atravs da operao de concatenao.
Essa operao fornece como resultado uma nova cadeia, formada
pela justaposio ordenada dos smbolos que compem os seus
operandos separadamente. Observe-se que a operao de
concatenao entre uma cadeia e um smbolo realizada atravs da
concatenao da cadeia em questo com a cadeia elementar
correspondente ao smbolo.
Denota-se a concatenao de duas cadeias e como ou,
simplesmente, .

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

11 / 94

Smbolos e Cadeias

Exemplos

Exemplo 1.3
Considere o alfabeto = {a, b, c, d}, e as cadeias = abc, = dbaca e = a.
A concatenao da cadeia com a cadeia assim obtida:
= = abcdbaca, e | | = | | + | | = 3 + 5 = 8
Da mesma forma, obtm-se a concatenao de com :
= = dbacaabc, e, | | = | | + | | = 5 + 3 = 8
Note-se que, neste exemplo, 6= .
A concatenao da cadeia com a cadeia elementar dada por:
= = abca, e | | = | | + | | = 3 + 1 = 4
Finalmente, a concatenao da cadeia elementar com a cadeia obtida como:
= = adbaca, e | | = | | + | | = 1 + 5 = 6

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

12 / 94

Smbolos e Cadeias

Propriedades da concatenao de cadeias

Como se pode perceber, a operao de concatenao, embora


associativa, no comutativa. Dadas trs cadeias , , quaisquer,
pode-se sempre afirmar que ( ) = ( ).
Por outro lado, dependendo dos particulares e considerados,
pode ser que ou 6= ou = (por exemplo, se e/ou
forem cadeias vazias ou, ainda, se = ).
No caso da cadeia vazia (elemento neutro em relao ao operador
de concatenao) so vlidas as seguintes relaes:
1
2

= =
| | = | | = | |

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

13 / 94

Smbolos e Cadeias

Prefixos e sufixos

Diz-se que uma cadeia um prefixo de outra cadeia se for


possvel escrever como . A cadeia dita sufixo de se
puder ser escrita como . Em ambos os casos, admite-se a
possibilidade de = . Nos casos em que 6= , diz-se que ,
respectivamente, prefixo prprio ou sufixo prprio da cadeia .
Note que a cadeia vazia pode ser considerada simultaneamente
prefixo ou sufixo de qualquer cadeia.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

14 / 94

Smbolos e Cadeias

Subcadeias

Dadas quatro cadeias , , e , uma cadeia chamada


subcadeia de uma cadeia sempre que = . Note-se que, se
ou ou ambos forem vazios, a definio tambm se aplica. Note-se
tambm que prefixos e sufixos so casos particulares de subcadeias.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

15 / 94

Smbolos e Cadeias

Cadeia reversa

Uma cadeia dita o reverso de uma cadeia , denotando-se o fato


por = R , se contiver os mesmos smbolos que , porm
justapostos no sentido inverso, ou seja:
se = 1 2 ...n1 n ento = n n1 ...2 1
Por definio, R = .
Exemplo 1.4
Considerem-se as cadeias = 123abc e = d. Ento, R = cba321 e R = d.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

16 / 94

Smbolos e Cadeias

Repetio de smbolos
Finalmente, convenciona-se que i representa a cadeia formada por
i smbolos concatenados. Por definio, 0 = .
Exemplo 1.5
Considere-se o smbolo a. Ento:
I

a0 = ;

a1 = a;

a2 = aa;

a3 = aaa;

etc.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

17 / 94

Linguagens

Linguagem formal

Uma linguagem formal um conjunto, finito ou infinito, de cadeias de


comprimento finito, formadas pela concatenao de elementos de um
alfabeto finito e no-vazio. Alm das operaes previamente definidas
para conjuntos, como unio, diferena, interseco etc., outras
operaes, tais como a concatenao e os fechamentos, tambm so
fundamentais para a definio e o estudo das linguagens formais.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

18 / 94

Linguagens

Cadeia vazia e conjunto vazio


Convm notar a distino que h entre os seguintes conceitos:
I

cadeia vazia ;

conjunto vazio 0;
/

conjunto que contm apenas a cadeia vazia { };

conjunto que contm apenas o conjunto vazio {0}.


/

O primeiro deles, , denota a cadeia vazia, ou seja, uma cadeia de


comprimento zero, ao passo que os demais so casos particulares de
conjuntos: 0/ denota uma linguagem vazia, ou seja, uma linguagem
que no contm nenhuma cadeia, { } denota uma linguagem que
contm uma nica cadeia (a cadeia vazia), e {0}
/ denota um conjunto
que contm um nico elemento, o conjunto vazio. Observe-se que
/ = 0 e |{ }| = |{0}|
/ = 1.
| | = |0|

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

19 / 94

Linguagens

Alfabetos, linguagens e cadeias

Note-se a diferena conceitual que h entre alfabetos, linguagens e


cadeias. Alfabetos so conjuntos, finitos e no-vazios, de smbolos,
atravs de cuja concatenao so obtidas as cadeias. Linguagens,
por sua vez, so conjuntos, finitos (eventualmente vazios) ou infinitos,
de cadeias. Uma cadeia tambm denominada sentena de uma
linguagem, ou simplesmente sentena, no caso de ela pertencer
linguagem em questo. Linguagens so, portanto, colees de
sentenas sobre um dado alfabeto.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

20 / 94

Linguagens

Smbolos, alfabeto, cadeias, linguagem


A Figura 1 ilustra a relao entre os conceitos de smbolo, alfabeto,
cadeia e linguagem.

Figura 1: Smbolo, alfabeto, cadeia e linguagem

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

21 / 94

Linguagens

Smbolos, alfabeto, cadeias, linguagem


Outra maneira de associar significados aos termos smbolo,
alfabeto, cadeia e linguagem apresentada na Figura 2, que
tambm ilustra o conceito de sentena.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

22 / 94

Linguagens

Exemplo
Exemplo 2.1
O smbolo a elemento do alfabeto {a} e tambm um item da cadeia aaa, que por
sua vez elemento da linguagem {aaa}. Por outro lado, a linguagem {aaa} um
conjunto que contm a cadeia aaa, a cadeia aaa uma seqncia de smbolos a e o
alfabeto {a} contm o smbolo a. A Figura 3 ilustra esses conceitos, conforme a
Figura 1.

Figura 3: a, {a}, aaa, {aaa}


Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

23 / 94

Linguagens

Exemplo
Exemplo 2.2
A Figura 4 ilustra uma aplicao dos conceitos da Figura 2 ao alfabeto {a, b}. A
linguagem apresentada , naturalmente, apenas uma das inmeras que podem ser
criadas a partir desse alfabeto.

Figura 4: Smbolos a e b, cadeias, sentenas e linguagem


Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

24 / 94

Linguagens

Concatenao de linguagens
A concatenao de duas linguagens X e Y, denotada por X Y ou
simplesmente XY, corresponde a um conjunto Z formado pela coleo
de todas as cadeias que possam ser obtidas pela concatenao de
cadeias x X com cadeias y Y, nesta ordem. Formalmente,
Z = X Y = XY = {xy | x X e y Y}
A concatenao , que gera cadeias de comprimento 2 formadas
sobre um alfabeto , tambm representada por 2 . Analogamente, a
concatenao , que gera cadeias de comprimento 3 sobre o
alfabeto , representada como 3 , e assim sucessivamente.
Generalizando-se:
i = i1 , i > 0
Por definio, 0 = { }
Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

25 / 94

Linguagens

Exemplo

Exemplo 2.3
Considere-se = {a, b, c}. Ento,
0

{ }

{a, b, c}

=
=

{aa, ab, ac, ba, bb, bc, ca, cb, cc}


{aaa, aab, aac, aba, abb, abc, ..., ccc}

etc.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

26 / 94

Linguagens

Fechamento reflexivo e transitivo

O fechamento reflexivo e transitivo (s vezes chamado


fechamento recursivo e transitivo) de um alfabeto definido como
o conjunto (infinito) que contm todas as possveis cadeias que
podem ser construdas sobre o alfabeto dado, incluindo a cadeia
vazia. Esse conjunto, denotado por , contm, naturalmente, todas
as cadeias que podem ser definidas sobre o alfabeto . Formalmente,
o fechamento reflexivo e transitivo de um conjunto definido como:
= ... =

i=0

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

27 / 94

Linguagens

Fechamento reflexivo e transitivo

A definio de uma linguagem pode, portanto, ser formulada de


maneira mais rigorosa com o auxlio da operao de fechamento
reflexivo e transitivo: sendo uma linguagem qualquer coleo de
cadeias sobre um determinado alfabeto , e como contm todas as
possveis cadeias sobre , ento toda e qualquer linguagem L sobre
um alfabeto sempre poder ser definida como sendo um
subconjunto de , ou seja, L .

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

28 / 94

Linguagens

Maior linguagem

Diz-se que a maior linguagem que se pode definir sobre um alfabeto


, observando-se um conjunto qualquer P de propriedades,
corresponde ao conjunto de todas as cadeias w tais que w
satisfaz simultaneamente a todas as propriedades pi P.
De uma forma geral, sempre que for feita uma referncia a uma
determinada linguagem L cujas cadeias satisfaam a um certo
conjunto de propriedades P, estar implcita (a menos de ressalva em
contrrio) a condio de que se trata da maior linguagem definida
sobre L, cujas cadeias satisfaam o conjunto de propriedades P.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

29 / 94

Linguagens

Maior linguagem

Um caso particular importante a se considerar a linguagem cujo


conjunto P de propriedades seja o menos restritivo possvel,
considerando toda e qualquer cadeia de qualquer comprimento (finito)
como sendo vlida. Assim, a maior linguagem dentre todas as que
podem ser definidas sobre um alfabeto qualquer L = (note-se,
neste caso, que a nica propriedade a ser satisfeita pelas cadeias de
L que elas sejam definidas sobre , ou seja, obtidas a partir da
simples justaposio de smbolos de ). Qualquer outra linguagem
definida sobre esse mesmo alfabeto corresponder obrigatoriamente
a um subconjunto (eventualmente prprio) de .

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

30 / 94

Linguagens

Menor linguagem

Por outro lado, a menor linguagem que pode ser definida sobre um
alfabeto qualquer 0,
/ ou seja, a linguagem vazia ou a linguagem
composta por zero sentenas.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

31 / 94

Linguagens

Todas as linguagens

Finalmente, como o conjunto de todos os subconjuntos possveis de

serem obtidos a partir de 2 , tem-se que 2 representa o


conjunto de todas as linguagens que podem ser definidas sobre o
alfabeto .

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

32 / 94

Linguagens

Menor, maior, todas


Em resumo:
I

0/ o conjunto constitudo por zero cadeias e corresponde


menor linguagem que se pode definir sobre um alfabeto
qualquer;
o conjunto de todas as cadeias possveis de serem
construdas sobre e corresponde maior de todas as
linguagens que pode ser definida sobre ;
2 o conjunto de todos os subconjuntos possveis de serem
obtidos a partir de , e corresponde ao conjunto formado por
todas as possveis linguagens que podem ser definidas sobre .

Observe-se que 0/ 2 , e tambm que 2 .

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

33 / 94

Linguagens

Exemplos
Exemplo 2.4
Seja = {a, b, c} e P o conjunto formado pela nica propriedade todas as cadeias
so iniciadas com o smbolo a. Ento:
I

A linguagem L0 = 0/ a menor linguagem que pode ser definida sobre ;

A linguagem L1 = {a, ab, ac, abc, acb} finita e observa P;

A linguagem L2 = {a}{a}{b}{c} infinita e observa P;

A linguagem L3 = {a}{a, b, c} infinita, observa P e, dentre todas as que


observam P, trata-se da maior linguagem, pois no existe nenhuma outra cadeia
em que satisfaa a P e no pertena a L3 ;

L0 , L1 , L2 , L3 ;

L0 2 , L1 2 , L2 2 , L3 2 ;

Alm de L0 , L1 , L2 e L3 , existem inmeras outras linguagens que podem ser


definidas sobre .

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

34 / 94

Linguagens

Fechamento transitivo

O fechamento transitivo de um alfabeto , denotado por + ,


definido de maneira anloga ao fechamento reflexivo e transitivo,
diferindo deste apenas por no incluir o conjunto 0 :
+ = 1 2 3 ... =

i=1

Como se pode perceber, = + { }. Observe-se ainda que,


embora aparentemente seja conseqncia da anterior, a afirmao
+ = { } s ser vlida nos casos em que no contiver a
cadeia vazia.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

35 / 94

Linguagens

Exemplo

Exemplo 2.5
Seja = {n, (, ), +, , , /}. Neste caso:
I

= { , n, n + n, n), /, n()), n (n n), ...}

+ = {n, n + n, n), /, n()), n (n n), ...}

+ = { }, pois
/

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

36 / 94

Linguagens

Complementao de uma linguagem

A complementao de uma linguagem X definida sobre um alfabeto


definida como:
X = X

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

37 / 94

Linguagens

Reverso de uma linguagem

Diz-se que uma linguagem L1 o reverso de uma linguagem L2 ,


denotando-se o fato por L1 = LR2 (ou L2 = LR1 ), quando as sentenas de
L1 corresponderem ao reverso das sentenas de L2 . Formalmente:
L1 = LR2 = {xR | x L2 }
Exemplo 2.6
Seja L2 = { , a, ab, abc}. Ento, L1 = LR2 = { , a, ba, cba}.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

38 / 94

Linguagens

Exemplo
Conforme j mencionado, o conjunto contm todas as possveis
linguagens que podem ser definidas sobre o alfabeto . Na prtica, as
linguagens de interesse costumam ser definidas como um
subconjunto prprio de , para um dado alfabeto .
Exemplo 2.7
Considere-se o alfabeto 1 = {n, (, ), +, , , /}. Uma linguagem L1 , passvel de ser
definida sobre o alfabeto 1 , e que corresponde a um subconjunto prprio de 1 ,
aquela em que as cadeias se assemelham, do ponto vista estrutural, s cadeias que
representam expresses aritmticas bem-formadas em muitas linguagens populares
de programao de alto nvel.
A seguir esto relacionadas algumas das cadeias que fazem parte de L1 , de acordo
com esse critrio.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

39 / 94

Linguagens

Exemplo
I

n+n

(n*n)

n*(n/(n+n+n))

Portanto, L1 = {n, n + n, (n n), n (n/(n + n + n)), ...} 1 . So exemplos de


cadeias pertencentes a 1 L1 :
I

n++

nn*

(n*n)))

n*-(n(+n+/))

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

40 / 94

Linguagens

Mtodos e notaes

As linguagens de interesse prtico, como o caso das linguagens de


programao, normalmente correspondem a um subconjunto prprio
do fechamento reflexivo e transitivo do alfabeto sobre o qual as suas
cadeias so construdas. Assim, tornam-se necessrios mtodos e
notaes que permitam, dentro do conjunto fechamento, identificar as
cadeias que efetivamente pertencem linguagem que estiver sendo
definida, descartando-se as demais.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

41 / 94

Linguagens

Mtodos e notaes

Um outro aspecto importante, referente definio rigorosa das


linguagens formais, diz respeito ao fato de que, em sua maioria, as
linguagens de interesse contm, se no uma quantidade infinita, ao
menos um nmero finito, porm muito grande, de cadeias.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

42 / 94

Linguagens

Mtodos e notaes

Por esses dois motivos, h um interesse muito grande em relao a


mtodos que permitam especificar linguagens, sejam elas finitas ou
no, atravs de representaes finitas. Por outro lado, nem todas as
linguagens podem ser representadas por meio de uma especificao
finita. Apesar do reduzido interesse prtico que recai sobre tais
linguagens, possvel comprovar a existncia de linguagens para as
quais impossvel se obter uma representao finita.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

43 / 94

Linguagens

Gramticas

1 Gramticas: correspondem a especificaes finitas de


dispositivos de gerao de cadeias. Um dispositivo desse tipo
deve ser capaz de gerar toda e qualquer cadeia pertencente
linguagem definida pela gramtica, e nada mais. Assim, as
cadeias no pertencentes linguagem no devem poder ser
geradas pela gramtica em questo. Essa forma de especificao
aplicvel para linguagens finitas e infinitas.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

44 / 94

Linguagens

Reconhecedores

2 Reconhecedores: correspondem a especificaes finitas de


dispositivos de aceitao de cadeias. Um dispositivo desse tipo
dever aceitar toda e qualquer cadeia pertencente linguagem
por ele definido, e rejeitar todas as cadeias no-pertencentes
linguagem. O mtodo aplicvel para a especificao formal de
linguagens finitas e infinitas.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

45 / 94

Linguagens

Enumeraes

3 Enumeraes: relacionam, de forma explcita e exaustiva, todas


as cadeias pertencentes particular linguagem a ser
especificada. Toda e qualquer cadeia pertencente linguagem
deve constar desta relao. As cadeias no pertencentes
linguagem no fazem parte dessa relao. Aplicam-se apenas
para a especificao de linguagens finitas e preferencialmente
no muito extensas.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

46 / 94

Linguagens

Usos

Na prtica, as gramticas e os reconhecedores, alm de oferecerem


uma grande conciso na representao de linguagens de
cardinalidade elevada, tambm podem ser empregados na definio
de linguagens infinitas, ao contrrio das enumeraes. Em contraste
com o que ocorre com as enumeraes, as gramticas e os
reconhecedores geralmente possibilitam uma percepo melhor da
estrutura sinttica inerente s sentenas das linguagens por eles
definidas.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

47 / 94

Linguagens

Equivalncias

Diz-se que uma gramtica equivalente a um reconhecedor se as


duas seguintes condies forem simultaneamente verificadas (lembrar
que os formalismos devem definir todas as sentenas da linguagem
desejada, e nenhuma outra cadeia):
1

Toda cadeia gerada pela gramtica tambm aceita pelo


reconhecedor.

Toda cadeia aceita pelo reconhecedor tambm gerada pela


gramtica.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

48 / 94

Linguagens

Exemplo
Exemplo 2.8
Considerem-se a gramtica G e o reconhecedor M, respectivamente definidos atravs
das linguagens gerada e aceita:
I
I

G | L1 (G) = { {a, b} | o primeiro smbolo de a}


M | L2 (M) = { {a, b} |
o primeiro smbolo de a e o ltimo smbolo b}

Portanto:
I

L1 = {a, aa, ab, aaa, aab, aba, abb, aaa...}

L2 = {ab, aab, abb, aaab, aabb, abab, abbb...}

fcil perceber que a condio (2) acima verificada, mas a condio (1) no. Por
exemplo, a cadeia ab L2 e ab L1 . Por outro lado, a cadeia aba L1 , porm
aba
/ L2 . Logo, L1 L2 e no se pode dizer que G e M sejam equivalentes.
Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

49 / 94

Linguagens

Metalinguagem

Conforme discutido mais adiante, as gramticas e os reconhecedores


so formas duais de representao de linguagens, ou seja, para cada
gramtica possvel obter um reconhecedor que aceite a linguagem
correspondente e vice-versa. particular notao utilizada para
representar uma linguagem, seja atravs de gramticas ou de
reconhecedores, d-se o nome de metalinguagem.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

50 / 94

Gramticas

Conceito

Tambm conhecidas como dispositivos generativos, dispositivos


de sntese, ou ainda dispositivos de gerao de cadeias, as
gramticas constituem sistemas formais baseados em regras de
substituio, atravs dos quais possvel sintetizar, de forma
exaustiva, o conjunto das cadeias que compem uma determinada
linguagem.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

51 / 94

Gramticas

Conceito

Assim como ocorre no caso das linguagens naturais, as linguagens


formais tambm podem ser especificadas atravs de gramticas a
elas associadas. No caso das gramticas das linguagens formais, que
constituem o objeto deste estudo, a analogia com as gramticas das
linguagens naturais muito grande. Tratam-se, as primeiras, de
conjuntos de regras que, quando aplicadas de forma recorrente,
possibilitam a gerao de todas as cadeias pertencentes a uma
determinada linguagem.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

52 / 94

Gramticas

Metalinguagens

Diferentemente das gramticas das linguagens naturais, que so


descritas por intermdio de linguagens tambm naturais (muitas vezes
a mesma que est sendo descrita pela gramtica), as gramticas das
linguagens formais so descritas utilizando notaes matemticas
rigorosas que visam, entre outros objetivos, evitar dvidas na sua
interpretao. Tais notaes recebem a denominao de
metalinguagens linguagens que so empregadas para definir
outras linguagens.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

53 / 94

Gramticas

Definio
Formalmente, uma gramtica G pode ser definida como sendo uma
qudrupla:
G = (V, , P, S)
onde:
I

V o vocabulrio da gramtica; corresponde a um conjunto


(finito e no-vazio) de smbolos;
o conjunto (finito e no-vazio) dos smbolos terminais da
gramtica; tambm denominado alfabeto;

P o conjunto (finito e no-vazio) de produes ou regras de


substituio da gramtica;

S a raiz (ou smbolo inicial) da gramtica, S V.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

54 / 94

Gramticas

Definio

Adicionalmente, define-se N = V como sendo o conjunto dos


smbolos no-terminais da gramtica. corresponde ao conjunto dos
smbolos que podem ser justapostos para compor as sentenas da
linguagem que se est definindo, e N corresponde ao conjunto dos
smbolos intermedirios (classes sintticas) utilizados na estruturao
e na gerao de sentenas, sem no entanto fazer parte das mesmas.
, N e P so conjuntos finitos e no-vazios. P o conjunto das
produes gramaticais, que obedecem forma geral:

Marcus Ramos (UNIVASF)

com V NV e V

LFA 2010-1

9 de junho de 2013

55 / 94

Gramticas

Definio

De fato, uma relao sobre os conjuntos V NV e V , uma vez


que:
P = {( , ) | ( , ) V NV V }
ou seja, P um subconjunto de V NV V .

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

56 / 94

Gramticas

Exemplo

Exemplo 3.1
Seja G1 = (V1 , 1 , P1 , S), com:
V1
1

=
=

{0, 1, 2, 3, S, A}
{0, 1, 2, 3}

N1
P1

=
=

{S, A}
{S 0S33, S A, A 12, A }

fcil verificar que G1 est formulada de acordo com as regras gerais acima
enunciadas para a especificao de gramticas.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

57 / 94

Gramticas

Forma sentencial

Denomina-se forma sentencial qualquer cadeia obtida pela aplicao


recorrente das seguintes regras de substituio:
1
2

S (a raiz da gramtica) por definio uma forma sentencial;


Seja uma forma sentencial, com e cadeias quaisquer de
terminais e/ou no-terminais da gramtica, e seja uma
produo da gramtica. Nessas condies, a aplicao dessa
produo forma sentencial, substituindo a ocorrncia de por ,
produz uma nova forma sentencial .

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

58 / 94

Gramticas

Derivao direta

Denota-se a substituio acima definida, tambm conhecida como


derivao direta, por:
G
O ndice G designa o fato de que a produo aplicada, no caso
, pertence ao conjunto de produes que define a gramtica G.
Nos casos em que a gramtica em questo puder ser facilmente
identificada, admite-se a eliminao de referncias explcitas a ela.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

59 / 94

Gramticas

Note-se a distino grfica e de significado que se faz entre o smbolo


empregado na denotao das produes da gramtica () e o
smbolo utilizado na denotao das derivaes ().

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

60 / 94

Gramticas

Derivao e derivao no-trivial

Uma seqncia de zero ou mais derivaes diretas, como, por


exemplo, ... chamada simplesmente derivao, e
pode ser abreviada como .
Derivaes em que ocorre a aplicao de pelo menos uma produo
so denominadas derivaes no-triviais, e so denotadas por
+ .

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

61 / 94

Gramticas

Sentena

Se, pela aplicao de uma derivao no-trivial raiz S de uma


gramtica, for possvel obter uma cadeia w formada exclusivamente de
smbolos terminais, diz-se que w, alm de ser uma forma sentencial,
tambm uma sentena, e denota-se a sua derivao por:
S + w

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

62 / 94

Gramticas

Substituies

Gramticas so sistemas formais baseados na substituio, em uma


forma sentencial, de uma cadeia, coincidente com o lado esquerdo de
uma regra de produo, pela cadeia correspondente ao lado direito da
mesma regra, visando com isso, ao final de uma seqncia de
substituies, a obteno de uma cadeia sobre . O processo de
substituio tem incio sempre a partir da raiz S da gramtica, e
finalizado assim que for obtida uma forma sentencial isenta de
smbolos no-terminais, isto , assim que se obtiver uma sentena.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

63 / 94

Gramticas

Exemplo
Exemplo 3.2
Considere-se a gramtica G1 , definida no Exemplo 3.1.
I

S por definio uma forma sentencial;

0S33 uma forma sentencial, pois S 0S33;

S 0S33 uma derivao direta;

00S3333 e 00A3333 so formas sentenciais, pois 0S33 00S3333 00A3333


atravs das produes S 0S33 e S A, aplicadas nesta ordem;

S + 00A3333 e S + 0S33 so exemplos de derivaes no-triviais;

00S3333 00S3333 e 0S33 00A3333 so exemplos de derivaes;

12 e 00123333 so exemplos de sentenas, pois ambas so formadas


exclusivamente por smbolos terminais e S A 12, ou seja, S + 12, e
S 0S33 00S3333 00A3333 00123333, ou seja, S + 00123333.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

64 / 94

Gramticas

Linguagem definida por uma gramtica


Ao conjunto de todas as sentenas w geradas por uma gramtica G
d-se o nome de linguagem definida pela gramtica G, ou
simplesmente L(G). Formalmente,
L(G) = {w | S + w}
Exemplo 3.3
Pela inspeo das produes da gramtica G1 do Exemplo 3.1, pode-se concluir que:
L1 (G1 ) = {0m 1n 2n 32m | m > 0 e (n = 0 ou n = 1)}
So exemplos de sentenas pertencentes a L1 : , 12, 033, 01233, 003333, 00123333
etc.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

65 / 94

Gramticas

Linguagem definida por uma gramtica

Como se pode perceber, diferentes seqncias de produes


aplicadas (nica) raiz da gramtica possibilitam a gerao das
diferentes (em geral, infinitas) sentenas da linguagem. Por outro lado,
muitas vezes h mais de uma alternativa de substituio para um
mesmo trecho de uma forma sentencial, ou, ainda, pode haver mais
de um trecho em uma mesma forma sentencial que pode ser objeto
de substituio pelo lado direito de alguma produo. Assim, a
identificao correta das sentenas de uma dada linguagem deve ser
feita levando-se em conta a possibilidade de ocorrncia de todos
esses fatores durante o processo de sntese de cadeias.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

66 / 94

Gramticas

Linguagem definida por uma gramtica

A completa identificao da linguagem gerada por uma determinada


gramtica uma tarefa que exige abstrao e alguma prtica na
manipulao das produes. Algumas gramticas, como o caso de
G1 , podem ser analisadas sem dificuldade. Contudo, na prtica,
podem ocorrer gramticas consideravelmente mais complexas.
Observe-se, a ttulo de ilustrao, o caso da gramtica G2
apresentada no Exemplo 3.4.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

67 / 94

Gramticas

Exemplo
Exemplo 3.4
Considere G2 = (V2 , 2 , P2 , S), com:
V2

= {a, b, c, S, B, C}

2
P2

= {a, b, c}
= {S aSBC, S abC, CB BC, bB bb, bC bc, cC cc}

A linguagem gerada por G2 {an bn cn | n > 1}. De fato, a seqncia de derivaes


iniciada com a regra S abC conduz gerao da sentena abc (S abC abc).
Por outro lado, seqncias iniciadas com a aplicao repetida i vezes da regra
S aSBC conduzem gerao da seguinte forma sentencial subseqente:
S i ai S(BC)i
A posterior aplicao da regra S abC faz com que:
ai S(BC)i ai abC(BC)i = ai+1 b(CB)i C
Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

68 / 94

Gramticas

Exemplo
Atravs da aplicao sucessiva da regra CB BC, obtm-se agora:
ai+1 b(CB)i C ai+1 bBi Ci C = ai+1 bBi Ci+1
Finalmente, a aplicao i vezes da regra bB bb faz com que todos os smbolos B
sejam substitudos por smbolos b:
ai+1 bBi Ci+1 i ai+1 bbi Ci+1 = ai+1 bi+1 Ci+1
A aplicao uma nica vez da regra bC bc substitui o primeiro smbolo da cadeia
de smbolos C pelo smbolo c:
ai+1 bi+1 Ci+1 ai+1 bi+1 cCi
Para terminar, a aplicao i vezes da regra cC cc substitui todos os demais
smbolos C por smbolos c:
ai+1 bi+1 cCi i ai+1 bi+1 cci = ai+1 bi+1 ci+1

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

69 / 94

Gramticas

Exemplo

A forma sentencial:
ai+1 bi+1 ci+1
gera, portanto, as sentenas aabbcc, aaabbbccc etc. A sentena aabbcc, por exemplo,
derivada da seguinte forma nessa gramtica:
S aSBC aabCBC aabBCC aabbCC aabbbcC aabbcc
pela aplicao, respectivamente, das produes:
S aSBC, S abC, CB BC, bB bb, bC bc e cC cc

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

70 / 94

Gramticas

Exerccio

Obter gramticas que geram as linguagens cujas sentenas


satisfazem s regras apresentadas a seguir. Considerar
= {a, b};
Repetir, considerando = {a, b, c}.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

71 / 94

Gramticas

Exerccio
I Comeam com aa;
I No comeam com aa;
I Terminam com bbb;
I No terminam com bbb;
I Contm a subcadeia aabbb;
I No contm a subcadeia aaa;
I Possuem comprimento maior ou igual a 3;
I Possuem comprimento menor ou igual a 3;
I Possuem comprimento diferente de 3;
I Possuem comprimento par;
I Possuem comprimento mpar;
I Possuem comprimento mltiplo de 4;
I Possuem quantidade par de smbolos a;
I Possuem quantidade mpar de smbolos b.
Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

72 / 94

Gramticas

Gramticas equivalentes
possvel definir uma mesma linguagem atravs de duas ou mais
gramticas distintas. Quando isso ocorre, diz-se que as gramticas
que definem a linguagem em questo so sintaticamente equivalentes
ou, simplesmente, equivalentes uma outra.
Exemplo 3.5
As gramticas G3 e G4 a seguir definidas so equivalentes:
G3
G4

=
=

({a, b, S}, {a, b}, {S aS, S a, S bS, S b, S aSb}, S)


({a, b, S, X}, {a, b}, {S XS, S X, X a, X b}, S)

Uma rpida anlise de G3 e G4 permite concluir que L3 (G3 ) = L4 (G4 ) = {a, b}+.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

73 / 94

Gramticas

Notao algbrica

So muitas as notaes (metalinguagens) utilizadas na definio


gramatical das linguagens formais e de programao. Nos exemplos
acima, bem como na maior parte do presente texto, utiliza-se a
notao algbrica. No entanto, diversas outras metalinguagens so
largamente empregadas para representar dispositivos generativos. A
escolha de uma ou outra metalinguagem varia de acordo com o tipo
da linguagem que estiver sendo definida, com o uso que se pretenda
fazer de tal representao formal e com as prprias preferncias
pessoais de quem a estiver elaborando.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

74 / 94

Gramticas

Outras notaes

exceo da notao algbrica, empregada para representar


diversos tipos de linguagens e utilizada com especial nfase no
estudo terico das propriedades das linguagens formais, outras
notaes, como, por exemplo, as Expresses Regulares, o BNF
(Backus-Naur Form ou Notao de Backus-Naur), a Notao de Wirth
(ou Expresses Regulares Estendidas) e os Diagramas de Sintaxe
(tambm conhecidos como Diagramas Ferrovirios), so bastante
populares e amplamente utilizadas na definio de linguagens de
programao de alto nvel.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

75 / 94

Linguagens, Gramticas e Conjuntos

Linguagens como conjuntos

Linguagens so conjuntos. Conjuntos que formam linguagens so


colees de cadeias construdas sobre um alfabeto, por exemplo,
atravs de gramticas. A fim de explicitar e facilitar o entendimento de
linguagens vistas como conjuntos, conveniente considerar-se uma
coleo finita de linguagens distintas, todas infinitas, definidas sobre
um mesmo alfabeto qualquer. Analisando-se as respectivas
gramticas, sugere-se que o leitor procure compreender de que modo
as linguagens foram definidas e, principalmente, verifique a relao
que existe entre elas.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

76 / 94

Linguagens, Gramticas e Conjuntos

Linguagens como conjuntos

Linguagens so conjuntos. Conjuntos que formam linguagens so


colees de cadeias construdas sobre um interessante verificar:
estas linguagens possuem elementos (sentenas) em comum? Qual
a sua interseco? Alguma dessas linguagens subconjunto de
outra? Superconjunto? Subconjunto prprio? So inmeras as
possibilidades. O importante desenvolver a percepo de que
linguagens so conjuntos. Isso facilitar o estudo de novas operaes
sobre linguagens, e tambm de suas propriedades.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

77 / 94

Linguagens, Gramticas e Conjuntos

Exemplo

Exemplo 4.1
A gramtica G0 = ({a, b, S}, {a, b}, {S aS, S bS, S }, S) tal que
L0 (G0 ) = .
Substituindo a regra S pelas regras S a e S b, em G, obtm-se uma nova
gramtica G1 = ({a, b, S}, {a, b}, {S aS, S bS, S a, S b}, S), de tal forma
que agora L1 (G1 ) = + .
A linguagem L2 , formada por cadeias sobre = {a, b}, de tal modo que todas elas
sejam iniciadas pelo smbolo a, gerada pela gramtica
G2 = ({a, b, S, X}, {a, b}, {S aX, X aX, X bX, X }, S). So exemplos de
cadeias pertencentes a L2 : a, abb, abaaa, aabbbba, aaa etc.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

78 / 94

Linguagens, Gramticas e Conjuntos

Exemplo
Por outro lado, considere-se a linguagem L3 , composta por cadeias sobre = {a, b},
de tal forma que todas elas sejam iniciadas com o smbolo a e terminadas com o
smbolo b. Uma possvel gramtica que gera L3
G3 = ({a, b, S, X}, {a, b}, {S aX, X aX, X bX, X b}, S). Perceba a sutil
diferena que existe entre G2 e G3 .
Em seguida, considere-se a linguagem L4 que compreende todas as cadeias sobre
= {a, b} que possuam exatamente dois smbolos b (nem mais, nem menos). So
exemplos: bb, bab, abb, aaaaabaab etc. L4 gerada pela gramtica
G4 = ({a, b, S, X}, {a, b}, {S XbXbX, X aX, X }, S).
Finalmente, a linguagem L5 definida pelas cadeias sobre = {a, b}, de tal forma
que todas elas sejam iniciadas com o smbolo b e contenham um nico smbolo b.
So exemplos b, ba, baa, baaa etc. A linguagem L5 gerada por
G5 = ({a, b, S, X}, {a, b}, {S bX, X aX, X }, S).
Esquematicamente, a relao entre as linguagens L0 , L1 , L2 , L3 , L4 e L5 pode ser
observada na Figura 5 ( bom ter em mente que linguagens so conjuntos).

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

79 / 94

Linguagens, Gramticas e Conjuntos

Exemplo

Figura 5: As linguagens do Exemplo 4.1 como conjuntos

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

80 / 94

Linguagens, Gramticas e Conjuntos

Exemplo
Observe-se a relao de incluso prpria entre as linguagens estudadas. A cadeia
ilustra a incluso prpria de L1 em L. A cadeia bbba, de L2 em L1 . Atravs da cadeia
abaa, exemplifica-se a incluso prpria de L3 em L2 . Sobre L4 pode-se apenas dizer
que est includa propriamente em L1 .
A cadeia abb pertence simultaneamente s linguagens L0 , L1 , L2 , L3 e L4 . A cadeia
abaabab pertence a L0 , L1 , L2 e L3 apenas. A cadeia ababa, somente s linguagens
L0 , L1 , L2 e L4 , e assim por diante.
Cumpre, novamente, notar que:
I

A maior linguagem que pode ser definida sobre {a, b} {a, b}, que, neste
caso, corresponde a L0 ;

O conjunto de todas as linguagens que podem ser definidas sobre {a, b} dado

por 2{a,b} . Assim, L0 , L1 , L2 , L3 , L4 e L5 pertencem, todas, a 2{a,b} . Em outras

{a,b}
palavras, cada uma dessas linguagens um elemento de 2
, que por sua vez
um conjunto infinito.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

81 / 94

Reconhecedores

Conceito

Conhecidos tambm como dispositivos cognitivos, dispositivos de


aceitao, aceitadores sintticos ou simplesmente autmatos, os
reconhecedores so sistemas formais capazes de aceitar todas as
sentenas que pertenam a uma determinada linguagem, rejeitando
todas as demais. Por esse motivo, constituem uma forma alternativa
s gramticas para a representao finita de linguagens.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

82 / 94

Reconhecedores

Organizao geral
Os reconhecedores esboados em sua forma geral na Figura 6
apresentam quatro componentes fundamentais: uma memria (fita)
contendo o texto de entrada do reconhecedor, um cursor, que indica o
prximo elemento da fita a ser processado, uma mquina de estados
finitos, sem memria, e uma memria auxiliar opcional.

Figura 6: Organizao de um reconhecedor genrico

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

83 / 94

Reconhecedores

Fita de entrada
A fita de entrada contm a cadeia a ser analisada pelo reconhecedor.
Ela dividida em clulas, e cada clula pode conter um nico smbolo
da cadeia de entrada, pertencente ao alfabeto de entrada escolhido
para o reconhecedor. A cadeia de entrada disposta da esquerda
para a direita, sendo o seu primeiro smbolo colocado na posio mais
esquerda da fita.
Dependendo do tipo de reconhecedor considerado, a fita (ou o
conjunto de fitas) de entrada pode apresentar comprimento finito ou
infinito. Neste ltimo caso, a fita pode ter ou no limitao esquerda
e/ou direita. A cadeia de entrada registrada na fita de entrada pode
estar delimitada por smbolos especiais, no pertencentes ao alfabeto
de entrada, sua esquerda e/ou sua direita, porm isso no
obrigatrio.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

84 / 94

Reconhecedores

Cursor
A leitura dos smbolos gravados na fita de entrada feita atravs de
um cabeote de acesso, normalmente denominado cursor, o qual
sempre aponta o prximo smbolo da cadeia a ser processado. Os
movimentos do cursor so controlados pela mquina de estados, e
podem, dependendo do tipo de reconhecedor, ser unidirecionais
(podendo deslocar-se para um lado apenas, tipicamente para a
direita) ou bidirecionais (podendo deslocar-se para a esquerda e para
a direita). Determinados tipos de reconhecedores utilizam o cursor
no apenas para lerem os smbolos da fita de entrada, mas tambm
para escreverem sobre a fita, substituindo smbolos nela presentes
por outros, de acordo com comandos determinados pela mquina de
estados.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

85 / 94

Reconhecedores

Mquina de estados

A mquina de estados funciona como um controlador central do


reconhecedor, e contm uma coleo finita de estados, responsveis
pelo registro de informaes colhidas no passado, mas consideradas
relevantes para decises futuras, e transies, que promovem as
mudanas de estado da mquina em sincronismo com as operaes
efetuadas atravs do cursor sobre a fita de entrada. Alm disso, a
mquina de estados finitos pode utilizar uma memria auxiliar para
armazenar e consultar outras informaes, tambm coletadas ao
longo do processamento, que sejam eventualmente necessrias ao
completo reconhecimento da cadeia de entrada.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

86 / 94

Reconhecedores

Memria auxiliar
A memria auxiliar opcional, e torna-se necessria apenas em
reconhecedores de linguagens que apresentam uma certa
complexidade. Normalmente, ela assume a forma de uma estrutura de
dados de baixa complexidade, como, por exemplo, uma pilha (no caso
do reconhecimento de linguagens livres de contexto). As informaes
registradas na memria auxiliar so codificadas com base em um
alfabeto de memria, e todas as operaes de manipulao da
memria auxiliar (leitura e escrita) fazem referncia apenas aos
smbolos que compem esse alfabeto. Os elementos dessa memria
so referenciados atravs de um cursor auxiliar que, eventualmente,
poder coincidir com o prprio cursor da fita de entrada. Seu tamanho
no obrigatoriamente limitado e, por definio, seu contedo pode
ser consultado e modificado.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

87 / 94

Reconhecedores

Caractersticas dos componentes

O diagrama abaixo resume os componentes de um reconhecedor


genrico e as diversas formas como cada um deles pode se
apresentar:


Mquina de Estados Finita

Limitada / No limitada

Leitura apenas / Leitura e escrita


Fita de entrada + Cursor
Reconhecedor

Direita apenas / Direita e esquerda

No limitada

Memria auxiliar + Cursor


Leitura e escrita

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

88 / 94

Reconhecedores

Configurao

A operao de um reconhecedor baseia-se em uma seqncia de


movimentos que o conduzem, de uma configurao inicial nica, para
alguma configurao de parada, indicativa do sucesso ou do fracasso
da tentativa de reconhecimento da cadeia de entrada.
Cada configurao de um autmato caracterizada pela qudrupla:
1

Estado;

Contedo da fita de entrada;

Posio do cursor;

Contedo da memria auxiliar.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

89 / 94

Reconhecedores

Configurao inicial

A configurao inicial de um autmato definida como sendo


aquela em que as seguintes condies so verificadas:
1

Estado: inicial, nico para cada reconhecedor;

Contedo da fita de entrada: com a cadeia completa a ser


analisada;

Posio do cursor: apontando para o smbolo mais esquerda da


cadeia;

Contedo da memria auxiliar: inicial, predefinido e nico.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

90 / 94

Reconhecedores

Configurao final
A configurao final de um autmato aquela na qual as seguintes
condies so obedecidas:
1

Estado: algum dos estados finais, que no so necessariamente


nicos no reconhecedor;

Contedo da fita de entrada: inalterado ou alterado, em relao


configurao inicial, conforme o tipo de reconhecedor;

Posio do cursor: apontando para a direita do ltimo smbolo da


cadeia de entrada ou apontando para qualquer posio da fita,
conforme o tipo de reconhecedor;

Contedo da memria auxiliar: final e predefinido, no


necessariamente nico ou idntico ao da configurao inicial, ou
apenas indefinido.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

91 / 94

Reconhecedores

Movimentao

A especificao de uma possibilidade de movimentao entre uma


configurao e outra denominada transio. A movimentao do
autmato da configurao corrente para uma configurao seguinte
feita, portanto, levando-se em conta todas as transies passveis de
serem aplicadas pelo reconhecedor configurao corrente.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

92 / 94

Reconhecedores

Movimentao
Uma transio mapeia triplas formadas por:
I

Estado corrente;

Smbolo correntemente apontado pelo cursor da fita de entrada;

Smbolo correntemente apontado pelo cursor da memria auxiliar;

em triplas formadas por:


I

Prximo estado;

Smbolo que substituir o smbolo correntemente apontado pelo


cursor da fita de entrada e o sentido do deslocamento do cursor;

Smbolo que substituir o smbolo correntemente apontado pelo


cursor da memria auxiliar.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

93 / 94

Reconhecedores

Linguagem

Diz-se que um autmato aceita (ou reconhece) uma cadeia se lhe for
possvel atingir alguma configurao final a partir de sua configurao
inicial nica, atravs de movimentos executados sobre tal cadeia.
Caso contrrio, diz-se que o autmato rejeita a cadeia. A maneira
como tais configuraes sucedem umas s outras durante o
reconhecimento (ou aceitao) da cadeia de entrada define uma
caracterstica fundamental dos autmatos, conforme explicado a
seguir.
Seja o autmato determinstico ou no-determinstico, a linguagem
por ele aceita (ou definida) corresponde ao conjunto de todas as
cadeias que ele aceita.

Marcus Ramos (UNIVASF)

LFA 2010-1

9 de junho de 2013

94 / 94

Anda mungkin juga menyukai