𝖂𝖎ƙ𝖎𝖊

Computação: mudanças entre as edições

imported>Agil
m (correcção de link interno)
imported>Fgnievinski
 
(299 edições intermediárias de mais de 100 usuários não estão sendo mostradas)
Linha 1: Linha 1:
{{msg:emtraducao2}}
{{Ver desambig|a área acadêmico-profissional|Ciência da computação}}
A '''computação''' pode ser definida como a busca de solução para um problema a partir de [[Dispositivo de entrada|entradas]] (''inputs''), de forma a obter resultados (''outputs'') depois de processada a informação através de um [[algoritmo]].<ref>{{citar web|url = https://www.britannica.com/topic/computation |título = Computação |obra = Encyclopædia Britannica Online |língua = en |acessodata = 7 de agosto de 2020}}</ref> É com isto que lida a ''[[teoria da computação]]'', subcampo da [[ciência da computação]] e da [[matemática]].


A '''computação''' pode ser definida como a busca de uma solução para um problema, a partir de [[entrada]]s (''inputs''), e através de um [[algoritmo]]. É com isto que lida a ''teoria da computação'', subcampo da [[ciência da computação]] e da [[matemática]]. Durante milhares de anos, a computação foi executada com caneta e papel, ou com giz e ardósia, ou mentalmente, por vezes com o auxílio de tabelas.
O termo computação tem origem no latim, ''computatio'', que indica cálculo ou conta matemática.<ref name=":0">{{Citar web|ultimo=unius|url=https://tndbrasil.com.br/afinal-como-surgiu-computacao/|titulo=Afinal, como surgiu a computação? — TND Brasil|data=2018-10-03|acessodata=2021-11-15|lingua=pt-BR}}</ref> Durante milhares de anos, a computação foi executada com caneta e papel, ou com giz e ardósia, ou mentalmente, por vezes com o auxílio de tabelas ou utensílios artesanais.<ref>Hein, James L:  ''Theory of Computation.''  Sudbury, MA: Jones & Bartlett, 1996. Uma introdução suave ao assunto da Teoria da Computação, apropriado para alunos do segundo ano de um curso de graduação em Ciência da Computação.</ref> O primeiro instrumento criado com o propósito de realizar cálculos foi o ábaco, cujo conceito básico foi utilizado por diversas civilizações ao redor do mundo, como o Império Romano e o Egito Antigo.<ref name=":0" /> O termo computador, por sua vez, referia-se aos profissionais cuja função era realizar cálculos, porém o termo passou a se referir às máquinas computacionais conforme estas começaram a ser mais utilizadas, principalmente durante e depois da Segunda Guerra Mundial.<ref>{{Citar web|url=https://exame.com/tecnologia/como-evoluimos-dos-computadores-humanos-a-inteligencia-artificial/|titulo=Como evoluímos dos computadores humanos à inteligência artificial|data=2017-02-08|acessodata=2021-11-15|website=Exame|lingua=pt-BR}}</ref>


A '''''teoria''' da '''computação''''' teve início nos primeiros anos do século XX, antes da invenção dos modernos computadores electrónicos. Naquela época, os [[matemáticos]] estavam tentando descobrir quais problemas matemáticos poderiam ser resolvidos por um método simples, e quais não poderiam. O primeiro passo estava em definir o significado de um "método simples" para resolver o problema. Em outras palavras, eles precisavam de um modelo formal da computação.
A partir da segunda metade do século XX, com o advento dos computadores eletrônicos, a Computação passou a ter uma presença cada vez mais marcante na sociedade, influenciando a vida diária de parte da população mundial. Nesse período, a Computação ganhou o status de Ciência, surgindo então o termo [[ciência da computação]], uma área do conhecimento humano hoje fortemente ligada à produção de software.


Diversos modelos diferentes da computação foram propostos pelos primeiros pesquisadores. Um modelo, conhecido como [[Máquina de Turing]], propunha a construção de uma máquina universal, capaz de operar com uma sequência de instruções e dados entremeados em uma fita de comprimento infinito; a máquina poderia operar em um ponto da fita de cada vez utilizando um cabeçote de leitura e escrita, executando assim a programação que lhe for passada. Outro modelo se baseia em [[função recursiva|funções recursivas]] compostas para operar diretamente sobre os números. Uma abordagem similar é o [[cálculo lambda]]. Outra classe de abordagens trabalha com regras gramaticais operando sobre cadeias de caracteres, como é o caso dos [[Algoritmo de Markov|algoritmos de Markov]] e dos [[Sistemas de Post|sistemas de Post]].
Os algoritmos computacionais hoje estão presentes na rede mundial de computadores (internet), bem como em smartphones, computadores pessoais e outros dispositivos que executam processamento de dados.<ref>MARTIN, R.C. Código Limpo. Rio de Janeiro: Alta Books, 2020.</ref>


Todos os formalismos propostos acima são equivalentes em termos de poder computacional -- ou seja, qualquer computação que possa ser realizada com um pode ser realizada com qualquer um dos outros. Ainda em termos teóricos, os modelos propostos são equivalentes aos computadores eletrônicos, desde que não hajam restrições de memória envolvidas. Na verdade, acredita-se que todas as formalizações teoricamente possíveis para o conceito de algoritmo são equivalentes em poder à uma máquina de Turing; esta é a [[Tese de Church-Turing|tese de Church-Turing]]. As questões relativas à possibilidade de realizar certos tipos de computação em determinados tipos de máquina (ou formalismo teórico) são investigadas pela [[Teoria da Computabilidade|teoria da computabilidade]].
== Leituras complementares ==
* Gary, Michael R., and David S. Johnson: ''Computers and Intractability: A Guide to the Theory of NP-Completeness.'' New York: W. H. Freeman & Co., 1979.  Uma referência padrão aos problemas do tipo NP-Completo, uma importante categoria de problemas cuja solução parece requerer um tempo impraticavelmente longo para efetivar sua computação.
* Hein, James L:  ''Theory of Computation.''  Sudbury, MA: Jones & Bartlett, 1996. Uma introdução suave ao assunto da Teoria da Computação, apropriado para alunos do segundo ano de um curso de graduação em Ciência da Computação.
* Hopcroft, John E., and Jeffrey D. Ullman: ''Introduction to Automata Theory, Languages, and Computation.''  Reading, MA: Addison-Wesley, 1979. Uma das referências padrão na área de autômatos finitos e linguagens formais.
* Taylor, R. Gregory: ''Models of Computation.''  New York: Oxford University Press, 1998. Um dos raros textos facilmente legíveis sobre Teoria da Computação, apropriado para alunos de gradução ou mestrado.


A teoria da computação estuda os modelos de computação genéricos, assim como os limites da computação:
== Ver também ==
{{Wikiquote|Computação}}
* [[Computação científica]]
* [[Informática]]
* [[Modelagem computacional]]
* [[Teoria da computação]]


* Quais problemas jamais poderão ser resolvidos por um computador, independente da sua velocidade ou memória? (Ver: [[Problema da Parada]], [[Problema da Correspondência de Post]].)
== Referências ==
* Quais problemas podem ser resolvidos por um computador, mas requerem um período tão extenso de tempo para completar a ponto de tornar a solucão impraticável? (Ver: [[Aritmética de Presburger]].)
<references />
* Em que situações pode ser mais difícil resolver um problema do que verificar cada uma das soluções manualmente? (Ver [[Classes P e NP]]).
{{Computação}}
{{Portal3|Tecnologias de informação}}
{{Controle de autoridade}}


Em geral, as questões relativas aos requerimentos de tempo ou espaço (memória, em particular) de problemas específicos são investigadas pela [[Teoria da Complexidade Computacional|teoria da complexidade computacional]].
[[Categoria:Computação|*]]
 
Além dos modelos genéricos de computação, alguns modelos computacionais mais simples são úteis para aplicações mais restritas. [[Expressão Regular|Expressões regulares]], por exemplo, são utilizadas para especificar padrões de cadeias de caracteres, sendo populares em aplicações [[UNIX]] e em algumas linguages de programação, como [[Perl]] e [[Python]]. Outro formalismo matematicamente equivalente às expressões regulares são os [[Autômatos finitos|autômatos finitos]], que são utilizados em desenho de circuitos e e alguns sistemas de resolução de problemas. As [[Gramática livre de contexto|gramáticas livres de contexto]] são utilizadas para especificar a sintaxe das linguagens de programação; um formalismo equivalente, são os [[Autômatos de empilhamento|autômatos de empilhamento]], ou ''pushdown automata''. As [[funções recursivas primitivas]] formam uma subclasse das funções recursivas.
 
Modelos de computação diferentes podem realizar tarefas distintas. Uma forma de estudar o poder de um modelo computacional é estudar a classe das [[Linguagem formal|linguagens formais]] que o modelo pode gerar; o resultado é a [[Hierarquia de Chomsky|hierarquia de Chomsky]] das linguagens.
 
As tabelas abaixo mostram algumas das classes de problemas (ou linguagens, ou gramáticas) que são consideradas em teoria da computabilidade (azul) e em teoria da complexidade (verde).  Se a classe '''X''' é um subconjunto propriamente contido em '''Y''', então '''X''' é mostrado abaixo de '''Y''', conectados por um linha escura.  Se '''X''' é um subconjunto, mas não é sabido se os conjuntos são iguais ou não, então a linha que os conecta será mais clara e pontilhada.
{| cellpadding="0" cellspacing="0" border="0" align="center"
|----- align="center"
| colspan=2 | || colspan=4 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-----
| align="center" | [[decision problem|Decision Problem]]
|}
|----- align="center"
| colspan=2 | || [[image:solidLine.png]]
| colspan=2 | || [[image:solidLine.png]]
|----- align="center"
| colspan=3 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-----
| align="center" | [[Linguagem recursivamente enumerável|Tipo 0 (Recursivamente enumerável)]]
|}
|
|| colspan=4 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-----
| align="center" | [[Undecidable]]
|}
|----- align="center"
| colspan=3 | [[image:solidLine.png]]
|----- align="center"
| colspan=3 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-----
| align="center" | [[Decidable language|Decidable]]
|}
|----- align="center"
| colspan=3 | [[image:solidLine.png]]
|----- align="center"
| colspan=3 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[EXPSPACE]]
|}
|----- align="center"
| colspan=3 | [[image:dottedLine.png]]
|----- align="center"
| colspan=3 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[EXPTIME]]
|}
|----- align="center"
| colspan=3 | [[image:dottedLine.png]]
|----- align="center"
| colspan=8 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[PSPACE]]
|}
|----- align="center"
| [[image:solidLine.png]] || width=40 | [[image:solidLine.png]]
| [[image:dottedLine.png]] || [[image:dottedLine.png]] ||
| [[image:dottedLine.png]] ||
|| [[image:dottedLine.png]]
|----- align="center"
|
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-----
| align="center" | [[Gramática sensível ao contexto|Tipo 1 (Sensível ao contexto)]]
|}
| [[image:solidLine.png]] || [[image:dottedLine.png]]
| border="1" | [[image:dottedLine.png]]
|
|| [[image:dottedLine.png]] || || colspan=1 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[PSPACE-Complete]]
|}
|----- align="center"
| [[image:solidLine.png]] || [[image:solidLine.png]]
| [[image:dottedLine.png]] || [[image:dottedLine.png]] ||
| [[image:dottedLine.png]]
|----- align="center"
| [[image:solidLine.png]] || [[image:solidLine.png]]
|
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[Co-NP]]
|}
| [[image:dottedLine.png]] || || colspan=3 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[NP (complexity)|NP]]
|}
|----- align="center"
| [[image:solidLine.png]] || [[image:solidLine.png]]
| [[image:dottedLine.png]] || [[image:dottedLine.png]] ||
| [[image:dottedLine.png]] ||
|| [[image:dottedLine.png]]
|----- align="center"
| [[image:solidLine.png]] || [[image:solidLine.png]]
| [[image:dottedLine.png]] ||
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[BPP]]
|}
| width=10 | ||
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[BQP]]
|}
| width=10 | ||
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[NP-Complete]]
|}
|----- align="center"
| [[image:solidLine.png]] || [[image:solidLine.png]]
| [[image:dottedLine.png]] || [[image:dottedLine.png]] ||
| [[image:dottedLine.png]]
|----- align="center"
| [[image:solidLine.png]] || [[image:solidLine.png]]
| colspan=6 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[P]]
|}
|----- align="center"
| [[image:solidLine.png]] || [[image:solidLine.png]]
| [[image:dottedLine.png]]
| colspan=4 | || [[image:dottedLine.png]]
|----- align="center"
| [[image:solidLine.png]] || colspan=2 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[Class NC|NC]]
|}
| colspan=4 | ||
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-----
| align="center" | [[P-Complete]]
|}
|----- align="center"
| [[image:solidLine.png]] || colspan=2 | [[image:solidLine.png]]
|----- align="center"
| colspan=3 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-----
| align="center" | [[Gramática livre de contexto|Tipo 2 (Livre de contexto)]]
|}
|----- align="center"
| colspan=3 | [[image:solidLine.png]]
|----- align="center"
| colspan=3 |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-----
| align="center" | [[regular grammar|Type 3 (Regular)]]
|}
|}
 
