Anda di halaman 1dari 7

Teoria da computao

Computao pode ser definida como a soluo de um problema ou, formalmente, o clculo de uma funo, atravs de um algoritmo. A teoria da computao, um subcampo da cincia da computao e matemtica, busca determinar quais problemas podem ser computados em um dado modelo de computao. Por milhares de anos, a computao foi feita com lpis e papel, ou giz e quadro, ou mentalmente, s vezes com a ajuda de tabelas. A teoria da computao teve incio nos primeiros anos do sculo XX, antes da inveno dos modernos computadores eletrnicos. Naquela poca, os matemticos estavam tentando descobrir quais problemas matemticos poderiam ser resolvidos por um mtodo simples, e quais no poderiam. O primeiro passo estava em definir o significado de um "mtodo simples" para resolver o problema. Em outras palavras, eles precisavam de um modelo formal da computao. Diversos modelos diferentes da computao foram propostos pelos primeiros pesquisadores. Um modelo, conhecido como Mquina de Turing, propunha a construo de uma mquina universal, capaz de operar com uma sequncia de instrues e dados entremeados em uma fita de comprimento infinito; a mquina poderia operar em um ponto da fita de cada vez utilizando um cabeote de leitura e escrita, executando assim a programao que lhe for passada. Outro modelo, se baseia em funes recursivas compostas para operar diretamente sobre os nmeros. Uma abordagem similar o clculo lambda. Outra classe de abordagens trabalha com regras gramaticais operando sobre cadeias de caracteres, como o caso dos cadeias de Markov e dossistemas de Post. Todos os formalismos propostos acima so equivalentes em termos de poder computacionalou seja, qualquer computao que possa ser realizada com um modelo pode ser realizada com qualquer um dos outros modelos. Ainda em termos tericos, os modelos propostos so equivalentes aos computadores eletrnicos, desde que no haja restries de memria envolvidas. Na verdade, acredita-se que todas as formalizaes teoricamente possveis para o conceito de algoritmo so equivalentes em poder a uma mquina de Turing; esta a tese de Church-Turing. As questes relativas possibilidade de realizar certos tipos de computao em determinados tipos de mquina (ou formalismo terico) so investigadas pela teoria da computabilidade. A teoria da computao estuda os modelos de computao genricos, assim como os limites da computao:

Quais problemas jamais podero ser resolvidos por um computador, independente da sua velocidade ou memria? (Ver: Problema da parada, Problema da Correspondncia de Post.) Quais problemas podem ser resolvidos por um computador, mas requerem um perodo to extenso de tempo para completar a ponto de tornar a soluco impraticvel? (Ver: Aritmtica de Presburger.)

Em que situaes pode ser mais difcil resolver um problema do que verificar cada uma das solues manualmente? (Ver Classes P e NP).

Em geral, as questes relativas aos requerimentos de tempo ou espao (memria, em particular) de problemas especficos so investigadas pela teoria da complexidade computacional. Alm dos modelos genricos de computao, alguns modelos computacionais mais simples so teis para aplicaes mais restritas. Expresses regulares, so por exemplo utilizadas para especificar padres de cadeias de caracteres, sendo populares em aplicaes UNIX e em algumas linguagens de programao, como Perl e Python. Outro formalismo matematicamente equivalente s expresses regulares so os autmatos finitos, que so utilizados em desenho de circuitos e em alguns sistemas de resoluo de problemas. As gramticas livres de contextoso utilizadas para especificar a sintaxe das linguagens de programao; um formalismo equivalente, so os autmatos com pilha, ou pushdown automata. As funes recursivas primitivasformam uma subclasse das funes recursivas. Modelos de computao diferentes podem realizar tarefas distintas. Uma forma de estudar o poder de um modelo computacional estudar a classe das linguagens formais que o modelo pode gerar; o resultado a hierarquia de Chomsky das linguagens. As tabelas abaixo mostram algumas das classes de problemas (ou linguagens, ou gramticas) que so consideradas em teoria da computabilidade (azul) e em teoria da complexidade (vermelho). Se a classe X um subconjunto propriamente contido em Y, ento X mostrado abaixo de Y, conectados por um linha escura. Se X um subconjunto, mas no sabido se os conjuntos so iguais ou no, ento a linha que os conecta ser mais clara e pontilhada.

Problema de deciso

Tipo 0 (Recursivamente enumervel)

Indecidvel

Decidvel

EXPSPACE

EXPTIME

PSPACE

Tipo 1 (Sensvel ao contexto)

PSPACE-Completo

Co-NP

NP

BPP

BQP

NP-Completo

NC

P-Completo

Tipo 2 (Livre de contexto)

Tipo 3 (Regular)

