A principal característica dos
computadores modernos, o que o distingue de outras máquinas, é que pode ser
programado. Isto significa que uma lista de instruções pode ser armazenada na
memória e executa posteriormente.
As instruções executadas na ULA
discutidas acima não são um rico conjunto de instruções como a linguagem
humana. O computador tem apenas um limitado número de instruções bem definidas.
Um exemplo típico de uma instrução existente na maioria dos computadores é
"copie o conteúdo da posição de memória 123 para a posição de memória
456", "adicione o conteúdo da posição de memória 510 ao conteúdo da
posição 511 e coloque o resultado na posição 507" e "se o conteúdo da
posição 012 é igual a 0, a próxima instrução está na posição 678".
Instruções são representadas no
computador como números - o código para "copiar" poderia ser 007, por
exemplo. O conjunto particular de instruções que um computador possui é
conhecido como a linguagem de máquina do computador. Na prática, as pessoas não
escrevem instruções diretamente na linguagem de máquina mas em uma linguagem de
programação, que é posteriormente traduzida na linguagem de máquina através de
programas especiais, como interpretadores e compiladores. Algumas linguagens de
programação se aproximam bastante da linguagem de máquina, como o assembly
(linguagem de baixo nível); por outro lado linguagens como o Prolog são
baseadas em princípios abstratos e se distanciam bastante dos detalhes da
operação da máquina (linguagens de alto nível).
A execução das instruções é tal
como ler um livro. Apesar da pessoa normalmente ler cada palavra e linha em
sequência, é possível que algumas vezes ela volte para pontos anteriores do
texto de interesse ou passe sessões não interessantes. Da mesma forma, um
computador que segue a arquitetura de von Neumann executa cada instrução de
forma sequencial, da maneira como foram armazenadas na memória. Mas, através de
instruções especiais, o computador pode repetir instruções ou avançá-las até que
alguma condição seja satisfeita. Isso é chamado controle do fluxo e é o que
permite que o computador realize tarefas repetitivamente sem intervenção
humana.
Uma pessoa usando uma
calculadora pode realizar operações aritméticas como somar número apertando poucos
botões. Mas somar sequencialmente os números de um a mil iria requerer apertar
milhares de vezes os botões, com uma alta probabilidade de erro em alguma
iteração. Por outro lado, computadores podem ser programados para realizar tal
tarefa com poucas instruções, e a execução e extremamente rápida.
Mas os computadores não
conseguem pensar, eles somente executam as instruções que fornecemos. Um humano
instruído, ao enfrentar o problema da adição explicado anteriormente,
perceberia em algum momento que pode reduzir o problema usando a seguinte
equação:
e chegar na mesma resposta correta com pouco
trabalho. Alguns computadores modernos conseguem tomar algumas decisões para
acelerar a execução dos programas ao prever instruções futuras e reorganizar a
ordem de instruções sem modificar seu significado. Entretanto, os computadores
ainda não conseguem determinar instintivamente uma maneira mais eficiente de
realizar sua tarefa, pois não possuem conhecimento para tal.
Sequência: "Programas e Sistema Operacional".
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.