teoria da computação

14
Teoria da Computação Linguagem Fabrício Dias [email protected] UNIPÊ – Centro Universitário de João Pessoa Curso de Ciências da Computação

Upload: burke

Post on 21-Jan-2016

23 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Teoria da Computação

Teoria da ComputaçãoLinguagem

Fabrício Dias

[email protected]

UNIPÊ – Centro Universitário de João PessoaCurso de Ciências da Computação

Page 2: Teoria da Computação

2

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.

Page 3: Teoria da Computação

3

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.

Page 4: Teoria da Computação

4

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?

Page 5: Teoria da Computação

5

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}

Page 6: Teoria da Computação

6

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,....

Page 7: Teoria da Computação

7

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

Page 8: Teoria da Computação

8

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

Page 9: Teoria da Computação

9

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 {}.

Page 10: Teoria da Computação

10

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 palavraQualquer 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.

Page 11: Teoria da Computação

11

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

Page 12: Teoria da Computação

12

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

Page 13: Teoria da Computação

13

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.

Page 14: Teoria da Computação

14

Dúvidas??