Teoria da Computacao-Aula04

Propaganda
UNIPÊ – Centro Universitário de João Pessoa
Curso de Ciências da Computação
Teoria da Computação
Linguagem
Fabrício Dias
[email protected]
Agenda







Definição de linguagem
Alfabeto
Cadeia de símbolos ou palavras
Comprimento de palavra
Linguagem X Comprimento
Prefixo, sufixo, subpalvra
Concatenação de palavras.
2
Linguagem


Linguagem é um conceito fundamental no estudo
de Teoria da Computação
Trata da forma precisa de expressar problemas,
permitindo um desenvolvimento formal adequado ao
estudo da computabilidade.
3
Alfabeto

Alfabeto (Σ)



Representado por “Σ”
Qualquer conjunto finito de símbolos ou caracteres
 Um conjunto infinito não é um alfabeto
 O conjunto vazio é um alfabeto
Exemplos de alfabetos
 Σ1 = {a, b, c}
 Σ2 = {0, 1, x, y, z}
 Σ3 = {a, b, c, d, e, f, g, h, .... ,x, z}
 Σ4 =  (conjunto vazio)
 O conjunto dos IN forma um alfabeto?
 O conjunto de IN {1, 4, 8,10, …, 1000} é um alfabeto?
4
Palavra

Cadeia de símbolos (strings) ou palavra



Uma Cadeia de Símbolos (ou palavra) sobre um conjunto
é uma seqüência de zero ou mais símbolos (do conjunto)
justapostos
Uma Palavra é uma cadeia de símbolos finita
Uma cadeia sem símbolos é uma palavra válida e o
símbolo:


 denota uma cadeia vazia ou palavra
vazia
Exemplo
 abcb é uma palavra do alfabeto Σ= {a, b, c}
 Abcf não é uma palavra do alfabeto Σ= {a, b, c}
5
Linguagem

Linguagem

Exemplo

Suponha o alfabeto  = {a,b}. Então:


O conjunto vazio e o conjunto formado pela palavra vazia
são linguagens sobre .
  ≠ {}
O conjunto de palíndromos (palavras que têm a mesma
leitura da esquerda para direita e vice-versa) sobre  é um
exemplo de linguagem infinita.
 , a, b, aa, bb, aaa, aba, bab, bbb,....
6
Comprimento de palavra

Comprimento ou tamanho de uma palavra
 Se w é uma cadeia sobre , o comprimento de w,
denotado por |w|, é o número de símbolos que w contém.
 A cadeia de comprimento 0, é denominado cadeia nula ou
palavra vazia e é representado por .


||=0
Exemplo

Seja o alfabeto  = {0, 1}, então w = 01001 é
um string ou palavra sobre .

|w| = 5
7
Linguagem X Comprimento

Linguagem

Um conjunto de palavras sobre um alfabeto


O conjunto 1 é aquele que contém todas as palavras
sobre o alfabeto  cujo comprimento é 1 (Ou seja,
todos os símbolos do alfabeto)
Exemplo: Seja o alfabeto  = {0, 1}

1 = 0 ou 1 = 1, ou seja | 1 |=1
8
Linguagem X Comprimento


2 contém palavras sobre  com comprimento 2 e
assim por diante.
Exemplo: Seja o alfabeto  = {0, 1, 2}


2 = 01, 02, 12, ou seja | 2 |=1
Definimos então, o conjunto



* como o conjunto de todas as palavras sobre este
mesmo alfabeto (A união de todos os outros conjuntos)
Exemplo:  = {0, 1}, então * ={ ,01,001, 00111, ...}
+ como o conjunto de todas as palavras sobre este
mesmo alfabeto, exceto a palavra vazia {}.
9
Prefixo, sufixo, subpalavra

Prefixo, Sufixo, Subpalavra
 Um Prefixo de uma palavra é qualquer seqüência inicial
de símbolos da palavra
 Um Sufixo de uma palavra é qualquer seqüência final de
símbolos da palavra
 Uma Subpalavra (ou subcadeia) de uma palavra é
qualquer seqüência que compõe a palavra
 Qualquer
prefixo ou sufixo de uma palavra é
uma subpalavra.

Exemplo: Seja a palavra abcb
 ,
a, ab, abc, abcb são os prefixos;
 , b, cb, bcb, abcb são os sufixos;
 , a, ab, abc, abcb, b, cb, bcb, abcb são
subpalavras.
10
Concatenação de palavras

Concatenação de Palavras
 A concatenação de palavras é uma operação
binária, definida sobre uma linguagem, a qual
associa a cada par de palavras uma palavra
formada pela justaposição da primeira com a
segunda.
 Suponha v,w,t como palavras:


v(wt) = (vw)t - associatividade
 w = w = w  - elemento neutro a esquerda ou direita
11
Concatenação sucessiva

Concatenação Sucessiva de Palavras
 A concatenação sucessiva de uma Palavra (com
ela mesma) é representada na forma de um
expoente:


wn onde n é o número de concatenações sucessivas
Exemplos:




(wabc)0 = 
wa1 = wa
wab3 = wabwabwab
wab5 = wabwabwabwabwab
12
Concatenação

Concatenação de Palavras
 Uma
concatenação definida sobre uma
linguagem L não é necessariamente fechada
sobre L, ou seja, a concatenação de duas
palavras de L não é necessariamente uma
palavra de L.
 Exemplo: Suponha a linguagem L de palíndromos
sobre Σ = {a, b}.

A concatenação das palavras aba e bbb resultam na
palavra ababbb a qual não é palíndromo. Portanto a
operação de concatenação não é fechada sobre L.
13
Dúvidas??
14
Download