Você está na página 1de 89

Linguagens Formais

Definies Prvias
Linguagens
Gramtica



Fonte: http://www.icmc.sc.usp.br/~mdgvnune/download/sce5832/Teoria.html
Linguagens Formais
Definies Prvias
Alfabeto ou Vocabulrio: Conjunto finito no vazio de
smbolos. Smbolo um elemento qualquer de um
alfabeto.
Ex: {a,b}
{0,1,2,3,4,5,6,7,8,9}

Cadeia: Concatenao de smbolos de um alfabeto.
Define-se como cadeia vazia ou nula uma cadeia que
no contm nenhum smbolo.
Ex: aab
123094
cadeia nula
Linguagens Formais
Comprimento de cadeia: Nmero de smbolos de uma
cadeia.
Ex: |aab| = 3
|123094|=6
|,=0

Concatenao de cadeias: Define-se a concatenao
z de uma cadeia x com uma cadeia y, como sendo a
concatenao dos smbolos de ambas as cadeias,
formando a cadeia xy. |z| = |x| + |y|
Ex: x = abaa; y = ba z = abaaba
x = ba; y = z = ba

Definies Prvias
Linguagens Formais
Definies Prvias
Produto de alfabetos: o produto cartesiano de
alfabetos.
Ex: V1 = {a,b} V2 = {1, 2, 3} V1.V2 = V1xV2 =
{a1, a2, a3, b1, b2, b3}
Observe que V1.V2 = V2.V1

Exponenciao de alfabetos: So todas as cadeias de
comprimento n sobre V (V
n
). V
0
={}, V
1
=V, V
n
=V
n-1
.V
Ex: V = {0, 1}
V
3
= V
2
.V = (V.V).V = {00, 01, 10, 11}.{0, 1} = {000,
001, 010, 011, 100, 101, 110, 111}
Linguagens Formais
Definies Prvias
Fechamento (Clausura) de um Alfabeto: Seja A um
alfabeto, ento o fechamento de A definido como
A
*
= A
0
A
1
A
2
... A
n
...

Portanto A
*
= conjunto das cadeias de qualquer
comprimento sobre o alfabeto a.
Ex: A = {1}
A
*
= {, 1, 11, 111, ...}
Fechamento Positivo de A: A
+
= A
*
- {}


Linguagens Formais
Linguagens
Linguagem uma coleo de cadeias de smbolos, de
comprimento finito. Estas cadeias so denominadas
sentenas da linguagem, e so formadas pela
justaposio de elementos individuais, os smbolos ou
tomos da linguagem.

Linguagens Formais
Linguagens
Ex: {ab, bc} ( linguagem formada pelas cadeias ab e
bc)
{ab
n
,a
n
b; n=0} ( linguagem formada por todas as
cadeias que comeam com "a" seguido de um nmero
qualquer de "b"'s ou comeam com um nmero qualquer
de "a"'s seguidos de um "b", por exemplo ab, abb,
aab, aaab, ...)
Linguagens Formais
Linguagens
Mtodos de Representao de Linguagens

Uma linguagem pode ser representada atravs de trs
mecanismos bsicos:
1) enumerao das cadeias de smbolos que formam as
suas sentenas (somente linguagens finitas podem ser
representadas por este mtodo)
2) atravs de um conjunto de leis de formao das
cadeias (ao conjunto de leis de formao d-se o
nome de Gramtica)
3) atravs de regras de aceitao de cadeias (s
regras de aceitao d-se o nome de Reconhecedor)
Linguagens Formais
Linguagens
Enumerao

Enumerao das cadeias de smbolos que formam as
suas sentenas: todas as sentenas da linguagem
aparecem explicitamente na enumerao, e a deciso
acerca da pertinncia ou no de uma cadeia
linguagem se faz por meio de uma busca da cadeia em
questo no conjunto de sentenas da linguagem;