== Tópicos de computação ==
 
* [[Hardware]] (Equipamento)
** [[Microprocessador]]
** [[Disco Rígido]] (HD, Winchester, Hard Disc)
** [[Tipos de Memória]]
*** [[Memória Primária ou Central]]
**** [[RAM]]
**** [[ROM]]
**** [[PROM]]
**** [[EPROM]]
**** [[EEPROM]]
*** [[Memória Secundária ou Externa]]
**** [[Disquete]] (Floppy Disk)
**** [[Disco Rígido]] (HD, Winchester, Hard Disc)
**** [[Tambor Magnético]] (Já não utilizado actualmente)
*** [[Memória Terciária ou de Massa]]
**** [[Fita Magnética]]
**** [[DC ou CD]] (Disco Compacto)
**** [[CD-R]] (Compact Disc - Recordable)
**** [[CD-RW]] (Compact Disc - ReWritable (regraváveis))
**** [[DVD]] (Digital Versatile Disc, Digital Video Disc)
** [[Fax-Modem]]
** [[Placa-mãe]]
** [[Placa de Som]]
** [[Placa de Vídeo]]
** [[Placa de Rede]]
** [[Ponteiro (máuse ou mouse)]]
** [[Teclado (computador)|Teclado]]
** [[Impressora]]
** [[Digitalizador (escaner)]]
 
