Fala, meus consagrados! Beleza?
Um programa de computador é um conjunto de instruções escrito em uma linguagem de programação e que define uma sequência de operações que um computador deve realizar para resolver um problema, realizar uma tarefa ou processar dados. Um programa de computador é uma representação codificada de um algoritmo, interpretável e executável por um sistema computacional.
Características principais:
- É escrito em linguagem de programação (ex: Python, C, Java);
- Deve obedecer a uma sintaxe formal para ser entendido por tradutores (compiladores ou interpretadores);
- Controla o comportamento do hardware indiretamente, por meio do sistema operacional; e
- Pode ser dividido em módulos ou funções, estruturando tarefas complexas.
Classificação de programas:
- Aplicativos:
- Executam tarefas do usuário;
- Exemplos: navegador, editor de texto;
- Sistemas:
- Controlam o hardware e recursos;
- Exemplo: sistema operacional;
- Utilitários:
- Auxiliam na manutenção do sistema;
- Exemplos: antivírus, backup;
- Compiladores:
- Traduzem código-fonte para código de máquina; e
- Drivers:
- Fazem a interface entre software e hardware.
Os programas podem ser escritos com diversas linguagens de programação. A evolução das linguagens acompanha a própria história da computação. À medida que os computadores se tornaram mais poderosos e complexos, as linguagens evoluíram para permitir que programadores pudessem expressar suas ideias de forma mais simples, clara e próxima da linguagem humana. Essa evolução é geralmente classificada em níveis de abstração e gerações de linguagens.

As linguagens de programação podem ser classificadas em dois grandes grupos conforme seu nível de proximidade com o hardware ou com o ser humano:
- Quanto mais “distante” uma linguagem for da de máquina:
- Mais alto é o nível dessa linguagem; e
- Mais legível é para o ser humano; e
- Quanto mais semelhante uma linguagem for da de máquina:
- Mais baixo é o nível dessa linguagem; e
- Menos legível é para o ser humano.
A linguagem de máquina (L1 ou 1GL) é a linguagem que um processador é capaz de compreender. Ela é composta de apenas de 0 e 1. O conjunto de instruções que forma um programa é escrito em linguagem de máquina. Dessa forma, o processador reconhecerá o programa e irá executá-lo. É o nível mais baixo de linguagem de programação, composta exclusivamente por instruções codificadas em números binários que podem ser interpretadas e executadas, diretamente pelo processador de um computador
Características principais:
- Não é portável:
- Cada tipo de processador (x86, ARM, MIPS) possui sua própria linguagem de máquina, com seu conjunto de instruções (ISA – Instruction Set Architecture);
- Alta velocidade de execução:
- Como é executada diretamente pela CPU, é a forma mais rápida de programar (embora muito difícil); e
- Baixo nível de abstração:
- Não há nomes de variáveis, funções ou estruturas legíveis — apenas códigos binários que representam operações simples (exemplos: somar, mover, comparar).
Exemplo de um código binário:
10100000 00000001
Pode representar uma instrução como: “mova o valor 1 para o registrador A”
Esse código só faz sentido no contexto da arquitetura da CPU.
Já a linguagem Assembly (linguagem de montagem) (2GL) usa mnemônicos simbólicos para representar instruções da linguagem de máquina. É fortemente dependente da arquitetura, mas facilita a escrita de código para humanos.
A linguagem Assembly é uma representação simbólica da linguagem de máquina. Cada instrução em Assembly corresponde, de forma quase direta, a uma instrução binária do processador. Por isso, Assembly é considerada uma linguagem de baixo nível, fortemente dependente da arquitetura da CPU.
Há uma linguagem de montagem diferente para cada tipo de processador, pois as instruções binárias variam entre arquiteturas como x86, ARM e MIPS.
Apesar da popularização das linguagens de alto nível, a linguagem Assembly ainda é amplamente utilizada em contextos onde é necessário:
- Desempenho máximo;
- Acesso direto ao hardware;
- Controle total sobre registradores, memória e instruções;
- Economia de recursos em sistemas com restrição de memória; e
- Desenvolvimento de compiladores e loaders.
Além disso, aprender Assembly ajuda a compreender o funcionamento interno do computador, facilitando o entendimento de como as linguagens de alto nível são convertidas em instruções executáveis.
Exemplo em linguagem de máquina:
10110000 01100001
Significa: mova 97 para o registrador AL.
Exemplo correspondente em linguagem Assembly:
MOV AL, 61h
As linguagens de terceira geração (3GL) são linguagens de alto nível, criadas para facilitar o desenvolvimento de software por seres humanos. Elas são mais próximas da linguagem natural e independentes da arquitetura de hardware, ao contrário das linguagens de máquina e Assembly.
Características principais:
- Sintaxe mais legível e intuitiva;
- Suporte a variáveis, estruturas de controle (if, loops), funções e sub-rotinas;
- Portabilidade entre diferentes sistemas e processadores; e
- Permitem programação estruturada ou orientada a objetos.
Exemplos:
- C;
- C++;
- Java;
- Python;
- Pascal;
- COBOL;
- Fortran;
- BASIC.
As linguagens de Quarta Geração (4GL) são linguagens de muito alto nível, projetadas para permitir que o programador descreva o que deseja fazer, e não como fazer.
Elas são focadas em produtividade, automação e manipulação de dados, sendo usadas principalmente em sistemas de bancos de dados, geração de relatórios e aplicações de negócio.
Características principais:
- Mais próximas da linguagem natural;
- Foco em resultados e objetivos, não em algoritmos;
- Alta produtividade no desenvolvimento;
- Reduzem o tempo de codificação; e
- Frequentemente usadas em ambientes corporativos e sistemas de informação.
Exemplos:
- SQL;
- Oracle Reports;
- Informix 4GL;
- Focus;
- PowerBuilder; e
- Progress 4GL.
Por último, as linguagens de Quinta Geração (5GL) são projetadas para resolver problemas com base em lógica, regras ou restrições, em vez de instruções sequenciais. O programador informa o que deseja alcançar, e o sistema descobre como alcançar esse objetivo, muitas vezes por meio de inferência lógica ou aprendizado de máquina.
Características principais:
- Baseadas em lógica formal ou inteligência artificial;
- O foco está em descrever o problema, não em escrever o algoritmo;
- Utilizam sistemas de inferência, engines de regras ou resolução automática de restrições;
- Exploradas em IA, raciocínio automático, sistemas especialistas e simulações complexas; e
- Mais comuns em ambientes acadêmicos e de pesquisa.
Exemplos:
- Prolog;
- OPS5;
- Mercury;
- IC-Prolog; e
- LISP (parcialmente, em IA simbólica).
Espero que tenham gostado!
Forte abraço e até a próxima jornada!
_________________________
Professor Rogerão Araújo
Participe da conversa