O sistema binrio ou de base 2 um sistema de numerao posicional em que todas as quantidades se representam com base em dois nmeros, ou seja, zero e um (0 e 1).1 2 Os computadores digitais trabalham internamente com dois nveis de tenso, pelo que o seu sistema de numerao natural o sistema binrio (aceso, apagado).3 Com efeito, num sistema simples como este possvel simplificar o clculo, com o auxlio da lgica booleana. Em computao, chama-se um dgito binrio (0 ou 1) de bit, que vem do ingls Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). Um agrupamento de 4 bits, ainda, chamado de nibble. Um processador formado por milhares de blocos lgicos complexos, formados por portas lgicas bsicas, e o funcionamento destas est amparado por um postulado fundamental a eletrnica digital que determina que um circuito opere apenas com dois nveis de tenso bem definidos. Em um circuito digitalTTL (Transistor Transistor Logic), os dois nveis de tenso padronizados so 0V (zero volt) e 5V (cinco volts). Ao projetar um sistema digital, ao invs de trabalhar com nveis de tenso trabalha-se com nveis lgicos, ento, no caso do circuito TTL, 0V ser representado por 0 e 5V ser representado por 1, e os nveis de tenso entre eles sero ignorados, ou seja, adotar-se- uma faixa at a qual ser considerado nvel lgico zero, e a partir dela, nvel lgico 1. Neste caso, de 0V a 2,5V temos 0, e a partir da at 5V temos 1. O sistema binrio base para a lgebra booleana (de George Boole - matemtico ingls), que permite fazer operaes lgicas e aritmticas usando-se apenas dois dgitos ou dois estados (sim e no, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado).4 Toda a electrnica digital e computao est baseada nesse sistema binrio e na lgica de Boole, que permite representar por circuitos electrnicos digitais (portas lgicas) os nmeros, caracteres, realizar

operaes lgicas e aritmticas. Os programas de computadores so codificados sob forma binria e armazenados nas mdias (memrias, discos, etc) sob esse formato.
ndice
[esconder]

cdigo-fonte]

Pgina do artigo "Explication de l'Arithmtique Binaire", 1703/1705, deLeibniz.

O matemtico indiano Pingala apresentou a primeira descrio conhecida de um sistema numrico binrio no sculo III a.C.,5 representando os nmeros de 1 a 8 com a sequncia (usando smbolos modernos 001, 010, 011, 100, 101, 110, 111 e 1000).6 Um conjunto de 8 trigramas e 64 hexagramas, anlogos a nmeros binrios com preciso de 3 e 6 bits, foram utilizados pelos antigos chineses no texto clssico I Ching.7 Conjuntos similares de combinaes binrias foram utilizados em sistemas africanos de adivinhao tais como o If, bem como na Geomancia do medievo ocidental. Uma sistematizao binria dos hexagramas do I Ching, representando a sequncia decimal de 0 a 63, e um mtodo para gerar tais sequncias, foi desenvolvida pelo filsofo e estudioso Shao Yong no sculo XI. Entretanto, no h evidncias que Shao Yong chegou aritmtica binria. O sistema numrico binrio moderno foi documentado de forma abrangente por Gottfried Leibniz no sculo XVIII em seu artigo "Explication de l'Arithmtique Binaire". O sistema de Leibniz utilizou 0 e 1, tal como o sistema numrico binrio corrente nos dias de hoje. Em 1854, o matemtico britnico George Boole publicou um artigo fundamental detalhando um sistema lgico que se tornaria conhecido como lgebra Booleana. Seu sistema lgico tornouse essencial para o desenvolvimento do sistema binrio, particularmente sua aplicao a circuitos eletrnicos.

Em 1937, Claude Shannon produziu sua tese no MIT que implementava lgebra Booleana e aritmtica binria utilizando circuitos eltricos pela primeira vez na histria. Intitulado "A Symbolic Analysis of Relay and Switching Circuits", a tese de Shannon praticamente fundou o projeto de circuitos digitais.

Cdigos Binrios[editar | editar cdigo-fonte]


A converso de um nmero decimal no seu equivalente binrio chamada codificao. Um nmero decimal expresso como um cdigo binrio ou nmero binrio. O sistema numrico binrio, como apresentado, conhecido como cdigo binrio puro. Este nome o diferencia de outros tipos de cdigos binrios.

Decimal Codificado em Binrio[editar | editar cdigo-fonte]


O sistema numrico decimal fcil de se usar devido familiaridade. O sistema numrico binrio menos conveniente de se usar pois nos menos familiar. difcil olhar em nmero binrio e rapidamente reconhecer o seu equivalente decimal. Por exemplo, o nmero binrio 1010011 representa o nmero decimal 83. difcil dizer imediatamente, por inspeo do nmero, qual seu valor decimal. Entretanto, em alguns minutos, usando os procedimentos descritos anteriormente, pode-se prontamente calcular seu valor decimal. A quantidade de tempo que leva para converter ou reconhecer um nmero binrio uma desvantagem no trabalho com este cdigo, a despeito das numerosas vantagens de "hardware". Os engenheiros reconheceram este problema cedo, e desenvolveram uma forma especial de cdigo binrio que era mais compatvel com o sistema decimal. Como uma grande quantidade de dispositivos digitais, instrumentos e equipamentos usam entradas e sadas decimais, este cdigo especial tornou-se muito difundido e utilizado. Esse cdigo especial chamado decimal codificado em binrio (BCD - binary coded decimal). O cdigo BCD combina algumas das caractersticas dos sistemas numricos binrio e decimais.