Exemplo: L = {a, b, ab, ba} ( linguagem formada pelas
cadeias a, b, ab e ba)
Linguagens Formais
Linguagens
Leis de Formao

Atravs de um conjunto de leis de formao das
cadeias (ao conjunto de leis de formao d-se o
nome de Gramtica): dada uma cadeia de smbolos, s
possvel afirmar que tal cadeia pertence linguagem
se for possvel, aplicando-se as leis de formao que
compem a gramtica da linguagem, derivar
(sintetizar) a cadeia em questo. Ao processo de
obteno de uma sentena a partir da gramtica d-
se o nome de derivao da sentena.

Linguagens Formais
Linguagens
Exemplo:

G = ( {A, B}, {0, 1}, P, A)

P: A 0A
A B
B 1B
B

Linguagens Formais
Linguagens
Exemplo:

G = ( {A, B}, {0, 1}, P, A)

P: A 0A
A B
B 1B
B

Resp.: L(G) = {0
n
1
m
; n, m=0}
Linguagens Formais
Linguagens
Regras de aceitao de cadeias

Atravs de regras de aceitao ou reconhecimento de
cadeias (reconhecedor ou autmato): para decidir se
uma cadeia uma sentena da linguagem, basta
aplicar a ela as regras de aceitao, as quais devero
fornecer a deciso acerca da pertinncia da cadeia
linguagem.
Linguagens Formais
Linguagens
Exemplo:

