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