Hierarquia de programas de máquinas
- Um computador, basicamente, é um processador de dados, ou seja, um transformador de dados iniciais (dados de entrada) em dados finais (dados de saída) [1]. Os dados entram no nosso computador através de alguns dispositivos e saem por meio de outros. O programa é um conjunto de instruções a serem realizadas pelo nosso “computador programável”, que na realidade é um computador de propósito geral, pois serve a várias finalidades. Sendo geral, pode-se trocar o programa e resolver problemas diferentes com instruções diferentes.
- Vinícius Albino
- Os computadores são divididos em duas partes: hardware (HW) e software (SW). O hardware envolve todos os componentes físicos do computador, que são aqueles que de fato executam tarefas para o usuário; eles recebem os dados fornecidos, realizam algum tipo de processamento e/ou armazenamento e retornam alguma saída (resultado). Exemplos de integrantes do hardware incluem os processadores (realizam o processamento das informações), placas-mãe (realizam o "controle"/"direção" geral dos demais integrantes), memórias de todo tipo (armazenam os dados), teclado, mouse, monitores (realizam a entrada/saída de informações, também chamados de periféricos, pois estão mais distantes dos outros componentes) [2].
- Já o software é a parte lógica do computador; envolve tudo aquilo que não é palpável, representa o conteúdo das ideias executadas e/ou exibidas pela máquina. O SW é o produto da conversão de um problema real para um problema computacional. Essa conversão é feita por uma longa cadeia de etapas: primeiro, desenvolvemos um algoritmo para a resolução do problema e codificamos esse algoritmo para uma linguagem de programação de alto nível (C, Python etc.), depois, um compilador ou um interpretador (que são softwares) converte esse programa para um linguagem de baixo nível (Assembly etc.) e, finalmente, um montador (ou assembler, que também é um software) transforma esse programa em linguagem de máquina: o código binário [3].
- Após esse processo, o hardware é capaz de processar os dados fornecidos (ele pode fazer cálculos complexos, no caso de um processador, pode exibir imagens 2D ou 3D em uma tela, no caso de uma placa de vídeo). Esse processo é o que chamamos de interface usuário-software-hardware. Exemplos de integrantes do software seriam todo tipo de programa ou aplicação (aplicativos do "pacote Office," aplicativos mobile, navegadores de internet, jogos eletrônicos etc.), os sistemas operacionais (como Windows e Linux, que permitem a interface entre o usuário, os demais SWs e o hardware), e demais relacionados como kernels, shells, firmwares e bootloaders [4].
- No fim, tudo aquilo que qualquer computador faz se resume, em última instância, a uma sequência de configurações de zeros e uns, que são representações para fios pelos quais se passa ou não corrente elétrica. Essas configurações estão no hardware, que é aquilo que existe de fato, no mundo físico; os softwares são os significados lógicos dessas configurações que as tornam úteis, traduzem-as entre os diferentes níveis (de linguagem humana até linguagem de máquina) e permitem que os computadores sejam usados para resolver problemas da vida real [5].
- Perguntas:
- I-) O que é hardware?
- II-) O que é software?
- III-) Em que sentido o software está submetido ao hardware?
Referências bibliográficas
[1] GOTARDO, Reginaldo. Linguagem de programação I. Rio de Janeiro: SESES, 2015. 200 p.
[2] CARVALHO, André C. P. L. F de; LORENA, Ana C. Introdução à Computação - Hardware, Software e Dados. Rio de Janeiro: LTC, 2016. E-book. p. 26. ISBN 9788521633167.
[3] GUDWIN, Ricardo R. Linguagens de programação. Campinas: DCA/FEEC/UNICAMP, 1997.
[4] ORTH, Miguel; FRUET, Fabiane Sarmento Oliveira; OTTE, Janete; NEVES, Marcus. Tecnologias da informação e da comunicação e formação e prática de professores. Pelotas: Editora da UFPel, p. 42-68, 2018.
[5] DAVID A, David A. Patterson et al. Computer Organization and Design: The Hardware/Software Interface. 2017.
Questões