M = ({A, B, {0, 1}, f, A, {B})

f : f(A,0) A
f(A, 1) B
f(B, 1) B
f(B, 0) A

A Linguagem reconhecida a de cadeias de 0's e 1's,
terminando necessariamente com 1.
Linguagens Formais
Gramticas
Formalmente as gramticas, so caracterizadas como
qudruplas ordenadas

G = ( Vn, Vt, P, S)

onde:
Vn representa o vocabulrio no terminal da
gramtica. Este vocabulrio corresponde ao conjunto
de todos os smbolos dos quais a gramtica se vale
para definir as leis de formao das sentenas da
linguagem.
Linguagens Formais
Gramticas
Vt o vocabulrio terminal, contendo os smbolos que
constituem as sentenas da linguagem. D-se o nome
de terminais aos elementos de Vt.

P representa o conjunto de todas as leis de formao
utilizadas pela gramtica para definir a linguagem.
Para tanto, cada construo parcial, representada por
um no-terminal, definida como um conjunto de
regras de formao relativas definico do no-
terminal a ela referente. A cada uma destas regras
de formao que compem o conjunto P d-se o nome
de produo da gramtica.

Linguagens Formais
Gramticas
Cada produo P tem a forma:

o | o e (Vn U Vt)
+
; | e (Vn U Vt)*


S Vn denota a principal categoria gramatica de G;
dito o smbolo inicial ou o axioma da gramtica. Indica
onde se inicia o processo de gerao de sentenas.

Ex.1: G = ({S, A, B{, {a, b}, P, S)
P: S => AB
A => a
B => b
Linguagens Formais
Def1. Uma cadeia o | gera diretamente () uma cadeia o o | se
( o) e P; o, | (Vn U Vt)* ; (Vn U Vt)
+

No Ex.1.: aB ab; S AB

Def2. Uma cadeia o gera (- ) uma cadeia | se

-
1
,
2
,...
n
, tal que o =
1

2
...
n
= |

, n> 0.


Se n = 0 : o = | portanto o - o para o
No Ex.1.: S - ab; S - aB; AB - ab; ab - ab

Def3. Uma cadeia o e (Vn Vt)
*
uma forma sentencial de G se S - o ou
seja, o um embrio para uma cadeia gerada pela gramtica.

No Ex.1: aB, AB, Ba, S, ab so formas sentenciais.
Linguagens Formais
Uma forma sentencial, o, uma sentena de G se S - o e o e Vt
*
.
Ou seja, as cadeias geradas pela gramtica so as sentenas de
G.

Def4. A Linguagem L gerada por uma gramtica
G definida como o conjunto de cadeias
geradas por G. Ou seja,

L(G) = {x Vt
*
| S - x} ou {x|x sentena de G}


Linguagens Formais
Gramticas
Exemplo:

Gramtica G1 = (V1, S1, P1, A)
onde:
V1 = {A, B}
S1 = {0, 1}
P1:
A 0A
A B
B 1B
B

Exerccio: Verifique que L(G) = {0
n
1
m
}
Faa a rvore de derivao para x=00111
Linguagens Formais
Gramticas
Def5. Duas gramticas G1 e G2 so equivalentes sse L(G1) =
L(G2)

Def6. Uma sentena ambgua se - duas ou mais seqncias de
derivao que a define.


Def7. Uma gramtica ambgua se possui alguma sentena
ambgua.

Ex2. G: S => A B
A => A A | B | a
B => B c d | A

Verifique se x= aaacd ambgua.
Linguagens Formais
Gramticas
At este ponto no foi imposta qualquer restrio
sobre a gramtica ou sobre as produes que denotam
as leis de formao da linguagem que est sendo
definida. As gramticas gerais tm limitaes em
relao sua aplicabilidade no contexto do estudo dos
compiladores, devido s dificuldades que acarretam em
seu tratamento, sendo que as linguagens de
programao de interesse no exigem toda a
generalidade que as gramticas gerais definidas acima
so capazes de oferecer.
Linguagens Formais
Gramticas
Torna-se atraente o estudo de casos particulares, de
aplicao mais restrita, porm suficiente para resolver
os problemas levantados ao se projetar compiladores
para linguagens de interesse. Sendo assim, dividimos
as gramticas em quatro classes, que sero vistas a
seguir.
Linguagens Formais
Gramticas
Classes Gramaticais

Conforme as restries impostas ao formato das
produes de uma gramtica, a classe de linguagens
que tal gramtica gera varia correspondentemente. A
teoria mostra que h quatro classes de gramticas
capazes de gerar quatro classes correspondentes de
linguagens, de acordo com a denominada Hierarquia de
Chomsky.

Linguagens Formais
Gramticas
Gramticas com Estrutura de Frase ou Tipo 0

Gramticas Sensveis ao Contexto ou Tipo 1

Gramticas Livres de Contexto ou Tipo 2

Gramticas Regulares ou Tipo 3
Linguagens Formais
Gramticas GEF
Gramticas com Estrutura de Frase ou Tipo 0

So aquelas s quais nenhuma limitao imposta.
Obviamente, todo o universo das linguagens que se
pode definir atravs dos mecanismos generativos
definidos pelas gramticas corresponde exatamente ao
conjunto das linguagens que esta classe de gramticas
capaz de gerar. Esta classe de gramticas a
hierarquia de Chomsky classifica como sendo a das
Gramticas com Estrutura de Frase (GEF) ou Tipo 0.
Para essas gramticas, as produes so todas da
forma:
o |, o e (Vn U Vt)
+
, | e (Vn U Vt)*.
Linguagens Formais
Gramticas GEF
Exemplo:

G = ({A, B, C}, {a, b}, P, A)

P:
A BC
BC CB
B b
C a

Linguagens Formais
Gramticas GEF
Exemplo:

G = ({A, B, C}, {a, b}, P, A)

P: A BC
BC CB
B b
C a

Resp.: L(G) = {ba, ab}
Linguagens Formais
Linguagens LEF
Definio 0: As linguagens geradas pelas
Gramticas com Estrutura de Frase ou
do Tipo 0 so chamadas de Linguagens
com Estrutura de Frase (LEF) ou
Linguagens do Tipo 0.

Linguagens Formais
Gramticas GSC
Gramticas Sensveis ao Contexto ou Tipo 1

Se s regras de substituio for imposta a restrio
de que nenhuma substituio possa reduzir o
comprimento da forma sentencial qual a substituio
aplicada, cria-se uma classe de gramticas ditas
sensveis ao contexto. As gramticas que obedecem a
estas restries pertencem, na hierarquia de
Chomsky, ao conjunto das Gramticas Sensveis ao
Contexto (GSC) ou do Tipo 1.

Linguagens Formais
Gramticas GSC
Para as GSC, as produes so todas da forma

o |, com |o| s ||| onde o, | e (Vn U Vt)
+


(h uma exceo permitida: S , se S no ocorre do
lado de direto de nenhuma regra)

Linguagens Formais
Gramticas GSC

Essas gramticas so chamadas de sensveis ao
contexto por tornarem possvel a definio de regras
do tipo:
|A |o,

onde A eVn, o e(Vn U Vt)
+
, |, e(Vn U Vt)
*

Ou seja, A, no contexto de | e , substitudo por o.



Linguagens Formais
Gramticas GSC
Exemplo:

G = ({S, B, C}, {a, b, c}, P, S)
P : S aSBC
S aBC
CB BC
aB ab
bB bb
bC bc
cC cc

Resp.: L(G) = {a
n
b
n
c
n
| n>=1}

Linguagens Formais
Linguagens LSC
Definio 1: As linguagens geradas pelas
Gramticas Sensveis ao Contexto ou do Tipo 1
so chamadas de Linguagens Sensveis ao
Contexto (LSC) ou Linguagens do Tipo 1.
Resultado 1:
Toda gramtica do tipo 1 tambm do tipo 0.
Corolrio 1:
Toda LSC tambm uma LEF (mas nem toda LEF
LSC).
Linguagens Formais
Gramticas GLC
Gramticas Livres de Contexto ou Tipo 2

As Gramticas Livres de Contexto (GLC) ou do Tipo 2
so aquelas cujas regras de produo so da forma:

A o onde A e Vn, o e (Vn U Vt)*

Ou seja, quando do lado esquerdo da regra h apenas
um smbolo no-terminal.
Linguagens Formais
GLC e LLC
Definio 2: As linguagens geradas pelas Gramticas Livres de
Contexto ou do Tipo 2 so chamadas de Linguagens Livres de
Contexto (LLC) ou Linguagens do Tipo 2.

Resultado 2:
Nem toda gramtica do tipo 2 tambm do tipo 1. Isso acontece
porque as regras da forma A no satisfazem a restrio de
comprimento, pois |A| > | |, j que 1 > 0.

Resultado 2:
Apesar do Resultado 2, possvel mostrar que toda LLC tambm
uma LSC (mas nem toda LSC uma LLC).

(qualquer GLC pode ser transformada em uma gramtica equivalente
original que satisfaz simultaneamente as definies de GLC e de
GSC)
Linguagens Formais

BNF
Outra maneira de se representar as Gramticas Livres de Contexto
atravs da Forma Normal de Backus.

BNF
Neste caso, => substitudo por ::= e os no terminais so ladeados por
< >

No caso de repeties de lado esquerdo:
<A> ::= a1
<A >::= a2
:
<A> ::= an
escreve-se: <A> ::= a1| a2| ...| an

Os smbolos <,> , :, =, | formam a metalinguagem, ou seja, so smbolos que
no fazem parte da linguagem mas ajudam a descrev-la.

Linguagens Formais
GLC e LLC
Exemplo:
G = {Vn, Vt, P, S} onde:
Vn = {<sentena, <sn, <sv, sujeito, <predicado, <artigo, <substantivo, <verbo,
<complemento}
Vt = {o, a, peixe, comeu, isca}
S = <sentena
P =
1. <sentena> ::= <sn><sv>
2. <sn> ::= <artigo><substantivo>
3. <sv> ::= <verbo><complemento>
4. <complemento> ::= <artigo><substantivo>
5. <artigo> ::= o|a
6. <verbo> :: = mordeu
7. <substantivo> ::= peixe|isca

Exerccios:
a) verifique se a cadeia a isca mordeu o peixe uma sentena de L(G).
b) D exemplos de sentenas de L(G), construindo rvores de derivao sinttica.
Linguagens Formais
GLC e LLC
Exemplo 1:

G = ({S}, {a, +, *, (, )}, P, S)
P :
S S * S
S S + S
S (S)
S a

L(G) = conjunto das expresses aritmticas envolvendo
*, +, ( ) e a.

Um exemplo de cadeia formada por esta gramtica
a * (a + a).
Linguagens Formais
GLC e LLC
Exemplo 2:
G = ({S, A, B}, {a, b}, P, S)
P : S aB | bA
A a | aS | bAA
B b | bS | aBB

L(G) = { x e Vt
+
| x contm nmero de a's igual ao
nmero de b's }

Exerccio: mostre que isso verdade, por induo
sobre o comprimento de uma sentena.
Hiptese Indutiva: para todo w e Vt*,
S * w sse w consiste de = no. de as e bs.
A * w sse w tem um a a mais que bs.
B * w sse w tem um a b mais que as.
Linguagens Formais
GLC e LLC
Exemplo 3: Processo inverso: dada L(G), definir G.

L(G) = {0
n
1
2n
0
m
| n 0, m 0 }


Linguagens Formais
GLC e LLC
Exemplo 3: Processo inverso: dada L(G), definir G.

L(G) = {0
n
1
2n
0
m
| n 0, m 0 }

Resp.:
G= ({S, A, B}, {0, 1}, P, A)
P:
S AB
A 0A11 |
B 0B |

Linguagens Formais
GLC e LLC
Exemplo 4:

L(G) = {a
m
b
n
| m 0, n 0 }



Linguagens Formais
GLC e LLC
Exemplo 4:

L(G) = {a
m
b
n
| m0, n0 } ou a*b*

Resp.:
G=({S, A, B}, {a, b}, P, S)
P: S AB
A aA | a
B bB | b

Obs.: Caso geral:
Se S oS|| ento L(G) = o
-
|

Linguagens Formais
GLC e LLC
Exemplo 5:

L(G) = {a
n
b
n
| n 1}


Linguagens Formais
GLC e LLC
Exemplo 5:

L(G) = {a
n
b
n
| n 1}

S aSb | ab


Linguagens Formais
GLC e LLC
Exemplo 6:

G = ({E, T, F}, { i, +, -, *, /, ^}, P, E)
P :
E T | E + T | E - T
T F | T * F | T / F
F i | F ^ i
(recursiva esquerda)

Verifique a ordem de precedncia dos operadores via
rvore de derivao sinttica:
i - i * i + i ^ i
i + i * i
i * i + i
i + i + i
Linguagens Formais
Precedncia Operadores
Precedncia de Operadores - Concluindo:
Operadores que aparecem em regras mais
distantes do axioma S tm maior precedncia
do que os que aparecem mais prximo.

^ precede * e /, que precedem + e
* e / tm igual precedncia
+ e tm igual precedncia

Linguagens Formais
Precedncia Operadores
Operadores que esto a uma mesma distncia
do axioma (portanto de igual precedncia) tm
prioridade definida pela recursividade do no-
terminal do lado esquerdo da regra: se
esquerda, primeiro o da esquerda; se direita,
primeiro o da direita.

i + i i ((i + i) i)
i + i * i / i (i + ((i * i) / i))
i ^ i ^ i - i (((i ^ i) ^ i) i)
Linguagens Formais
Gramticas GR
Gramticas Regulares ou Tipo 3

Aplicando-se mais uma restrio sobre a forma das
produes, pode-se criar uma nova classe de
gramticas, as Gramticas Regulares (GR), de grande
importncia no estudo dos compiladores por possurem
propriedades adequadas para a obteno de
reconhecedores simples. Nas GRs, as produes so
restritas s formas seguintes:
A aB
A a
A
onde A,B e Vn e a e Vt
Linguagens Formais
Gramticas GR
Definio3: As linguagens geradas pelas
Gramticas Regulares ou do Tipo 3 so chamadas
de Linguagens Regulares (LR) ou Linguagens do
Tipo 3.
Resultado 3:
Toda gramtica do tipo 3 tambm do tipo 2.
Corolrio 3:
Toda LR tambm uma LLC (mas nem toda LLC
LR).
Linguagens Formais
Gramticas GR
Exemplo 1:

G = ({S}, {a, b}, P, S)
P =
S aS
S b



Linguagens Formais
Gramticas GR
Exemplo 1:

G = ({S}, {a, b}, P, S)
P =
S aS
S b
Resp.: L(G) = {a
n
b; n 0} ou a*b

Linguagens Formais
Gramticas GR
Exemplo 2:

G = ({S, A}, {a, b, c}, P, S)
P =
S aS | bA
A c



Linguagens Formais
Gramticas GR
Exemplo 2:

G = ({S, A}, {a, b, c}, P, S)
P =
S aS | bA
A c
Resp.: L(G) = {a
n
bc | n 0}

Linguagens Formais
Gramticas GR
Exemplo 3:

G = ( {<Dig>, <Int>}, {+, -, 0, ..., 9}, P, <Int>)
P = <Int> ::= +<Dig> | -<Dig>
<Dig> ::= 0<Dig> | 1<Dig>|...| 9<Dig> | 0 | 1 | 2
|...|9


Linguagens Formais
Gramticas GR
Exemplo 3:

G = ( {<Dig>, <Int>}, {+, -, 0, ..., 9}, P, <Int>)
P = <Int> ::= +<Dig> | -<Dig>
<Dig> ::= 0<Dig> | 1<Dig>|...| 9<Dig> | 0 | 1 | 2
|...|9
Resp.:
L(G) = conj. nmeros inteiros com sinal [0..9]
+


Exerccio: Modifique a gramtica acima para que ela
tambm gere os nmeros inteiros com sinal positivo
optativo. Qual o tipo da gramtica resultante?
Linguagens Formais
Expresses Regulares
As Linguagens Regulares se caracterizam por serem
expressas por Expresses Regulares

Def. (Expresso Regular)

a) qualquer smbolo, inclusive uma Expresso
Regular (ER).

b) se x ER, x* ER (fechamento recursivo e
transitivo); x
+
ER (fechamento transitivo);
(x) ER.

