Você está na página 1de 7

1 INTRODUO E CONCEITOS BSICOS

________________________________________________________________________________________

1 INTRODUO E CONCEITOS BSICOS


Inicia com uma breve histria do surgimento e do desenvolvimento dos conceitos, resultados e formalismos nos quais a Teoria da Computao baseada.

Formalizao dos conceitos de programa e de mquina


Existem diferentes computadores, com diferentes arquiteturas, e existem diversos tipos de linguagens de programao, Modelos matemticos simples. Programas e mquinas so tratados como entidades distintas, mas complementares e necessrias para a definio de computao.

1.1 Notas Histricas

Cincia da Computao o conhecimento sistematizado relativo computao. Na antiga Grcia (sculo III A.C., no desenho de algoritmos por Euclides) Na Babilnia (complexidade\reducibilidade problemas). Interesse atual possui duas nfases:
nfase terica - idias fundamentais e modelos computacionais: da biologia (modelos para redes de neurnios), da eletrnica (teoria do chaveamento), da matemtica (lgica), da lingstica (gramticas para linguagens naturais). nfase prtica - projeto de sistemas computacionais aplicando a teoria prtica.

No incio do sculo XX, diversas pesquisas foram desenvolvidas com o objetivo de definir um modelo computacional suficientemente genrico, capaz de implementar qualquer Funo Computvel.

1 INTRODUO E CONCEITOS BSICOS


_________________________________________________________________________________________

Um marco inicial da Teoria da Computao - David Hilbert, Entscheidungsproblem, o qual consistia em encontrar um procedimento para demonstrar se uma dada frmula no clculo de preposies de primeira ordem era vlida ou no. (Frmula do clculo de predicados no qual a quantificao restrita s variveis individuais) Em 1931, Kurt Gdel - Incompleteness Theorem (teorema da no completude), onde demonstrou que tal problema (mecanizao do processo de prova de teoremas) no tinha soluo. A classe de funes usada por Gdel foi a das funes primitivas recursivas definidas anteriormente por Dedekind em 1888. Embora no tenha sido proposital, Gdel foi (aparentemente) o primeiro a identificar um formalismo para definir a noo de procedimento efetivo. Em 1936, Church usou dois formalismos para mostrar que o problema de Hilbert no tem soluo: -calculus (Church, 1936) e funes recursivas (Kleene, 1936).
Procedimentos efetivos - So caracterizaes to gerais da noo do efetivamente computvel quanto consistentes com o entendimento intuitivo usual (Church).

Turing props, em 1936, um formalismo para a representao de procedimentos efetivos. Esse foi o primeiro trabalho a identificar programas escritos para uma mquina computacional autmata, como noes intuitivas de efetividade.

1 INTRODUO E CONCEITOS BSICOS


________________________________________________________________________________________

Desde ento, muitos outros formalismos foram propostos, os quais possuem o mesmo poder computacional que as funes recursivas (ou Clculo Lambda): Mquina de Turing (1936); Sistema Cannico de Post (1943); Algoritmo de Markov e a Linguagem Snobol (1954); Mquinas de Registradores (1963); RASP (Random Acess Stored Programs - 1964). Programa definido como sendo um procedimento efetivo, pode ser descrito usando qualquer dos formalismos equivalentes. Ou seja, qualquer destes formalismos permite descrever todos os procedimentos possveis que podem ser executados em um computador.

1 INTRODUO E CONCEITOS BSICOS


_________________________________________________________________________________________

1.2 Conceitos Bsicos


Linguagem um conceito fundamental no estudo da Teoria da Computao, pois trata-se de uma forma precisa de expressar problemas, permitindo um desenvolvimento formal adequado ao estudo da computabilidade. O dicionrio Aurlio define linguagem como: "o uso da palavra articulada ou escrita como meio de expresso e comunicao entre pessoas". Esta definio no suficientemente precisa para permitir o desenvolvimento matemtico de uma teoria sobre linguagens. As definies que seguem so construdas usando como base a noo de Smbolo ou Caractere, que uma entidade abstrata bsica, no sendo definida formalmente. Letras e dgitos so exemplos de smbolos freqentemente usados. Definio 1.1 Alfabeto. Um Alfabeto um conjunto finito de smbolos ou caracteres. um conjunto infinito no um alfabeto: o conjunto vazio um alfabeto. Exemplo 1.1 Os seguintes conjuntos so exemplos de alfabetos: {a, b, c}; conjunto vazio. Os seguintes conjuntos no so exemplos de alfabetos: conjunto dos nmeros naturais; {a, b, aa, ab, ba, bb, aaa,...}.