* [[Software | Programas de Computador]]
** [[Programação de computadores]]
*** [[Linguagens de programação]]
*** [[Algoritmos]]
*** [[Compiladores]]
*** [[Metodologias de Desenvolvimento de Programas]]
** [[Programas para Escritório]]
*** [[Processadores de texto]]
*** [[Planilhas eletrônicas]]
*** [[Banco de dados]]
** Imagens
*** [[Editores gráficos]]
*** [[Arquivos Gráficos]]
*** [[Visualizadores Gráficos]]
** [[Utilitários]]
** [[Sistemas Operacionais]]
*** [[GNU]]/[[Linux]]
*** [[OS 2 Warp]]
*** [[Unix]]
*** [[Windows]] & [[DOS]]
 
* [[Multimédia]]
** Áudio
*** [[Audio Players]]
*** [[Editores de som]]
*** [[Arquivos sonoros]]
** Vídeo
*** [[Video Players]]
*** [[Edição Digital de Vídeo]]
*** [[Formatos de Vídeos]]
 
* [[Internet]]
** [[World Wide Web]]
** [[E-mail]]
** [[FTP]]
** [[Internet Relay Chat|IRC]]
** [[P2P]] (Peer to Peer, File Sharing)
 
* Pessoas
** [[Alan Turing]]
** [[Ada Lovelace]]
** [[Charles Babbage]]
** [[Douglas Engelbart]]
** [[Edsger W. Dijkstra]]
** [[Marvin Minsky]]
** [[Donald E. Knuth]]
** [[Chomski|Noam Chomski]]
** [[Richard M. Stallman]]
** [[Eric S. Raymond]]
** [[Larry Wall]]
 