Notao Cientfica Binria[editar | editar cdigo-fonte]


Tal como a notao cientfica decimal existe notao cientfica binria. Vejamos parte do cdigo duma aplicao de cdigo aberto que suporta esta funcionalidade: ... if( decimal >= 0){ sN = log10( decimal ) / log10( 2.0 ); sN1 = quo( sN ); sN2 = pot( 2.0, multi( sN ), 1 ); } else{ if( decimal < 0 ){ decimal = decimal * -1; sN = log10( decimal ) / log10( 2.0 ); sN1 = quo( sN ); sN2 = pot( 2.0, multi( sN ), 1 ) * -1; decimal = decimal * -1; } } ...

Ao pegarmos no valor em decimal podemos facilmente convert-lo para binrio, mas a numerao binria extensa na medida que se obtm muitos dgitos na finalizao da converso. Com isto torna-se possvel obter o valor numa forma mais legvel. Ento temos a seguinte ordem de aes para obter um valor em notao cientfica binria: 1. O valor maior ou igual a zero? 2. Se sim calcular o logaritmo de base 2 desse valor (sN). 3. Guardar o valor esquerda da virgula (sN1). 4. Guardar o valor direita da virgula (multi(sN)). 5. Calcular o valor a multiplicar por x10^(sN1). 6. Converter sN1 e sN2 para binrio. 7. E ento escrever (sN2 em binrio)x10^(sN1 em binrio). Caso o valor seja inferior a zero: 1. Multiplique o valor em decimal por -1. 2. Calcule sN, sN1 e sN2 sendo que deve multiplicar sN2 por -1. 3. De seguida multiplique novamente o valor em decimal por -1. desnecessrio colocar o valor em notao binria se sN1 for menor ou igual a 5 e maior ou igual a -4 ou quando o valor decimal a converter igual a 0 pois so valores de leitura legvel. Esta forma de converso foi desenvolvida e testada por um desenvolvedor de software de cdigo-aberto, sendo que no est patenteada. Tal como foi feito para o sistema binrio, poderemos aplicar as mesmas regras para outros sistemas de numerao como octal e hexadecimal, base logartmica 8 e 16 respetivamente. Para a converso tambm se teria de usar respetivamente 8 e 16 para os sistemas de numerao mencionados.

Cdigo ASCII
O "American Standard Code for Information Interchange" comumente referido como ASCII tambm chamado ASCII completo, ou ASCII estendido , uma forma especial de cdigo binrio que largamente utilizado em microprocessadores e equipamentos de comunicao de dados.8 Um novo nome para este cdigo que est se tornando popular "American National Standard Code for Information Interchange" (ANSCII). Entretanto, utilizaremos o termo consagrado, ASCII. um cdigo binrio que usado em transferncia de dados entre microprocessadores e seus dispositivos perifricos, e em comunicao de dados por rdio e telefone. Com sete bits 7 pode-se representar um total de 2 = 128 caracteres diferentes. Estes caracteres compreendem nmeros decimais de 0 at 9, letras maisculas e minsculas do alfabeto, mais alguns outros caracteres especiais usados para pontuao e controle de dados.

Referncias
1. Ir para cima Gonick, Larry. Introduo Ilustrada Computao. So Paulo: Harper & Row do Brasil, 1984. 242 p. p. 115-122. 2. Ir para cima Bianchi, Paulo; Bezerra, Milton. Microcomputadores: Arquitetura-ProjetoProgramao. Rio de Janeiro: LTC, 1983. 223 p. p. 14-18. ISBN 85-216-0321-5 3. Ir para cima Murdocca, Miles J.; Heuring, Vincent P. Introduo Arquitetura de Computadores. Rio de Janeiro: Campus, 2000. 512 p. p. 8. ISBN 85-352-0684-1 4. Ir para cima Davis, Martin. Engines of Logic: Mathematicians and the Origin of the Computer (em ingls). New York: W. W. Norton, 2000. Captulo: 2:Boole Turns Logic into Algebra. , 257 p. p. 32. ISBN 0-393-32229-7 5. Ir para cima Binary Numbers in Ancient India [em linha] 6. Ir para cima Chandastra Home Page, r Pigala's Chandastra, [Paribh] [em linha] 7. Ir para cima Ifrah, Georges. The Universal History of Computing. New York: John Wiley & Sons, 2001. 410 p. p. 86-87. ISBN 0-47139671-0 8. Ir para cima Petzold, Charles. Code: The Hidden Language of Computer Hardware and Software (em ingls). Redmond: Microsoft Press, 2000. 393 p. p. 286-313. ISBN 0-7356-1131-9

Anda mungkin juga menyukai