1 INTRODUO E CONCEITOS BSICOS


________________________________________________________________________________________

Definio 1.2 Cadeia de Smbolos, Palavra. Uma Cadeia de Smbolos sobre um conjunto uma seqncia de zero ou mais smbolos (do conjunto) justapostos. Uma Cadeia de Smbolos Finita usualmente denominada de Palavra. denota a cadeia vazia ou palavra vazia. Se representa um conjunto de smbolos (um alfabeto), * => o conjunto de todas as palavras possveis sobre ; + denota * - { }. Definio 1.3 Comprimento ou Tamanho de uma Palavra. O Comprimento ou Tamanho de uma palavra w, representado por w, o nmero de smbolos que compem a palavra. Definio 1.4 Prefixo, Sufixo, Subpalavra. Um Prefixo (respectivamente, Sufixo) de uma palavra qualquer seqncia inicial (respectivamente, final) de smbolos da palavra. Uma Subpalavra de uma palavra qualquer seqncia de smbolos contga da palavra. Exemplo 1.2 Palavra, Prefixo, Sufixo, Tamanho.
a) b) abcb uma palavra sobre o alfabeto {a, b, c}; Se = {a, b}, ento: + = {a, b, aa, ab, ba, bb, aaa,...} * = { , a, b, aa, ab, ba, bb, aaa,...} abcb = 4 e = 0; Relativamente palavra abcb, tem-se que: , a, ab, abc, abcb so os prefixos; , b, cb, bcb, abcb so os respectivos sufixos. Qualquer prefixo ou sufixo de uma palavra uma sub-palavra.

c) d)

e)

1 INTRODUO E CONCEITOS BSICOS


_________________________________________________________________________________________

Definio 1.5 Linguagem Formal Uma Linguagem Formal ou simplesmente Linguagem um conjunto de palavras sobre um alfabeto. Exemplo 1.3 Linguagem Formal. Suponha o alfabeto = {a, b}. Ento: a) O conjunto vazio e o conjunto formado pela palavra vazia so linguagens sobre . Obviamente, { } { }. b) O conjunto de palndromos (palavras que tm a mesma leitura da esquerda para a direita e vice-versa) sobre um exemplo de linguagem infinita. , a, b, aa, bb, aaa, aba, bab, bbb, aaaa,... Definio 1.6 Concatenao de Palavras. A Concatenao de Palavras uma operao binria, definida sobre uma linguagem L, a qual associa a cada par de palavras uma palavra formada pela justaposio da primeira com a segunda tal que: no necessariamente fechada em L; a concatenao de duas palavras de uma linguagem no necessariamente resulta em uma palavra da linguagem. associativa; v(wt) = (vw)t = vwt possui elemento neutro esquerda e direita, o qual a palavra vazia. w = w = w Exemplo 1.4 Concatenao de Palavras. Suponha o alfabeto = {a, b}. Ento, para as palavras v = baaaa e w = bb, tem-se que: vw = baaaabb v = v = baaaa

1 INTRODUO E CONCEITOS BSICOS


________________________________________________________________________________________

Definio 1.7 Concatenao Sucessiva de uma Palavra. A Concatenao Sucessiva de uma Palavra (com ela mesma) ou simplesmente Concatenao Sucessiva, representada na forma de um expoente (suponha w uma palavra): wn onde n o nmero de concatenaes sucessivas,

definida indutivamente a partir da operao de concatenao binria, como segue: w 0 = ; wn = wn-1w, para n > 0. Exemplo 1.5 Concatenao Sucessiva. Sejam w uma palavra e a um smbolo. Ento: w3 = www w1 = w a5 = aaaaa an = aaa...a (o smbolo a repetido n vezes)