Alfabeto
exemplos: = {a,b}
= {0,1,2,3,4,5,6,7,8,9}
Comprimento de cadeia
Concatenao de cadeias
x = ba; y = z = ba
Potncias de um alfabeto
Linguagem
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.
Exemplos:
{ab, bc} ( linguagem formada pelas cadeias ab e bc)
{abn, anb; 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 a, ab, abb, b, aab, aaab, ...)
enumerao das cadeias de smbolos que formam as suas sentenas (somente linguagens finitas
podem ser representadas por este mtodo)
Concatenao
L1 L2 = {xy | x L1 e y L2},
usualmente denotamos L1 L2 como L1L2 .
as linguagens no precisam ser sobre o mesmo alfabeto
se L1 1 e L2 2 , teremos L1L2 1 2.
Unio L1 L2 = {x | x L1 ou x L2}
Interseco L1 L2 = {x | x L1 e x L2}
Diferena L1 - L2 = {x | x L1 e x L2 }.
Exemplos: considere = {0, 1} e as linguagens sobre :
L1 = {, 1, 0110, 11010} e L2 = {, 0, 1, 10, 11}.
ento: L1 L2 = {, 0, 1, 10, 11, 0110, 11010}
L1 L2 = {, 1}
L1 - L2 = {0110, 11010}
Potenciao
Se L , definimos Ln = {} se n = 0, e Ln = L Ln-1 para n > 0.
Exemplo: para L = {xy}, temos L0 = {}, L1 = L = {xy}, L2 = LL = {xyxy}.
Obs: 0 = {}
Sub - linguagem
se todas as cadeias de L1 so tambm cadeias de L2, ento L1 definida como uma sub-linguagem de L2 ,
ou seja, L1 L2
exemplo: se L1 = {1, 11, 111, 1111} e L2 = {1n | n 4} temos que L1 L2.
Note que qualquer linguagem L sobre um alfabeto uma sub-linguagem de *, isto , L *.
Igualdade L1 = L2 , se L1 L2 e L2 L1.
Fechos
o transitivo ou positivo : L+ = Ui =1 Li
o transitivo e reflexivo ou fecho de Kleene : L* = Ui = 0 Li
o fecho de Kleene consiste de zero ou mais concatenaes de L, enquanto o fecho positivo corresponde
a uma ou mais concatenaes
Exemplo suponha L = {1} sobre o alfabeto = { 0, 1 }. Temos
L0 = {}, L1 = {1}, L2 = {12} assim
L* = {, 1, 12, 13, ...} e tambm L+ = { 1, 12, 13, ...}
Complemento L = * L
Para as linguagens L1 , L2 e L3 sobre um mesmo alfabeto :
A concatenao no interage com a interseco da mesma forma que a unio. Para ilustrar, considere
que L1 = {, 1}, L2 = {} e L3 = {1}
Note que L1L2 = {, 1}, e L1L3 = {1, 12}, e assim L1L2 L1L3 = {1}.
Gramticas
Um exemplo com a linguagem natural, empregando uma gramtica que conhecemos, considere:
V = { sentena, sujeito, predicado, artigo, verbo, substantivo, complemento}
= { peixe, isca, mordeu, o, a}
P = { 1. Sentena sujeito, predicado;
2. sujeito artigo substantivo;
3. predicado verbo, complemento;
4. complemento artigo, substantivo;
5. artigo o;
6. artigo a;
7. substantivo peixe;
8. substantivo isca;
9. verbo mordeu. }
S = sentena
Para gerar uma sentena sintaticamente correta, temos a rvore de derivao:
Com esta gramtica, pode-se gerar as seguintes frases sintaticamente corretas:
O peixe mordeu a isca
A isca mordeu o peixe
O peixe mordeu o peixe
A isca mordeu a isca etc. ...
Note que s a primeira, que aparece na rvore de derivao, transmite uma informao dentro da
linguagem natural, enquanto as demais so apenas corretas quanto a sua construo.
Para as definies a seguir vamos considerar
G = (V, , P, S) e , , , (V )*.
Uma cadeia gera ( ) uma cadeia se e somente se existe 1, 2, ..., n tal que
1 2 ... n , n 0. Se n = 0, ento e portanto para
qualquer . 1exemplo: S ab; S aB; AB ab; ab ab (zero
passos). 2exemplo: sentena o peixe mordeu a (substantivo), etc.
Linguagens Geradas
A linguagem L gerada pela gramtica G, denotada como L(G), o conjunto L(G) = { | sentena de
G }, ou seja,
L(G) = { | S }, como na questo acima ou na ilustrao a seguir:
G2 = ( {S, A, B, C}, { a, b, c}, P, S )
onde P={ 1) S A;
2) A BaC;
3) B bB;
4) B b;
5) C cC;
6) C c. }
portanto a linguagem gerada por G2 :
bac, bbac, bacc, bbbaccc, etc., isto ,
L(G2 ) = {b i ac j / i , j 1} .
A rvore de derivao sinttica para a cadeia bbaccc ser: