• Nenhum resultado encontrado

Aula 2: Linguagens. Teoria da Computação. Prof. Ricardo Dutra da Silva. Exemplo 2.1. ˆ Σ = {a, b}, alfabeto composto pelas letras a e b.

N/A
N/A
Protected

Academic year: 2021

Share "Aula 2: Linguagens. Teoria da Computação. Prof. Ricardo Dutra da Silva. Exemplo 2.1. ˆ Σ = {a, b}, alfabeto composto pelas letras a e b."

Copied!
6
0
0

Texto

(1)

Aula 2: Linguagens

DAINF-UTFPR Prof. Ricardo Dutra da Silva

Defini¸c˜ao 2.1. Um alfabeto Σ ´e um conjunto finito e n˜ao vazio de s´ımbolos. Exemplo 2.1

ˆ Σ = {a, b, c, ..., z}, alfabeto das letras min´usculas. ˆ Σ = {a, b}, alfabeto composto pelas letras a e b. ˆ Σ = {α, β, . . . , ψ, ω, A, B, . . . , Ψ, Ω}, alfabeto grego. ˆ Σ = {0, 1}, alfabeto bin´ario.

Defini¸c˜ao 2.2. Uma string sobre um alfabeto Σ ´e uma sequˆencia de elementos de Σ jus-tapostos.

Exemplo 2.2

ˆ aabccaca ´e uma string sobre o alfabeto Σ = {a, b, c, d}. ˆ 0010011101 ´e uma string sobre o alfabeto Σ = {0, 1}.

Daqui para frente aplicaremos a conven¸c˜ao de usar as letras iniciais do alfabeto da l´ıngua portuguesa1 (a, b, c, d, e) para representar elementos de um alfabeto2 e as letras

fi-nais (u, v, w, x, y, z) para representar strings.

Defini¸c˜ao 2.3. A string nula ´e a string que n˜ao cont´em nenhum elemento. Denotaremos a string nula por λ3.

1Aqui estamos falando do alfabeto que usado para escrever este texto. O alfabeto da l´ıngua portuguesa.

N˜ao confundir com o alfabeto da Defini¸c˜ao 2.1 ou do Exemplo 2.1.

2Este sim ´e o alfabeto da Defini¸ao 2.1.

3E comum encontrar em alguns textos a string nula representada pelo s´ımbolo .´

(2)

O conjunto Σ∗ de todas as strings sobre um alfabeto pode ser definido a partir da string nula por opera¸c˜oes de justaposi¸c˜ao de elementos do alfabeto Σ.

Defini¸c˜ao 2.4. Seja Σ um alfabeto. O conjunto Σ∗ de strings sobre o alfabeto Σ, ´e definido recursivamente da seguinte maneira:

ˆ Base: λ ∈ Σ∗.

ˆ Passo recursivo: Se w ∈ Σ∗ e a ∈ Σ ent˜ao wa ∈ Σ.

Exemplo 2.3

A string 10011 pertence ao conjunto Σ∗ de todas as strings sobre o alfabeto Σ = {0, 1}. Inicialmente, pela base da Defini¸c˜ao 2.4, temos que

λ ∈ Σ∗.

Pelo passo recursivo da Defini¸c˜ao 2.4, como λ ∈ Σ∗ e 1 ∈ Σ, ent˜ao λ1 = 1 ∈ Σ∗.

Aplicando novamente o passo recursivo, temos que 1 ∈ Σ∗ e 0 ∈ Σ, ent˜ao 10 ∈ Σ∗.

Continuamos o processo de aplicar o passo at´e encontrar a string 10011. 10 ∈ Σ∗ e 0 ∈ Σ, ent˜ao 100 ∈ Σ∗;

100 ∈ Σ∗ e 1 ∈ Σ, ent˜ao 1001 ∈ Σ∗; 1001 ∈ Σ∗ e 1 ∈ Σ, ent˜ao 10011 ∈ Σ∗.

Defini¸c˜ao 2.5. O tamanho de uma string w, denotado por |w|, ´e o n´umero de elementos na string.

Exemplo 2.4

As strings λ, ca e 000101, possuem tamanhos |λ| = 0, |ca| = 2, |000101| = 6.

(3)

Exemplo 2.5

Seja o alfabeto Σ = {a, b, c}. S˜ao elementos de Σ∗: ˆ Strings de tamanho 0: λ.

ˆ Strings de tamanho 1: a, b, c.

ˆ Strings de tamanho 2: aa, ab, ac, ba, bb, bc, ca, cb, cc. ˆ . . .

Defini¸c˜ao 2.6. O conjunto de strings de tamanho k de um alfabeto ´e denotado por Σk. Exemplo 2.6

Seja o alfabeto Σ = {0, 1}. Temos que Σ0 = {λ}, Σ1 = {0, 1}, Σ2 = {00, 01, 10, 11}, Σ3 = {000, 001, 010, 011, 100, 101, 110, 111}. Note que Σ1 = {0, 1} ´e diferente de Σ = {0, 1}.

No primeiro os elementos s˜ao strings e no segundo s˜ao s´ımbolos.

O conjunto Σ∗ de todas as strings sobre um alfabeto Σ pode ser definido como Σ∗ = Σ0∪ Σ1∪ Σ2∪ . . .

e o conjunto de strings n˜ao nulas como

Σ+= Σ1∪ Σ2∪ . . .

ou Σ+ = Σ− {λ}.

A concatena¸c˜ao de duas strings ´e a opera¸c˜ao que “cola” uma string no final da outra. Defini¸c˜ao 2.7. Dadas as strings u, v ∈ Σ∗. A concatena¸c˜ao de u e v, escrita uv, ´e definida como:

ˆ Base: Se |v| = 0 ent˜ao v = λ e uv = u.

ˆ Passo recursivo: Seja v uma string de tamanho |v| = n > 0. Ent˜ao, v = wa, para alguma string w de tamanho n − 1 e a ∈ Σ, e uv = (uw)a.

Exemplo 2.7

Dadas as strings u = ab, v = ca e w = bb. uv = abca vw = cabb

(4)

Expoentes s˜ao usados para abreviar a concatena¸c˜ao de uma string com ela mesma, desta forma, wn significa n concatena¸c˜oes da string w.

Exemplo 2.8

Dadas strings v = a e w = 01:

v5 = a5 = aaaaa

w4 = (01)4 = 01010101.

Defini¸c˜ao 2.8. Seja w ∈ Σ∗ sobre um alfabeto Σ. A string reversa de w, wR, ´e definida

como:

ˆ Base: Se |w| = 0 ent˜ao w = λ e λR= λ.

ˆ Passo recursivo: se |w| = n > 0. Ent˜ao, w = va, para alguma string v de tamanho n − 1 e a ∈ Σ, e wR= avR.

Exemplo 2.9

Dada a string w = abcabb temos que wR= (abcab

| {z }

v

b)R= b(abcab)R (passo recursivo) wR= b(abca

|{z}

v

b)R= bb(abca)R (passo recursivo) wR= bb( abc

|{z}

v

a)R= bba(abc)R (passo recursivo)

wR= bba( ab

|{z}

v

c)R = bbac(ab)R (passo recursivo)

wR= bbac( a

|{z}

v

b)R= bbacb(a)R (passo recursivo)

wR= bbacb( λ |{z}

v

a)R= bbacba(λ)R (passo recursivo) wR= bbacba(λ)R= bbacbaλ (base)

wR= bbacba

(5)

A especifica¸c˜ao de uma linguagem requer uma descri¸c˜ao n˜ao amb´ıgua das strings que comp˜oem a linguagem.

Exemplo 2.10

Dado Σ = {a, b, c, . . . , z} s˜ao linguagens sobre Σ: L1 = {casa, bola, bolo},

L2 = {casa, bola, bolo, taquicardia, carro, . . .}.

Exemplo 2.11

Dado Σ = {0, 1} s˜ao linguagens sobre Σ: L1 = {λ, 01, 0011, 000111, 00001111, . . .}

= {“Linguagem das strings que consistem em n 0’s seguidos de n 1’s, para n ≥ 0”}, L2 = {010, 1001, 11100111, 10100101, . . .}

= {“Linguagem dos pal´ındromos”}, L3 = {10, 11, 101, 111, 1011, . . .}

= {“Linguagem dos n´umeros primos (em base bin´aria)”}, L4 = {0, 1, 100, 1001, 10000, . . .}

= {“Linguagem dos quadrados perfeitos”}.

Durante o curso comumente relacionaremos linguagens com problemas. Um problema ser´a visto como o processo de decidir se uma determinada string pertence ou n˜ao a uma linguagem.

Defini¸c˜ao 2.10. Seja L uma linguagem sobre um alfabeto Σ, o problema L ´e o seguinte: “Dada uma string w ∈ Σ∗, decidir se w pertence ou n˜ao a L”.

Exemplo 2.12

O problema de testar se um n´umero ´e um quadrado perfeito pode ser visto como decidir se uma string sobre o alfabeto Σ = {0, 1} est´a dentro da linguagem L = {0, 1, 100, 1001, 10000, . . .}. Para a string 11 a resposta da decis˜ao deve ser “n˜ao”. Para

(6)

Referências

Documentos relacionados

 V, I, C, H, E são elementos do primeiro conjunto acima. c) Pertinência entre elemento e conjunto: Por exemplo, V é um elemento do conjunto das letras maiúsculas do alfabeto, ou

– Dado o alfabeto Σ ={a, b} tem-se que a, aa, b, bb, ab, ba, bbb são cadeias que podem ser formadas a partir deste alfabeto. – Dado o alfabeto da linguagem Pascal, tem-se que

Semana 3 Literatura Colonial Semana 4 Romantismo (Poesia) Semana 5 Romantismo (Prosa) Semana 6 Realismo / Naturalismo Semana 7 Machado de Assis. Semana 8 Parnasianismo

Como o próprio nome já indica, tem base 2 e é o sistema de numeração mais utilizado em processamento de dados digital, pois utiliza apenas dois símbolos ou algarismos 0 e 1.

Tem menos dentes que o disco de corte transversal para um corte mais rápido.

João Camillo Penna apontou essa questão num texto no qual analisou o testemunho de Rigoberta Menchú, ativista política indígena guatemalteca que num procedimento semelhante

Isto ´e, K(σ) ´e um tableau com colunas compar´aveis para a inclus˜ao, que se obt´em tomando uma sequˆencia de factores `a esquerda de σ, considerada como palavra no alfabeto

Schneider Electric Brasil - Customer Care Center - Suporte Técnico Power - 04/2010 - Elaborado por: Fábio Arnaldo Ribeiro 52. Customer