• Nenhum resultado encontrado

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

N/A
N/A
Protected

Academic year: 2021

Share "Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)"

Copied!
17
0
0

Texto

(1)

Teoria das Linguagens

Lic. em Ciˆencias da Computa¸c˜ao

Linguagens Formais e Aut´omatos

(Linguagens)

Carla Mendes

Dep. Matem´atica e Aplica¸c˜oes Universidade do Minho

(2)

“The fundamental aim in linguistic analysis of language L is to

separate the grammatical sequences which are sentences of L from the ungrammatical sentences which are not sentences of L and to study the structure of grammatical sequence.”

Avram Noam Chomsky (1928) O estudo de linguagens formais e da teoria de aut´omatos emergiu na d´ecada de 1950, altura em que Noam Chomsky introduziu a formaliza¸c˜ao matem´atica da no¸c˜ao de linguagem.

Neste cap´ıtulo estudamos algumas classes importantes de linguagens formais assim como os modelos abstractos de computa¸c˜ao que permitem fazer o reconhecimento sint´actico destas linguagens. Mais precisamente, iremos estudar linguagens regulares e aut´omatos finitos, linguagens independentes de contexto e aut´omatos de pilha.

(3)

Nesta sec¸c˜ao come¸camos por introduzir alguns conceitos b´asicos sobre linguagens que s˜ao fundamentais neste cap´ıtulo.

Nos dicion´arios encontramos o termo “linguagem” definido

informalmente como sendo um sistema adequado para expressar ideias, factos ou conceitos, incluindo um conjunto de s´ımbolos e regras para a sua manipula¸c˜ao. Embora isto nos dˆe uma ideia intuitiva do que ´e uma linguagem n˜ao ´e suficiente para o estudo de linguagens formais.

Defini¸c˜ao 1.1

Um alfabeto A ´e um conjunto finito n˜ao vazio cujos elementos s˜ao designados por letras. Uma palavra sobre A ´e uma sequˆencia finita de elementos de A; a sequˆencia vazia de s´ımbolos designa-se por palavra

vazia, e representa-se por ǫ. O comprimento de uma palavra w ,

(4)

Exemplo 1.2

Seja A = {a, b, c}. Ent˜ao w1 = acb, w1 = bbaca e ǫ s˜ao palavras sobre A e tem-se |w1| = 3, |w2| = 5 e |ǫ| = 0.

Defini¸c˜ao 1.3

Duas palavras a1a2. . .an e b1b2. . .bm sobre um alfabeto A dizem-se iguais se n = m e, para cada i ∈ {1, . . . , n}, ai = bi.

O conjunto de todas as palavras sobre A ´e representado por Ae o

conjunto de todas as palavras n˜ao vazias de A ´e representado por A+. Exemplo 1.4

Sendo A = {a, b}, tem-se A

= {ǫ, a, b, aa, bb.ab.ba.aaa.bbb, abb, aba, . . .}

(5)

Defini¸c˜ao 1.5

Dado um alfabeto A, seja · : A

× A

→ A

a opera¸c˜ao que a duas palavras u, v de Aassocia a palavra representada por u · v (ou apenas por uv ) e que ´e definida por

u · v = v , se u = ǫ; u · v = u, se v = ǫ;

u · v = a1a2. . .anb1b2. . .bm, se u = a1a2. . .an e v = b1b2. . .bm

s˜ao palavras n˜ao vazias.

A esta opera¸c˜ao d´a-se a designa¸c˜ao de concatena¸c˜ao (produto) de

duas palavras de A.

Se u ´e uma palavra sobre um alfabeto A e n ∈ N0, representa-se por un:

a palavra vazia, caso n = 0;

o produto de n c´opias de u, caso n ∈ N.

A palavra un designa-se por potˆencia-n de u e pode ser definida

recursivamente por un=



ǫ se n = 0,

(6)

A respeito da opera¸c˜ao de concatena¸c˜ao de duas palavras ´e simples provar as seguintes propriedades.