c) se x e y so ER, xy ER (concatenao) e x|y
ER (unio de conjuntos).
Linguagens Formais
Expresses Regulares
Exemplo:

(ab)* = {, ab, abab, ...abab...ab}

(a|b)* = {, a...a, b...b, aba...ba, ...ba...bb...}

(ab|cd)f = {abf, cdf}
Linguagens Formais
Expresses Regulares
Notaes Adicionais

+ "uma ou mais instncias de"
r * = r+ |
r
+
= rr*

? "zero ou uma instncia de"
r? = r |

Linguagens Formais
Expresses Regulares
Exemplo:

numero digitos fracao_opcional expon_opcional
digito 0 | 1 | .. |9
digitos digito+
fracao_opcional (.digitos)?
expon_opcional (E (+ | -)? digitos)?

Exemplos de sentenas da linguagem gerada:

3 145.34E-2 10E2
Linguagens Formais
Expresses Regulares
Exerccio: Reescreva a gramtica anterior, eliminando
a meta-linguagem introduzida. Qual o tipo da
gramtica resultante?

Dica para descobrir se uma linguagem regular: se
for possvel descrev-la como uma expresso regular,
ento ela regular. Ou, claro, exibir uma GR que a
gere.

Quando se classifica uma linguagem, deseja-se saber
qual a menor classe a que ela pertence. Ou seja,
uma LR tambm LLC, LSC e LEF. No entanto,
mais til saber que ela LR, pois isso indica que um
reconhecedor dessa linguagem pode ser o mais simples
possvel.
Linguagens Formais
LR
Propriedades de Linguagens Regulares

O conjunto das LRs fechado sob as operaes de:

Concatenao: a concatenao de LRs resulta em
LR.
Unio: a unio de LRs resulta em LR.
Clausura: o fechamento (*) de LR resulta em LR.
Interseco: a interseco de LRs resulta em LR.
Complemento: o complemento (E* - L) de LR resulta
em LR.

Vamos mostrar apenas os 3 primeiros casos.
Linguagens Formais
LR
Concatenao de Linguagens Regulares

Dadas duas Gramticas Regulares G1 e G2, pode-se
construir uma Gramtica Regular G3, tal que:

L(G3) = L(G1) . L(G2)

L1 . L2 = { xy | x e L1, y e L2}
Linguagens Formais
LR
Processo: Se S1 e S2 so os axiomas de G1 e G2,
simplesmente substitumos todas as produes A a
(*)

em G1 por A aS2, e, ento, colocamos todas as
produes juntas, formando G3. O smbolo inicial
S1.

(*) se a = ento A S2, deixando de ser uma
produo regular. Porm, como G2 regular, basta
substituir A S2, por A o; para todo o tal que S2
o.

Linguagens Formais
LR

G1:
S1 0A
S1 1B
S1
A 1
B 2



Linguagens Formais
LR

G1:
S1 0A
S1 1B
S1
A 1
B 2

