A Programação de Computadores
Por: SonSolimar • 24/5/2018 • 3.991 Palavras (16 Páginas) • 332 Visualizações
...
Pelo que foi visto até agora, o programador tem à sua disposição uma máquina básica capaz de interpretar em hardware certas instruções fundamentais. A programação pode ser feita escrevendo-se uma série de zeros e uns (linguagem de máquina), colocando-os na memória da máquina e pressionando-se um botão a partir do que o computador começa a interpretar o código binário (zeros e uns).
Para fixar as idéias, vejamos como seria uma instrução, em linguagem de máquina, para somar dois números:
01011010011000000100000000000000
Para facilitar a leitura de instruções de linguagem de máquina, é comum escrevê-las separando em conjuntos de 4 bits:
0101
1010
0110
0000
0100
0000
0000
0000
Temos:
Os 8 primeiros bits indicam o código da operação de soma.
Os 4 seguintes o local onde será feita a soma.
E os demais bits indicam o endereço de um dos operandos a serem utilizados na soma.
Pelo exposto, pode-se conceituar a linguagem de máquina, ou linguagem básica, como sendo a utilização de códigos binários com a finalidade de programar, ou seja, de gerar instruções que serão reconhecidas pelo microprocessador. Note ainda, que esta linguagem é extremamente tediosa, exigindo que o programador fique todo o tempo verificando tabelas de códigos para que consiga simbolizar o que deseja.
A programação feita diretamente em linguagem de máquina exigia profundos conhecimentos de lógica e hardware, num nível de que poucos profissionais dispunham.
2.2. LINGUAGEM DE MONTAGEM (Assembly)
Como se pode verificar, é extremamente penoso (e sujeito a erros) escrever programas diretamente em linguagem de máquina. Para facilitar o trabalho de quem programa, surgiram as linguagens de montagem, construídas sobre o conjunto de instruções básicas de linguagem de máquina. Desta feita, a linguagem de montagem foi criada com a finalidade de se ter uma alternativa à até então obrigatória programação em linguagem binária, sem a linguagem de montagem capaz de transformar em instrução binária cada instrução simbólica correspondente que for escrita no padrão de montagem.
De fato, na linguagem de montagem, os códigos de operações são expressos em mnemônicos abreviados tais como: ADD para somar, SUB para subtrair, LDA (LOAD) para carregar, STA (STORE) para armazenar, JMP (JUMP) para desviar, etc. Os dados e endereços são fornecidos através de símbolos. Cada comando da linguagem de montagem dá origem a um ou mais comandos em linguagem de máquina.
A instrução em linguagem de máquina, do exemplo anterior, pode ser escrita em linguagem de montagem da seguinte forma:
ADD 6, J [instrução em linguagem de montagem]
As vantagens do Assembler em relação à linguagem de máquina são evidentes: ele é bem mais legível para uma pessoa, permitindo uma programação mais eficiente. A desvantagem teórica ficaria por conta do serviço adicional que o computador terá de fazer: primeiro ele monta o código binário, gravando-o em um código executável, só que este passo só ocorre uma vez, para então o programa ser executado.
A criação da linguagem de montagem permitiu que pessoas menos inteiradas dos detalhes eletrônicos do hardware pudessem programar. Este fato foi de extrema importância por ter simplificado a programação, abrindo as possibilidades do uso do computador além dos círculos dos centros de pesquisas militares.
Ao mesmo tempo em que a linguagem de montagem facilitou a criação e manutenção de programas, ela fez com que os programas criados somente eram executados em máquinas que possuíssem o mesmo processador e sistema operacional.
Apesar da dificuldade, até hoje as linguagens de montagem são utilizadas, principalmente para a criação de softwares básicos. Como linguagem de montagem temos a linguagem Assembler.
Os fabricantes de máquinas fornecem programas conhecidos como Montadores (“Assemblers”) cuja função é traduzir da linguagem de montagem para a linguagem de máquina. A entrada de um montador é chamada Programa Fonte e sua saída é chamada Programa Objeto.
2.3. LINGUAGENS ALGORÍTMICAS OU LINGUAGENS DE ALTO NÍVEL
Nos anos seguintes à criação das linguagens de montagem, desenvolveram-se linguagens cada vez menos complexas em sua sintaxe, baseadas em programas capazes de traduzir uma seqüência de instruções ou códigos, como por exemplo uma fórmula, por outra seqüência de binários. O uso de linguagens assemblers apresenta algumas desvantagens:
- Programas com um grau de dificuldade exigem um número muito grande de instruções, tornando grande o tempo de codificação e testes.
- Dificuldades para examinar o programa original e fazer modificações ou extensões.
- Dificuldade para entender a lógica do programa.
- Impossibilidade de transferir um programa de uma máquina para outra.
Estes fatos impulsionaram a criação de linguagens de alto nível. Uma linguagem de alto nível tem as seguintes características:
- Tem um vocabulário que é similar à linguagem natural.
- Permite que se escrevam programas menores.
- É possível implementá-la em vários computadores.
A primeira linguagem de alto nível de sucesso foi o FORTRAN (de FORmula TRANslation). Esta linguagem foi projetada para permitir que problemas técnicos e científicos pudessem ser diretamente descritos por fórmulas matemáticas e decisões lógicas.
Vejamos como seria em FORTRAN o programa para somar dois números:
INTEGER VALOR, SOMA
READ
...