Proposi¸c˜ao 1.6

Dado um alfabeto A, tem-se, para quaisquer u, v , w ∈ A

e m, n ∈ N0: (i) ǫu = u = uǫ (ǫ elemento neutro do produto);

(ii) (uv )w = u(vw ) (propriedade associativa do produto); (iii) uv = uw ⇒ v = w (lei do corte `a esquerda);

(iv) vu = wu ⇒ v = w (lei do corte `a direita); (v) |uv | = |u| + |v |;

(vi) un+m= unum; (vii) (un)m = unm; (viii) |un| = n|u|.

Sejam u, v , w palavras sobre um alfabeto A. Ent˜ao, atendendo a que a opera¸c˜ao de concatena¸c˜ao de palavras ´e associativa, podemos escrever

(7)

Note-se que a opera¸c˜ao de concatena¸c˜ao n˜ao ´e, em geral, comutativa. Por exemplo, dadas as palavras u = ab, v = ba ∈ {a, b}, tem-se uv = abba 6= baab = vu.

Recorrendo `a opera¸c˜ao de concatena¸c˜ao, podemos definir indutivamente o conjunto A

. Este tipo de defini¸c˜ao pode ser ´util na prova de certas propriedades referentes a este conjunto.

Proposi¸c˜ao 1.7

Dado um alfabeto A, o conjunto A´e o conjunto definido indutivamente pelas regras seguintes:

(i) ǫ∈ A;

(ii) Se w ∈ A

e a ∈ A, ent˜ao wa ∈ A.

O conjunto A+ tamb´em admite uma defini¸c˜ao indutiva. Uma vez que a palavra ǫ n˜ao pertence a A+ basta modificar a defini¸c˜ao anterior da forma que se apresenta a seguir:

(8)

Proposi¸c˜ao 1.8

Dado um alfabeto A, o conjunto A+ ´e o conjunto definido indutivamente pelas regras seguintes:

(i) Se a ∈ A, ent˜ao a ∈ A+; (ii)Se w ∈ A+ e a ∈ A, ent˜ao wa ∈ A+. Defini¸c˜ao 1.9

Sejam A um alfabeto e u, v ∈ A

. Diz-se que:

u ´e um factor de v se existem x, y ∈ Atais que v = xuy ; u ´e um prefixo de v se existe y ∈ A

tal que v = uy ; u ´e um sufixo de v se existe y ∈ Atal que v = yu;

u ´e um factor pr´oprio (resp., prefixo pr´oprio, sufixo pr´oprio) de v

se u ´e um factor (resp. prefixo, sufixo) de v e u 6= v . Exemplo 1.10

Sejam A = {0, 1} e u = 0101. Ent˜ao

os factores de u s˜ao: ǫ, 0, 1, 01, 10, 010, 101 e u; os prefixos de u s˜ao: ǫ, 0, 01, 010 e u;

(9)

Defini¸c˜ao 1.11

Sejam A um alfabeto e u ∈ A. Designa-se por palavra inversa de u, e representa-se por uI, a palavra de A

definida por uI =  ǫ se u = ǫ, avI se u = va com v ∈ Ae a ∈ A. Exemplo 1.12 Sejam A = {0, 1} e u = 01101. Ent˜ao uI = 10110. Proposi¸c˜ao 1.13

Seja A um alfabeto. Ent˜ao, para quaisquer n ∈ N, a1,a2. . . ,an∈ A e

u, v ∈ A, tem-se

(i) (a1a2. . .an)I = an. . .a2a1;

(ii) (uv )I = vIuI; (iii) (uI)I = u.

(10)

Defini¸c˜ao 1.14

Dado um alfabeto A, designa-se por linguagem sobre A, qualquer subconjunto de A.

Exemplo 1.15

Seja A = {0, 1}. Ent˜ao s˜ao exemplos de linguagens sobre A os seguintes subconjuntos de A

:

∅, {ǫ}, {0}, A, {00, 11, 000, 111}, A

, A+, {0n1n: n ∈ N 0}.

O conjunto P(A) de todas as linguagens sobre A ´e representado por L(A).

Uma vez que as linguagens s˜ao conjuntos, podemos definir entre linguagens as opera¸c˜oes usuais de uni˜ao, intersec¸c˜ao e complementar.

(11)

Defini¸c˜ao 1.16

Sendo L1, L2 s˜ao linguagens sobre um alfabeto A, define-se L1∪ L2= {x ∈ A: x ∈ L1 ou x ∈ L2}; (uni˜ao de L1e L2)

L1∩ L2= {x ∈ A: x ∈ L1e x ∈ L2} (intersec¸c˜ao de L1e L2)

L1\ L2= {x ∈ A: x ∈ L1e x 6∈ L2} (complementar de L1em L2)

L1= A\ L1 (complementar de L1).

Recorrendo `a opera¸c˜ao de concatena¸c˜ao de palavras, define-se tamb´em a seguinte opera¸c˜ao de linguagens.