Resp.: L(G1) = {01, 12, }

Linguagens Formais
LR

G2:
S2 0
S2 1C
S2 0S2
C 0

Linguagens Formais
LR

G2:
S2 0
S2 1C
S2 0S2
C 0

Resp.:
L(G2) = {0, 10, 00, 010, 00...0, 00...010} = 0
*
(10 | 0)
Linguagens Formais
LR

G3:
S1 0A S1 1B S1 0 S1 1C
S1 0S2
A 1S2
B 2S2
S2 0 S2 1C S2 0S2
C 0

Linguagens Formais
LR

G3:
S1 0A S1 1B S1 0 S1 1C
S1 0S2
A 1S2
B 2S2
S2 0 S2 1C S2 0S2
C 0

Resp.:
L(G3) = { 010, 0110, 0100, ..., 120, 1210, 1200, ...}
Linguagens Formais
LR
Unio de Linguagens Regulares

Podemos tambm construir G3 tal que

L(G3) = L(G1) L(G2)

Processo: Para cada produo S1 o ou S2
|, adicionamos a produo S o ou S
|. Colocamos todas as produes juntas e o smbolo
inicial de G3 ser S.
Linguagens Formais
LR
Exemplo:
Sejam G1 e G2 vistas na seo anterior (concatenao)

