140 likes | 276 Views
UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências da Computação. Teoria da Computação. Linguagem Fabrício Dias fabriciounipe@ig.com.br. Agenda. Definição de linguagem Alfabeto Cadeia de símbolos ou palavras Comprimento de palavra Linguagem X Comprimento
E N D
UNIPÊ – Centro Universitário de João PessoaCurso de Ciências da Computação Teoria da Computação Linguagem Fabrício Dias fabriciounipe@ig.com.br
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.
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.
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?
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}
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,....
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
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
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 {}.
Prefixo, sufixo, subpalavra • Prefixo, Sufixo, Subpalavra • Um Prefixode uma palavra é qualquer seqüência inicial de símbolos da palavra • Um Sufixode 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.
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
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
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.