Defini¸c˜ao 1.17

Dadas linguagens L1 e L2 sobre um alfabeto A, designa-se por

concatena¸c˜ao (ou produto) de L1 e L2, e representa-se por L1· L2 (ou apenas por L1L2), a linguagem

(12)

Exemplo 1.18

Sejam L1 = {a, ba} e L2 = {b, ab} linguagens sobre o alfabeto {a, b}. Ent˜ao L1L2 = {ab, aab, bab, baab} e L2L1 = {ba, bba, aba, abba}.

Sendo u uma palavra e L uma linguagem sobre um alfabeto A, ´e usual escrever uL e Lu em vez de {u}L e L{u}, respectivamente.

Sejam A um alfabeto e u palavra sobre A. Ent˜ao

uA

= {ux : x ∈ A}; Au = {xu : x ∈ A}; AuA= {xuy : x, y ∈ A},

representam, respectivamente, o conjunto de palavras de A

que tˆem u como prefixo, como sufixo e como factor, respectivamente.

(13)

Exemplo 1.19 Para A = {a, b, c}, (abcA∩ AcbA) \ Aa

representa a linguagem das palavras sobre A que come¸cam por abc, tˆem cb como factor e n˜ao terminam em a.

Da defini¸c˜ao de concatena¸c˜ao de linguagens e de algumas propriedades relativas `a concatena¸c˜ao de palavras, resultam as igualdades seguintes:

Proposi¸c˜ao 1.20

Para quaisquer linguagens L, L1, L2 e L3 sobre um alfabeto A, tem-se: (i) ∅L = ∅ = L∅;

(ii) ǫL = L = Lǫ;

(iii) (L1L2)L3 = L1(L2L3); (iv) L1(L2∪ L3) = L1L2∪ L1L3.

(v) (L2∪ L3)L1 = L2L1∪ L3L1.

Uma vez que a concatena¸c˜ao de linguagens ´e associativa, escrevemos

(14)

Defini¸c˜ao 1.21

Sejam L uma linguagem sobre um alfabeto A e n ∈ N0. Define-se

potˆencia-n de L, e representa-se por Ln, a linguagem definida recursivamente por Ln=



{ǫ} se n = 0, Ln−1L se n ∈ N. Defini¸c˜ao 1.22

Seja L uma linguagem sobre um alfabeto A. Designa-se por:

estrela de L ou fecho (de Kleene) de L, e representa-se por L, a uni˜ao de todas as potˆencias de L, i.e.

L

= [

n∈N0

Ln.

fecho positivo de L, e representa-se por L+, a uni˜ao de todas as potˆencias positivas de L, i.e.,

L+= [

n∈N Ln.

(15)

Note que as nota¸c˜oes Ae A+ ao coerentes com as defini¸c˜oes de fecho

de Kleene e de fecho positivo. Por exemplo, {0}∗

= {ǫ, 0, 00, 000, 0000, . . .} = {0n : n ∈ N0}

tanto representa o conjunto de todas as palavras sobre o alfabeto

A = {0} como tamb´em representa o fecho de Kleene da linguagem L = {0}.

A respeito dos operadores fecho de Kleene e fecho positivo, s˜ao v´alidas as propriedades seguintes:

Proposi¸c˜ao 1.23

Sejam A um alfabeto e L uma linguagem sobre A. Tem-se: (i) ∅∗ = {ǫ}, ∅+= ∅, {ǫ}= {ǫ} = {ǫ}+;

(ii) L ⊆ L+ ⊆ L;

(iii) ǫ∈ L+ se e s´o se ǫ ∈ L;

(16)

Defini¸c˜ao 1.24

Sejam A um alfabeto, L uma linguagem sobre A e u uma palavra sobre A. Chama-se:

res´ıduo esquerdo de L relativamente `a palavra u `a linguagem u−1L = {x ∈ A

: ux ∈ L};

res´ıduo direito de L relativamente `a palavra u `a linguagem Lu−1 = {x ∈ A

: xu ∈ L}.

Exemplo 1.25

Sejam A = {a, b} e L = {a, aba, ba, bbaa, abba}. Ent˜ao

ǫ−1L = L;

a−1L = {ǫ, ba, bba}; b−1L = {a, baa};

(aa)−1L = ∅;

(ab)−1L = {a, ba};

(bba)−1L = {a};

−1 = L;

La−1 = {ǫ, ab, b, bba, abb}; Lb−1 = ∅;

L(aa)−1 = {bb}; L(ab)−1 = ∅; L(bba)−1 = {a}.

(17)

´

E simples verificar as propriedades seguintes:

Proposi¸c˜ao 1.26

Sejam A um alfabeto, a ∈ A, u uma palavra sobre A e L uma linguagem sobre A. Ent˜ao (i) u−1(L 1∪ L2) = u−1L1∪ u−1L2; (ii) u−1(L 1∩ L2) = u−1L1∩ u−1L2; (iii) u−1(L 1\ L2) = u−1L1\ u−1L2; (iv) a−1(L 1L2) =  (a−1L 1)L2 se ǫ 6∈ L1 (a−1L 1)L2∪ a−1L2 se ǫ ∈ L1 ; (v) a−1L= (a−1L)L; (vi) (uv )−1L = v−1(u−1L).

Referências

Documentos relacionados

a) Remuneração adequada: remuneração necessária para o empregado viver dignamente dentro das necessidades pessoais e dos padrões culturais, sociais e econômicos

@XmlAttribute(name = "ANO" ) protected Integer ano; @XmlAttribute(name = "PAIS" ) protected String pais; @XmlAttribute(name = "DOI" ) protected String DOI;

(Arthur Schopenhauer, s/d).. Mesmo com medidas de controles e higiene, surtos de doenças transmitidas pelos alimentos, como salmonelose estão aumentando

Você está sendo convidada a participar como voluntária da pesquisa: “EFEITO DAS VARIAÇÕES DO EXERCÍCIO LUNGE NA ATIVIDADE MUSCULAR DO GLÚTEO MÁXIMO” que tem como objetivo

opera apenas com a’s e b’s na pilha. Para garantir que  só vai ser usado uma vez, convém reservar ao estado inicial apenas a ação de marcar o fundo da pilha. Entretanto, pela

 Desmembrar as formas sentenciais de comprimento 3 ou mais em uma cascata de produções, cada uma com uma forma sentencial consistindo em 2

caries pathogenesis. The purpose of this study was to assess the gene expression profile of Scardovia spp. in root caries, and compare it with other microorganisms. Clinical

Nossa responsabilidade é a de expressar uma opinião sobre essas demonstrações contábeis com base em nossa auditoria, conduzida de acordo com as normas brasileiras e