*[[Biocomputação]]
 
 
==For Further Reading==
 
*Garey, Michael R., and David S. Johnson: ''Computers and Intractability: A Guide to the Theory of NP-Completeness.'' New York: W. H. Freeman & Co., 1979.  The standard reference on NP-Complete problems - an important category of problems whose solutions appear to require an impractically long time to compute.
*Hein, James L:  ''Theory of Computation.''  Sudbury, MA: Jones & Bartlett, 1996.  A gentle introduction to the field, appropriate for second-year undergraduate computer science students.
*Hopcroft, John E., and Jeffrey D. Ullman: ''Introduction to Automata Theory, Languages, and Computation.''  Reading, MA: Addison-Wesley, 1979.  One of the standard references in the field.
*Taylor, R. Gregory: ''Models of Computation.''  New York: Oxford University Press, 1998.  An unusually readable textbook, appropriate for upper-level undergraduates or beginning graduate students.
*[http://www.cs.berkeley.edu/~aaronson/zoo.html The Complexity Zoo]: A huger list of complexity classes, as reference for experts.
----
Este artigo contêm algum conteúdo de um [http://www.nupedia.com/article/567/ artigo de Nancy Tinkham], originalmente postado em [[Nupedia]]. Este artigo tem [[open source|conteúdo livre]].
 
{{ciências-rodapé}}
 
[[Categoria:Informática]][[categoria:Ciências aplicadas]]
 
[[de:Theoretische Informatik]]
[[ja:&#35336;&#31639;&#29702;&#35542;]]
[[pl:Teoria oblicze%C5%84]]

Edição atual tal como às 04h57min de 26 de março de 2022

Disambig grey.svg Nota: Para a área acadêmico-profissional, veja Ciência da computação.

A computação pode ser definida como a busca de solução para um problema a partir de entradas (inputs), de forma a obter resultados (outputs) depois de processada a informação através de um algoritmo.[1] É com isto que lida a teoria da computação, subcampo da ciência da computação e da matemática.

O termo computação tem origem no latim, computatio, que indica cálculo ou conta matemática.[2] Durante milhares de anos, a computação foi executada com caneta e papel, ou com giz e ardósia, ou mentalmente, por vezes com o auxílio de tabelas ou utensílios artesanais.[3] O primeiro instrumento criado com o propósito de realizar cálculos foi o ábaco, cujo conceito básico foi utilizado por diversas civilizações ao redor do mundo, como o Império Romano e o Egito Antigo.[2] O termo computador, por sua vez, referia-se aos profissionais cuja função era realizar cálculos, porém o termo passou a se referir às máquinas computacionais conforme estas começaram a ser mais utilizadas, principalmente durante e depois da Segunda Guerra Mundial.[4]

A partir da segunda metade do século XX, com o advento dos computadores eletrônicos, a Computação passou a ter uma presença cada vez mais marcante na sociedade, influenciando a vida diária de parte da população mundial. Nesse período, a Computação ganhou o status de Ciência, surgindo então o termo ciência da computação, uma área do conhecimento humano hoje fortemente ligada à produção de software.

Os algoritmos computacionais hoje estão presentes na rede mundial de computadores (internet), bem como em smartphones, computadores pessoais e outros dispositivos que executam processamento de dados.[5]

Leituras complementares

  • Gary, Michael R., and David S. Johnson: Computers and Intractability: A Guide to the Theory of NP-Completeness. New York: W. H. Freeman & Co., 1979. Uma referência padrão aos problemas do tipo NP-Completo, uma importante categoria de problemas cuja solução parece requerer um tempo impraticavelmente longo para efetivar sua computação.
  • Hein, James L: Theory of Computation. Sudbury, MA: Jones & Bartlett, 1996. Uma introdução suave ao assunto da Teoria da Computação, apropriado para alunos do segundo ano de um curso de graduação em Ciência da Computação.
  • Hopcroft, John E., and Jeffrey D. Ullman: Introduction to Automata Theory, Languages, and Computation. Reading, MA: Addison-Wesley, 1979. Uma das referências padrão na área de autômatos finitos e linguagens formais.
  • Taylor, R. Gregory: Models of Computation. New York: Oxford University Press, 1998. Um dos raros textos facilmente legíveis sobre Teoria da Computação, apropriado para alunos de gradução ou mestrado.

Ver também

Wikiquote
O Wikiquote possui citações de ou sobre: Computação

Referências

  1. «Computação». Encyclopædia Britannica Online (em English). Consultado em 7 de agosto de 2020 
  2. 2,0 2,1 unius (3 de outubro de 2018). «Afinal, como surgiu a computação? — TND Brasil» (em português). Consultado em 15 de novembro de 2021 
  3. Hein, James L: Theory of Computation. Sudbury, MA: Jones & Bartlett, 1996. Uma introdução suave ao assunto da Teoria da Computação, apropriado para alunos do segundo ano de um curso de graduação em Ciência da Computação.
  4. «Como evoluímos dos computadores humanos à inteligência artificial». Exame (em português). 8 de fevereiro de 2017. Consultado em 15 de novembro de 2021 
  5. MARTIN, R.C. Código Limpo. Rio de Janeiro: Alta Books, 2020.

talvez você goste