Programação pode ser definida como o acto de descrever um algoritmo que
resolva um problema proposto de forma aplicável.
A programação tem como principais objectivos
reduzir a complexidade no desenvolvimento de software e aumentar sua
produtividade. A análise, projecto e programação orientadas a objectos são as
respostas para o aumento da complexidade dos ambientes computacionais que se
caracterizam por sistemas heterogéneos, distribuídos em redes, em camadas e
baseados em interfaces gráficas.
Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador.
Permite que um programador especifique precisamente sobre quais dados um computador vai actuar, como estes dados serão armazenados ou transmitidos e quais acções devem ser tomadas sob várias circunstâncias. Linguagens de programação podem ser usadas para expressar algoritmos com precisão.
Linguagem de programação de alto nível vs baixo nível
Linguagem de programação de alto nível é uma
linguagem de programação com um nível de abstracção relativamente elevado, longe do código de
máquina e mais próximo à linguagem humana. Desse modo, as linguagens de alto
nível não estão directamente relacionadas à arquitectura do computador. O
programador de uma linguagem de alto nível não precisa conhecer características
do processador, como instruções e registradores. Essas características são
abstraídas na linguagem de alto nível.
Linguagem de programação de baixo nível
trata-se de uma linguagem de programação que compreende as características da arquitectura
do computador. Assim, utiliza somente instruções do processador, para isso é
necessário conhecer os registradores da máquina. Nesse sentido, as linguagens
de baixo nível estão directamente relacionadas com a arquitectura do computador.
Um
programa em linguagem-máquina consiste numa sequência de números que
significam uma sequência de instruções a serem executadas. É normal a
representação da linguagem de máquina por meio de números constantes e
variáveis em sistema binário ou sistema hexadecimal.
A linguagem-máquina, são representadas por sequências de bits,
normalmente limitadas pelo número de bits do registrador principal da CPU. Esse
código é chamado de código binário. São formados por 0 e 1.
As instruções correspondem a sequências
muito simples de operações, como transferir um dado em memória para a CPU ou
somar dois valores e são normalmente interpretadas por micro-código.
Linguagem Assembly é um tipo de programação de alto nível legível
por humanos para a linguagem-máquina que um computador específico usa,
utilizada para programar dispositivos computacionais, como microprocessadores e
microcontroladores.
A conversão da linguagem Assembly para
linguagem-máquina é feita pelo montador ou assembler, que é basicamente
um tradutor de comandos, sendo mais simples que um compilador.
Gerações de linguagens de programação de alto nível
- Primeira
geração - São linguagens onde suas estruturas de controle são aparentemente
orientadas a máquina
- Segunda
geração - São linguagens onde as estruturas de controle são estruturadas de
forma a minimizar ou dispensar o uso de instruções. A segunda geração elaborou melhor e
generalizou diversas estruturas de controle das linguagens de primeira geração.
- Terceira
geração - São linguagens que dão ênfase a simplicidade e eficiência. As
estruturas de dados desta geração mostram um deslocamento da máquina para a
aplicação. As estruturas de controle são mais simples e eficientes.
- Quarta
geração - Esta geração é essencialmente um linguagem com abstracção de
dados.
- Quinta
geração - Nesta geração agrupa-se diversos paradigmas como a orientação a objecto
e o paradigma funcional, paradigma lógico.
Programa vs Algoritmo
Um algoritmo é, num
certo sentido, um programa abstracto — dizendo de outra forma, um programa é um
algoritmo concretizado. No entanto, os programas são, à excepção dos menores,
visualizados mais facilmente como uma colecção de algoritmos menores combinados
de um modo único — da mesma forma que uma casa é construída a partir de
componentes.
Dessa forma, um
algoritmo é uma descrição de como um computador pode ser levado a executar uma
operação simples e específica, como, por exemplo, uma ordenação. Um programa,
por outro lado, é uma entidade que na verdade implementa uma ou mais operações
de forma que seja útil para as pessoas.