G3 = S 0A S 1B S
A 1
B 2
S 0 S 1C S 0S2
S2 0 S2 1C S2 0S2
C 0

Obs.: S1 0A
S1 1B
S1
desnecessrio pois
S1 no aparece do
lado direito das
regras
Linguagens Formais
LR
Exemplo:
Sejam G1 e G2 vistas na seo anterior (concatenao)

G3 = S 0A S 1B S
A 1
B 2
S 0 S 1C S 0S2
S2 0 S2 1C S2 0S2
C 0

Resp.:
L(G3) = {01, 12, 1, 0, 10, 00, 010, 0...0, 0...10} =
L(G1) L(G2)

Linguagens Formais
LR
Conjunto Clausura

Dada uma Gramtica Regular G1, podemos construir
uma Gramtica Regular G2 tal que

L(G2) = L(G1)
*

Processo: Substitumos A a em G1 por A aS1.
Adicionamos S1 . O axioma S1.

Linguagens Formais
LR
Exemplo 1:

G1 = S1 aS1
S1 bA
A c

Linguagens Formais
LR
Exemplo:
G1:
S1 aS1
S1 bA
A c

Resp.: L(G1) = {a
n
bc | n 0} ou a
*
bc
Linguagens Formais
LR

G2:
S1 aS1
S1 bA | S1
A cS1




Linguagens Formais
LR

G2:
S1 aS1
S1 bA | S1
A cS1


Resp.:
L(G2) = {, bc, abc, aa...bc, bcbc, abcabc, ...} =
(a
*
bc)
*
= L(G1)*

Linguagens Formais
LR
Resultado das Propriedades das Gramticas Regulares

As Linguagens Regulares so fechadas sob todas as
operaes de unio, concatenao, clausura,
interseco e complemento (E* - L).

Isto significa que qualquer Linguagem Regular no
vazia pode ser construda a partir de um nmero finito
de cadeias simples e um nmero finito de operaes de
unio, concatenao, clausura, interseco e
complemento.

Linguagens Formais
Interseco de Linguagens Regulares

Resultado:
Uma vez que as linguagens regulares so
fechadas sob as operaes de complemento e
unio, elas tambm so fechadas sob a
operao de interseco.
Linguagens Formais
Interseco de Linguagens Regulares

Resultado:
Uma vez que as linguagens regulares so
fechadas sob as operaes de complemento e
unio, elas tambm so fechadas sob a
operao de interseco.
Prova: L1 L2 = ( L1' L2')'

Linguagens Formais
Propriedades de Linguagens Livres de Contexto

O conjunto das LLCs fechado sob as operaes
de:

a) Unio: a unio de LLCs resulta em LLC.
b) Clausura: o fechamento (*) de LLC resulta em LLC.
c) Concatenao: a concatenao de LLCs resulta em
LLC.
Vamos mostrar :

Linguagens Formais
Unio de Linguagens Livres de Contexto

Dadas duas GLCs G1 e G2, pode-se construir uma
GLC G3, tal que:

L(G3) = L(G1) U L(G2)
Demonstrao:
Se
G1 = {Vn1, Vt1, P1, S1} e G2 = {Vn2, Vt2, P2, S2}
Ento definimos
G3 = {{Vn1 U Vn2}, {Vt1 U Vt2}, {P1 U P2 U {S3 =>
S1|S2}}, S3}

Linguagens Formais
Clausura de Linguagens Livres de Contexto

Dada uma GLC G1,pode-se construir uma GLC G2, tal
que:

L(G2) = L(G1)*
Demonstrao:
Se
G1 = {Vn1, Vt1, P1, S1}
Ento definimos
G2 = {Vn1, Vt1, {P1 U {S2 => S1 S2| }}, S2}

Linguagens Formais
Concatenao de Linguagens Livres de Contexto

Dadas duas GLCs G1 e G2,pode-se construir uma GLC
G3, tal que:
L(G3) = L(G1).L(G2) = {xy | xeL(G1), yeL(G2)}

Demonstrao:
Se
G1 = {Vn1, Vt1, P1, S1} e G2 = {Vn2, Vt2, P2, S2}
Ento definimos
G3 = {{Vn1 U Vn2}, {Vt1 U Vt2}, {P1 U P2 U {S3 =>
, para toda produo S1 => de P1}}, S3}
Linguagens Formais
Concluses
Hierarquia de Chomsky

Em termos gerais, para n e {0, 1, 2, 3} pode-se
afirmar que uma linguagem de qualquer tipo pode ser
classificada tambm como sendo de tipo menor, de
acordo com a Hierarquia de Chomsky.

Uma linguagem do tipo n caracterizada pela
existncia de alguma gramtica do tipo n que a
descreva.
Linguagens Formais
Linguagens
LR
LLC
LEF
LSC
LR = Linguagens
Regulares
LLC = Linguagens
Livres de Contexto
LSL =Linguagens
Sensveis ao Contexto
LEF = Linguagens com
Estrutura de Frase
Hierarquia de Chomsky
Linguagens Formais
Definies Prvias
Gramticas
Linguagens

Você também pode gostar